feat: initial import of the23 theme for lamp-link

This commit is contained in:
eldov
2026-08-30 05:16:58 +02:00
commit 0955b0c0cc
60 changed files with 6543 additions and 0 deletions
+186
View File
@@ -0,0 +1,186 @@
<div class="row mb-5">
<?php foreach($plans as $id => $plan): ?>
<div class="<?php echo $class ?> mb-2 position-relative">
<?php if($plan['ispopular']): ?>
<span class="px-3 py-1 position-absolute top-0 start-50 translate-middle zindex-1">
<span class="fw-bold badge bg-info py-1 px-3 fs-6"><?php ee('Popular') ?></span>
</span>
<?php endif ?>
<div class="card mb-4 text-center h-100 <?php echo $plan['ispopular'] ? 'border border-3 border-info shadow' : 'border-0 shadow-sm ' ?>">
<div class="p-4">
<?php if($plan['icon']): ?>
<span class="fs-1 mb-3 d-block"><i class="<?php echo $plan['icon'] ?> gradient-primary clip-text"></i></span>
<?php endif ?>
<h4 class="fw-bold mb-4"><?php ee($plan['name']) ?></h4>
<p><?php echo $plan['description'] ? '<span class="d-block text-muted mt-3">'.e($plan['description']).'</span>': '' ?></p>
<div class="h2 mb-2">
<strong class="gradient-primary clip-text">
<div class="h2 text-center mb-0 fw-bolder" data-pricing-monthly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_monthly"]) ?>" data-pricing-yearly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_yearly"]) ?>" data-pricing-lifetime="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_lifetime"]) ?>"><strong class="gradient-primary clip-text"><span class="price"><?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_".$default]) ?></span><?php echo $plan['free'] ? '' : '<small data-toggle="pricingterm" data-term-monthly="/'.e('month').'" data-term-yearly="/'.e('year').'" data-term-lifetime=" '.e('lifetime').'" class="fs-6">'.$term.'</small>' ?></strong></div>
</strong>
</div>
<?php if(isset($plan['discount']) && $plan['discount']): ?>
<small data-toggle="discount" class="d-none fw-bold text-success"><?php ee('Save {p}% by paying yearly', null, ['p' => $plan['discount'] ]) ?></small>
<?php endif ?>
<ul class="list-unstyled mb-4 mt-4">
<li class="mb-3 d-flex justify-content-between">
<span class="fw-bold"><?php ee("Short Links") ?></span>
<strong><?php echo $plan["urls"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["urls"]).($plan['ismonthly'] ? '/'.e('mo') : '') ?></strong>
</li>
<li class="mb-3 d-flex justify-content-between">
<span class="fw-bold" data-bs-toggle="tooltip" title="<?php ee('Total clicks allowed over a period') ?>"><?php ee("Link Clicks") ?></span>
<strong><?php echo $plan["clicks"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["clicks"]).'/'.e('mo') ?></strong>
</li>
<li class="mb-3 d-flex justify-content-between">
<span class="fw-bold"><?php ee("QR Codes") ?></span>
<strong><?php echo (isset($plan["permission"]->qr) && $plan["permission"]->qr->enabled) ? ($plan["permission"]->qr->count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["permission"]->qr->count).($plan['isqrmonthly'] ? '/'.e('mo') : '') : '<i class="fa fa-times text-danger"></i>' ?></strong>
</li>
<li class="mb-3 d-flex justify-content-between">
<span class="fw-bold"><?php ee("Bio Pages") ?></span>
<strong><?php echo (isset($plan["permission"]->bio) && $plan["permission"]->bio->enabled) ? ($plan["permission"]->bio->count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["permission"]->bio->count) : '<i class="fa fa-times text-danger"></i>' ?></strong>
</li>
<li class="mb-3 d-flex justify-content-between">
<span class="fw-bold"><?php ee("Data Retention") ?></span>
<strong><?php echo $plan["retention"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["retention"].' '.e('days') ?></strong>
</li>
<?php echo $plan["permission"]->custom ? '<li class="mb-3 d-flex justify-content-between fw-bold">'.$plan["permission"]->custom.'<span class="float-end"><i class="fa fa-check text-success"></i></span></li>' : '' ?>
</ul>
<?php if($plan['planurl'] == "#"):?>
<a href="<?php echo route('billing') ?>" class="btn bg-secondary mt-5 py-3 d-block"><strong><?php echo $plan['plantext'] ?></strong></a>
<?php else: ?>
<a href="<?php echo $plan['planurl'] ?>" class="btn btn-primary mt-5 py-3 d-block fw-bolder" data-trigger="checkout"><?php echo $plan['plantext'] ?></a>
<?php endif?>
</div>
</div>
</div>
<?php endforeach ?>
</div>
<div class="card sticky-top mb-3 border-0 shadow-sm">
<div class="card-header bg-dark text-white rounded rounded-2 py-3 border-0">
<div class="row align-items-center">
<div class="col-12 col-md-4 mb-2 mb-md-0">
<h5 class="mb-0 fw-bold"><?php ee('Compare Plans') ?></h5>
</div>
<div class="col-12 col-md-8">
<div class="row text-center">
<?php foreach($plans as $plan): ?>
<div class="col px-3 mt-3 mt-sm-0">
<div class="d-flex align-items-center">
<span class="fw-bolder"><?php echo $plan['name'] ?></span>
<div class="fw-bold gradient-primary clip-text ms-auto">
<?php if($plan['free']): ?>
<?php ee('Free') ?>
<?php else: ?>
<small data-pricing-monthly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_monthly"]) ?>" data-pricing-yearly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_yearly"]) ?>" data-pricing-lifetime="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_lifetime"]) ?>"><strong class="gradient-primary clip-text"><span class="price"><?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_".$default]) ?></span><?php echo $plan['free'] ? '' : '<small data-toggle="pricingterm" data-term-monthly="/'.e('month').'" data-term-yearly="/'.e('year').'" data-term-lifetime=" '.e('lifetime').'">'.$term.'</small>' ?></strong></small>
<?php endif ?>
</div>
</div>
<?php if($plan['planurl'] == "#"):?>
<a href="<?php echo route('billing') ?>" class="btn bg-transparent border-white text-white btn-sm d-block mt-2"><strong><?php echo $plan['plantext'] ?></strong></a>
<?php else: ?>
<a href="<?php echo $plan['planurl'] ?>" class="btn btn-light btn-sm fw-bolder d-block mt-2" data-trigger="checkout"><?php echo $plan['plantext'] ?></a>
<?php endif?>
</div>
<?php endforeach ?>
</div>
</div>
</div>
</div>
</div>
<?php foreach($categories as $category => $title): ?>
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-dark text-white rounded rounded-2 py-3 border-0">
<div class="row align-items-center">
<div class="col-12 col-md-4 mb-2 mb-md-0">
<h5 class="mb-0 fw-bold"><?php echo $title ?></h5>
</div>
</div>
</div>
<div class="card-body p-0">
<?php if($category == 'link'): ?>
<div class="feature-row p-3 border-bottom">
<div class="row align-items-center">
<div class="col-12 col-md-4 mb-2 mb-md-0">
<div class="d-flex align-items-center">
<span data-bs-toggle="tooltip" data-bs-placement="right" title="<?php ee('Number of short links allowed.') ?>" class="fw-bold"><?php ee('Short Links') ?> <i class="fa-regular fa-circle-question ms-2 text-muted small"></i></span>
</div>
</div>
<div class="col-12 col-md-8">
<div class="row text-center">
<?php foreach($plans as $plan): ?>
<div class="col">
<strong><?php echo $plan["urls"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["urls"]).($plan['ismonthly'] ? '/'.e('mo') : '') ?></strong>
</div>
<?php endforeach ?>
</div>
</div>
</div>
</div>
<div class="feature-row p-3 border-bottom">
<div class="row align-items-center">
<div class="col-12 col-md-4 mb-2 mb-md-0">
<div class="d-flex align-items-center">
<span class="fw-bold" data-bs-toggle="tooltip" title="<?php ee('Total clicks allowed over a period') ?>"><?php ee("Link Clicks") ?> <i class="fa-regular fa-circle-question ms-2 text-muted small"></i></span>
</div>
</div>
<div class="col-12 col-md-8">
<div class="row text-center">
<?php foreach($plans as $plan): ?>
<div class="col">
<strong><?php echo $plan["clicks"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["clicks"]).'/'.e('mo') ?></strong>
</div>
<?php endforeach ?>
</div>
</div>
</div>
</div>
<?php endif ?>
<?php foreach(\Helpers\App::features() as $slug => $feature): ?>
<?php if(!isset($feature['category'])) $feature['category'] = 'management'; ?>
<?php if($feature['category'] == $category): ?>
<div class="feature-row p-3 border-bottom">
<div class="row align-items-center">
<div class="col-12 col-md-4 mb-2 mb-md-0">
<div class="d-flex align-items-center">
<span data-bs-toggle="tooltip" data-bs-placement="right" title="<?php echo $feature['description'] ?>" class="fw-bold"><?php echo $feature['name'] ?> <i class="fa-regular fa-circle-question ms-2 text-muted small"></i></span>
</div>
</div>
<div class="col-12 col-md-8">
<div class="row text-center">
<?php foreach($plans as $plan): ?>
<div class="col">
<?php if(isset($plan["permission"]->{$slug}) && $plan["permission"]->{$slug}->enabled): ?>
<?php if(isset($feature['count']) && $feature['count']): ?>
<?php if($slug == 'apirate'): ?>
<strong>
<?php echo $plan["permission"]->apirate->count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : ee('{x}/min', null, ['x' => $plan["permission"]->apirate->count]) ?>
</strong>
<?php elseif($slug == 'qr'): ?>
<strong>
<?php echo $plan["permission"]->qr->count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["permission"]->qr->count.($plan['isqrmonthly'] ? '/'.e('mo') : '') ?>
</strong>
<?php else: ?>
<strong>
<?php echo $plan["permission"]->{$slug}->count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["permission"]->{$slug}->count ?>
</strong>
<?php endif ?>
<?php elseif($slug == 'bioblocks'): ?>
<span class="gradient-primary clip-text fw-bold">
<?php echo !empty($plan["permission"]->bioblocks->custom) ? count(explode(',', $plan["permission"]->bioblocks->custom)).' '.e('Widgets') : count(\Helpers\BioWidgets::widgets()).' '. e('Widgets') ?>
</span>
<?php else: ?>
<i class="fa fa-check text-success"></i>
<?php endif ?>
<?php else: ?>
<i class="fa fa-times text-danger"></i>
<?php endif ?>
</div>
<?php endforeach ?>
</div>
</div>
</div>
</div>
<?php endif ?>
<?php endforeach ?>
</div>
</div>
<?php endforeach ?>
+231
View File
@@ -0,0 +1,231 @@
<section class="bg-primary py-10">
<div class="container">
<h3 class="h1 fw-bolder text-start mb-5"><?php ee('Checkout') ?></h3>
<?php echo message() ?>
<form action="<?php echo route('checkout.process', [$plan->id, $type]) ?>" method="post" id="payment-form">
<?php echo csrf() ?>
<div class="row">
<div class="col-lg-8">
<div class="card border-0 shadow-sm mb-3">
<div class="card-body p-4">
<h5 class="card-title fw-bold"><?php ee('Payment Method') ?></h5>
<div class="mt-3 btn-stack d-block d-sm-flex" data-bs-toggle="buttons">
<?php $i = 0; foreach($processors as $name => $processor): ?>
<?php if(!config($name) || !config($name)->enabled) continue ?>
<label class="btn py-3 px-4 text-start mb-2 d-block flex-sm-fill <?php echo ($i == 0 ? 'active':'') ?>">
<input type="radio" name="payment" class="d-none" value="<?php echo $name ?>" autocomplete="off" <?php echo ($i == 0 ? 'checked':'') ?>>
<?php if(isset($processor['logos']) && $processor['logos']): ?>
<p class="mb-2">
<?php foreach($processor['logos'] as $logos): ?>
<?php echo $logos ?>
<?php endforeach ?>
</p>
<?php endif ?>
<strong><?php echo $processor['name'] ?></strong>
</label>
<?php $i++; endforeach ?>
</div>
<?php foreach($processors as $name => $processor): ?>
<?php if(!config($name) || !config($name)->enabled) continue ?>
<?php if($processor['checkout']): ?>
<div class="mt-4"><?php call_user_func($processor['checkout'], $plan) ?></div>
<?php endif ?>
<?php endforeach ?>
</div>
</div>
<div class="card border-0 shadow-sm">
<div class="card-body p-4">
<h5 class="card-title fw-bold mb-3"><?php ee('Billing Address') ?></h5>
<div class="mt-3 mb-5 btn-stack d-flex" data-bs-toggle="buttons">
<label class="btn py-3 px-4 flex-fill fw-bold <?php echo (!isset($user->address->type) || $user->address->type != 'business' ? 'active' : '') ?>">
<input type="radio" name="type" class="d-none" value="personal" data-toggle="customertype" autocomplete="off" <?php echo (!isset($user->address->type) || $user->address->type != 'business' ? 'checked' : '') ?>> <?php ee('Personal') ?>
</label>
<label class="btn py-3 px-4 flex-fill fw-bold <?php echo (isset($user->address->type) && $user->address->type == 'business' ? 'active' : '') ?>">
<input type="radio" name="type" class="d-none" value="business" data-toggle="customertype" autocomplete="off" <?php echo (isset($user->address->type) && $user->address->type == 'business' ? 'checked' : '') ?>> <?php ee('Business') ?>
</label>
</div>
<div id="company" class="<?php echo (isset($user->address->type) && $user->address->type == 'business' ? '' : 'd-none') ?>">
<div class="row">
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="company"><?php echo e("Company") ?></label>
<input type="text" class="form-control p-2" id="company" name="company" placeholder="e.g. Acme Inc" value="<?php echo (isset($user->address->company) ? $user->address->company : "" ) ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="taxid"><?php echo e("Tax ID (optional)") ?></label>
<input type="text" class="form-control p-2" id="taxid" name="taxid" placeholder="e.g. 123456" value="<?php echo (isset($user->address->taxid) ? $user->address->taxid : "" ) ?>">
</div>
</div>
</div>
</div>
<div class="form-group mb-4">
<label class="form-label fw-bold" for="name"><?php echo e("Full Name") ?></label>
<input type="text" class="form-control p-2" id="name" name="name" value="<?php echo $user->name ?>">
</div>
<div class="form-group mb-4">
<label class="form-label fw-bold" for="address"><?php echo e("Address") ?></label>
<input type="text" class="form-control p-2" id="address" name="address" value="<?php echo (isset($user->address->address) ? $user->address->address : "" ) ?>">
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="city"><?php echo e("City") ?></label>
<input type="text" class="form-control p-2" id="city" name="city" placeholder="e.g. New York" value="<?php echo (isset($user->address->city) ? $user->address->city : "" ) ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="state"><?php echo e("State/Province") ?></label>
<input type="text" class="form-control p-2" id="state" name="state" placeholder="e.g. NY" value="<?php echo (isset($user->address->state) ? $user->address->state : "" ) ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="country"><?php echo e("Country") ?></label>
<select name="country" id="country" class="form-select p-2" data-toggle="select">
<?php echo \Core\Helper::Country($user->address->country ?? request()->country()['country'], true, true) ?>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-4">
<label class="form-label fw-bold" for="zip"><?php echo e("Zip/Postal code") ?></label>
<input type="text" class="form-control p-2" id="zip" name="zip" placeholder="e.g. 44205" value="<?php echo (isset($user->address->zip) ? $user->address->zip : "" ) ?>">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card border-0 shadow-sm mb-2">
<div class="card-body p-4">
<div class="mb-5 btn-stack d-flex" data-bs-toggle="buttons">
<?php if($plan->price_lifetime && $plan->price_lifetime != "0.00"): ?>
<a href="<?php echo route('checkout', [$plan->id, 'lifetime']) ?>" class="btn small flex-fill <?php echo $type == 'lifetime' ? 'active' : '' ?>">
<?php ee('Lifetime') ?>
</a>
<?php endif ?>
<?php if($plan->price_monthly && $plan->price_monthly != "0.00"): ?>
<a href="<?php echo route('checkout', [$plan->id, 'monthly']) ?>" class="btn small flex-fill <?php echo $type == 'monthly' ? 'active' : '' ?>">
<?php ee('Monthly') ?>
</a>
<?php endif ?>
<?php if($plan->price_yearly && $plan->price_yearly != "0.00"): ?>
<a href="<?php echo route('checkout', [$plan->id, 'yearly']) ?>" class="btn small flex-fill <?php echo $type == 'yearly' ? 'active' : '' ?>">
<?php ee('Yearly') ?>
</a>
<?php endif ?>
</div>
<div class="row d-flex align-items-center">
<div class="col d-flex align-items-center">
<?php if($plan->icon): ?>
<strong class="icon-md bg-primary d-flex align-items-center justify-content-center rounded-3 me-3">
<i class="fa <?php echo $plan->icon ?? 'fa-star' ?> gradient-primary clip-text fw-bolder"></i>
</strong>
<?php endif ?>
<strong><?php echo $plan->name ?></strong>
</div>
<div class="col-auto">
<?php echo \Helpers\App::currency(config('currency'), $plan->price) ?>
</div>
</div>
<hr>
<div class="row">
<div class="col">
<strong><?php ee('Subtotal') ?></strong>
</div>
<div class="col-auto" id="subtotal">
<?php echo \Helpers\App::currency(config('currency'), $plan->price) ?>
</div>
</div>
<div class="form-group mb-4 mt-4 collapse" id="promocode">
<label class="form-label" for="coupon"><?php echo e("Promo Code") ?></label>
<div class="input-group p-2 d-flex align-items-center border rounded">
<input type="text" data-url="<?php echo route('checkout.coupon', [$plan->id, $type]) ?>" class="form-control border-0" id="coupon" name="coupon" placeholder="<?php ee('Enter promo code') ?>">
<span>
<button type="button" data-trigger="applycoupon" class="btn btn-sm btn-primary"><?php ee('Apply') ?></button>
</span>
</div>
<span id="couponresponse"></span>
</div>
<a href="#promocode" data-bs-toggle="collapse"><?php ee('Apply promo code') ?></a>
<div class="form-group mb-4 mt-4 collapse">
<div class="row">
<div class="col">
<?php ee('Discount') ?>
</div>
<div class="col-auto" id="discount"></div>
</div>
</div>
<div id="taxrate" data-url="<?php echo route('checkout.tax', [$plan->id, $type]) ?>">
<?php if($tax): ?>
<div class="form-group mb-4 mt-4">
<div class="row">
<div class="col">
<?php echo "{$tax->name} ({$tax->rate}%)" ?>
</div>
<div class="col-auto" id="taxamount">
<?php echo \Helpers\App::currency(config('currency'), $tax->price); $plan->price = $plan->price + $tax->price;?>
</div>
</div>
</div>
<?php endif ?>
</div>
<hr>
<div class="row">
<div class="col">
<strong><?php ee('Total') ?></strong>
</div>
<div class="col-auto text-end">
<span id="total"><?php echo \Helpers\App::currency(config('currency'), $plan->price) ?></span>
<p class="small"><?php echo $type == 'lifetime' ? e('One-time payment') : e('Billed').' '.e($type) ?></p>
</div>
</div>
<div class="mt-5">
<button type="submit" class="btn btn-primary w-100 fw-bold py-3"><small><?php ee('Checkout') ?></small></button>
</div>
</div>
</div>
<?php if(\Helpers\App::isExtended()): ?>
<div class="d-flex w-100 mt-3">
<a href="#redeemvoucher" class="text-dark ms-auto" data-bs-toggle="modal"><i class="fa fa-ticket-alt me-2"></i> <?php ee('Redeem Voucher') ?></a>
</div>
<?php endif ?>
<div class="card border-0 shadow-sm mt-4 p-4">
<?php ee('By subscribing to this plan, you agree to our Terms & Conditions. Subscription is charged in {c}. If you have any questions, please contact us.', null, ['c' => config('currency')]) ?>
</div>
</div>
</div>
</form>
</div>
</section>
<?php if(\Helpers\App::isExtended()): ?>
<div class="modal fade" id="redeemvoucher" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<form action="<?php echo route('checkout.redeem') ?>" method="post">
<div class="modal-header">
<h5 class="modal-title fw-bold"><?php ee('Redeem Voucher') ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php echo csrf() ?>
<div class="form-group mb-4">
<label class="form-label fw-bold label"><?php ee('Voucher') ?></label>
<input type="text" class="form-control p-2" id="input-voucher" name="code" placeholder="e.g. A1A1-A1A1">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary"><?php ee('Redeem') ?></button>
</div>
</form>
</div>
</div>
</div>
<?php endif ?>
+83
View File
@@ -0,0 +1,83 @@
<section class="bg-primary border-top border-bottom">
<div class="container py-8">
<div class="row mb-5 justify-content-center text-center">
<div class="col-lg-7 col-md-9">
<h4 class="py-2 px-3">
<strong class="gradient-primary clip-text fw-bolder"><?php ee('Simple Pricing') ?></strong>
</h4>
<h1 class="fw-bolder mt-4"><?php ee('Choose the plan <br>that works for you') ?></h1>
<p class="lead mb-0">
<?php ee('Transparent pricing without any hidden fees so you always know what you will pay.') ?>
</p>
</div>
</div>
<div class="my-5 mx-auto">
<?php message() ?>
<div class="pricing-container">
<div class="text-center mb-5">
<div class="bg-white d-inline-block shadow-sm mb-5 p-2 rounded-pill" role="group" aria-label="Pricing">
<?php if($settings['lifetime']):?>
<button type="button" class="px-4 px-md-5 btn <?php echo $default == 'lifetime' ? 'btn-primary' : 'bg-white btn-white' ?> fw-bold rounded-pill" data-pricing="lifetime"><?php ee('Lifetime') ?></button>
<?php endif ?>
<?php if($settings['monthly']):?>
<button type="button" class="px-4 px-md-5 btn <?php echo $default == 'monthly' ? 'btn-primary' : 'bg-white btn-white' ?> fw-bold rounded-pill" data-pricing="monthly"><?php ee('Monthly') ?></button>
<?php endif ?>
<?php if($settings['yearly']):?>
<button type="button" class="px-4 px-md-5 btn <?php echo $default == 'yearly' ? 'btn-primary' : 'bg-white btn-white' ?> fw-bold rounded-pill position-relative" data-pricing="yearly">
<span><?php ee('Yearly') ?></span>
<?php if($settings['discount']): ?>
<span class="badge bg-success border-0 badge-pill position-absolute start-100 ms-0 ms-md-2 top-0 translate-middle shadow-sm"><?php ee('Save {d}%', null, ['d' => $settings['discount']]) ?></span>
<?php endif ?>
</button>
<?php endif ?>
</div>
</div>
<?php if(themeSettings::config('pricing') == 'table'):?>
<?php view('pricing.table', compact('class', 'plans', 'default', 'term')) ?>
<?php elseif(themeSettings::config('pricing') == 'categorized'): ?>
<?php view('pricing.categorized', compact('class', 'plans', 'default', 'term', 'categories')) ?>
<?php else: ?>
<?php view('pricing.list', compact('class', 'plans', 'default', 'term')) ?>
<?php endif ?>
</div>
<?php if(config('customplan')): ?>
<div class="h-100 p-5 gradient-primary text-white rounded-3 border-0 shadow-sm">
<div class="row align-items-center gy-lg-5">
<div class="col-sm-8">
<h2 class="fw-bold"><?php ee('Need a custom plan?') ?></h2>
<p class="lead"><?php ee('If our current plans do not fit your needs, we will create a tailored plan just for your needs.') ?></p>
</div>
<div class="col-sm-4 text-end">
<a class="btn btn-light text-primary d-block d-sm-inline-block" href="<?php echo route('contact', ['subject' => e('Custom Plan')]) ?>"><?php ee('Contact Sales') ?></a>
</div>
</div>
</div>
<?php endif ?>
</div>
<div class="py-8">
<div class="row">
<div class="col-12 col-lg-5 text-center text-lg-start mb-5">
<h2 class="mb-4 fw-bold"><?php ee('Frequently Asked Questions') ?></h2>
<p><?php ee("If you have questions, please don't hesitate to contact us.") ?></p>
<a href="<?php echo route('contact') ?>" class="btn btn-primary"><?php ee('Contact us') ?></a>
</div>
<div class="col-12 col-lg-7">
<?php foreach(\Helpers\App::pricingFaqs() as $i => $faq): ?>
<div id="<?php echo 'faq-holder-'.$faq->slug ?>" class="mb-4">
<div class="card border-0 shadow-sm">
<div class="card-header border-0 bg-transparent py-4" id="<?php echo $faq->slug ?>" data-bs-toggle="collapse" role="button" data-bs-target="#faq-<?php echo $faq->id ?>" aria-expanded="false" aria-controls="faq-<?php echo $faq->id ?>">
<h6 class="mb-0 fw-bold"><?php echo $faq->question ?></h6>
</div>
<div id="faq-<?php echo $faq->id ?>" class="collapse" aria-labelledby="<?php echo $faq->slug ?>" data-parent="#<?php echo 'faq-holder-'.$faq->slug ?>">
<div class="card-body">
<?php echo strip_tags($faq->answer) ?>
</div>
</div>
</div>
</div>
<?php endforeach ?>
</div>
</div>
</div>
</div>
</section>
+70
View File
@@ -0,0 +1,70 @@
<div class="pricing row mt-5">
<?php foreach($plans as $id => $plan): ?>
<div class="<?php echo $class ?>">
<div class="card mb-5 text-center mx-1 position-relative <?php echo ($plan['ispopular'] ? 'border border-3 border-info shadow' : 'border-0 shadow-sm') ?>">
<div class="w-100 position-absolute top-0 start-50 translate-middle">
<?php if($plan['ispopular']): ?>
<span class="px-3 py-1 d-inline">
<span class="fw-bold badge bg-info py-1 px-3 fs-6"><?php ee('Popular') ?></span>
</span>
<?php endif ?>
<?php if(isset($plan['discount']) && $plan['discount']): ?>
<span data-toggle="discount" class="d-none px-3 py-1">
<span class="fw-bold badge bg-success py-1 px-3 fs-6"><?php ee('Save {p}%', null, ['p' => $plan['discount'] ]) ?></span>
</span>
<?php endif ?>
</div>
<div class="p-5 border-0">
<?php if($plan['icon']): ?>
<span class="fs-1 mb-3 d-block"><i class="<?php echo $plan['icon'] ?>"></i></span>
<?php endif ?>
<span class="d-block h5 mb-4 fw-bold"><?php ee($plan['name']) ?></span>
<div class="h2 text-center mb-0 fw-bolder" data-pricing-monthly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_monthly"]) ?>" data-pricing-yearly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_yearly"]) ?>" data-pricing-lifetime="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_lifetime"]) ?>"><strong class="gradient-primary clip-text"><span class="price"><?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_".$default]) ?></span><?php echo $plan['free'] ? '' : '<small data-toggle="pricingterm" data-term-monthly="/'.e('month').'" data-term-yearly="/'.e('year').'" data-term-lifetime=" '.e('lifetime').'" class="fs-6">'.$term.'</small>' ?></strong></div>
<?php echo $plan['description'] ? '<span class="d-block text-muted mt-3">'.e($plan['description']).'</span>': '' ?>
<?php if($plan['planurl'] == "#"):?>
<a href="<?php echo route('billing') ?>" class="btn bg-secondary mt-5 py-3 d-block"><strong><?php echo $plan['plantext'] ?></strong></a>
<?php else: ?>
<a href="<?php echo $plan['planurl'] ?>" class="btn btn-primary mt-5 py-3 d-block fw-bolder" data-trigger="checkout"><?php echo $plan['plantext'] ?></a>
<?php endif?>
</div>
<div class="card-body rounded-bottom p-4 position-relative">
<ul class="list-unstyled mb-4 text-start text-dark">
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php ee('Number of short links allowed.') ?>"><?php ee("Short Links") ?></span><span class="float-end fw-bold"><?php echo $plan["urls"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["urls"]).($plan['ismonthly'] ? '/'.e('mo') : '') ?></span></li>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php ee('Total clicks allowed over a period') ?>"><?php ee("Link Clicks") ?></span><span class="float-end fw-bold"><?php echo $plan["clicks"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan["clicks"]).'/'.e('mo') ?></span></li>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php ee('Amount of time statistics are kept for each short link.') ?>"><?php ee("Data Retention") ?></span><span class="float-end fw-bold"><?php echo $plan["retention"] == "0" ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : $plan["retention"].' '.e('days') ?></span></li>
<?php if($features = \Helpers\App::features()): ?>
<?php foreach($features as $slug => $feature): ?>
<?php if(isset($plan["permission"]->{$slug}) && $plan["permission"]->{$slug}->enabled): ?>
<?php if(isset($feature['count']) && $feature['count'] !== false): ?>
<li class="mb-3">
<span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php echo $feature['description'] ?>"><?php echo $feature['name'] ?></span>
<?php if($slug == 'apirate'): ?>
<?php if($plan["permission"]->apirate->count == '0'): ?>
<span class="float-end fw-bolder"><i class="fa fa-infinity gradient-primary clip-text"></i></span>
<?php else: ?>
<span class="float-end fw-bolder"><?php ee('{x}/min', null, ['x' => $plan["permission"]->apirate->count]) ?></span>
<?php endif ?>
<?php else: ?>
<span class="float-end fw-bolder"><?php echo $plan["permission"]->{$slug}->count == '0' ? e('Unlimited') : $plan["permission"]->{$slug}->count ?><?php if($slug == 'qr') echo ($plan['isqrmonthly'] ? '/'.e('mo') : '') ?></span>
<?php endif ?>
</li>
<?php elseif($slug == 'bioblocks'): ?>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php echo $feature['description'] ?>"><?php echo $feature['name'] ?></span><span class="float-end gradient-primary clip-text fw-bold">
<?php echo !empty($plan["permission"]->bioblocks->custom) ? count(explode(',', $plan["permission"]->bioblocks->custom)).' '.e('Widgets') : count(\Helpers\BioWidgets::widgets()).' '. e('Widgets') ?>
</span> </li>
<?php else: ?>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php echo $feature['description'] ?>"><?php echo $feature['name'] ?></span><span class="float-end"><i class="fa fa-check text-success"></i></span></li>
<?php endif ?>
<?php else: ?>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php echo $feature['description'] ?>"><?php echo $feature['name'] ?></span><span class="float-end"><i class="fa fa-times text-danger"></i></span></li>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
<li class="mb-3"><span class="border-bottom border-1" data-bs-toggle="tooltip" title="<?php ee("No advertisement will be shown when logged or in your links") ?>"><?php ee("Advertisement-Free") ?></span><span class="float-end"><?php echo !$plan["free"] ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>' ?></span></li>
<?php echo $plan["permission"]->custom ? '<li>'.$plan["permission"]->custom.'<span class="float-end"><i class="fa fa-check text-success"></i></span></li>' : '' ?>
</ul>
</div>
</div>
</div>
<?php endforeach ?>
</div>
+143
View File
@@ -0,0 +1,143 @@
<div class="card border-0 rounded-lg shadow-sm text-center p-4 py-5 table-responsive my-5">
<table class="table border-0 w-fixed">
<thead>
<th width="20%"></th>
<?php $count = count($plans); foreach($plans as $plan): ?>
<th width="<?php echo round(80/($count)) ?>%"></th>
<?php endforeach ?>
</thead>
<tbody>
<tr>
<td>&nbsp;</td>
<?php foreach($plans as $plan): ?>
<td>
<?php if($plan['ispopular']): ?>
<span class="px-3 py-1">
<span class="fw-bold badge bg-info py-1 px-3 fs-6"><?php ee('Popular') ?></span>
</span>
<?php endif ?>
<?php if(isset($plan['discount']) && $plan['discount']): ?>
<span data-toggle="discount" class="d-none px-3 py-1">
<span class="fw-bold badge bg-success py-1 px-3 fs-6"><?php ee('Save {p}%', null, ['p' => $plan['discount'] ]) ?></span>
</span>
<?php endif ?>
<?php if($plan['icon']): ?>
<span class="fs-1 mb-3 d-block"><i class="<?php echo $plan['icon'] ?>"></i></span>
<?php endif ?>
<span class="d-block h5 mb-4 mt-3 fw-bold"><?php ee($plan['name']) ?></span>
<div class="h3 text-center mb-0 fw-bolder gradient-primary clip-text" data-pricing-monthly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_monthly"]) ?>" data-pricing-yearly="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_yearly"]) ?>" data-pricing-lifetime="<?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_lifetime"]) ?>"><strong><span class="price"><?php echo $plan['free'] ? e('Free') : \Helpers\App::currency(config('currency'), $plan["price_".$default]) ?></span><?php echo $plan['free'] ? '' : '<small data-toggle="pricingterm" data-term-monthly="/'.e('month').'" data-term-yearly="/'.e('year').'" data-term-lifetime="'.e('lifetime').'" class="fs-6">'.$term.'</small>' ?></strong></div>
<?php echo $plan['description'] ? '<span class="d-block mt-3">'.e($plan['description']).'</span>': '' ?>
<?php if($plan['planurl'] == "#"):?>
<a href="<?php echo route('billing') ?>" class="btn bg-secondary my-3 py-2 btn-sm d-block mx-3 fw-bolder"><strong><?php echo $plan['plantext'] ?></strong></a>
<?php else: ?>
<a href="<?php echo $plan['planurl'] ?>" class="btn btn-primary my-3 py-2 btn-sm d-block mx-3" data-trigger="checkout"><?php echo $plan['plantext'] ?></a>
<?php endif?>
</td>
<?php endforeach ?>
</tr>
<tr>
<td class="py-3 text-start fw-bold"><?php ee('Short Links') ?> <i class="align-middle fa fa-question-circle opacity-50 text-muted small ms-2" data-bs-toggle="tooltip" title="<?php ee('Number of short links allowed') ?>"></i></td>
<?php foreach($plans as $plan): ?>
<td class="py-3 fw-bold">
<?php echo $plan['urls'] == '0' ? '<i class="align-middle fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan['urls']).($plan['ismonthly'] ? ' / '.e('month') : '') ?>
</td>
<?php endforeach ?>
</tr>
<tr>
<td class="py-3 text-start fw-bold"><?php ee('Link Clicks') ?> <i class="align-middle fa fa-question-circle opacity-50 text-muted small ms-2" data-bs-toggle="tooltip" title="<?php ee('Total clicks allowed over a period') ?>"></i></td>
<?php foreach($plans as $plan): ?>
<td class="py-3 fw-bold">
<?php echo $plan['clicks'] == '0' ? '<i class="align-middle fa fa-infinity gradient-primary clip-text"></i>' : number_format($plan['clicks']).' / '.e('month') ?>
</td>
<?php endforeach ?>
</tr>
<tr>
<td class="py-3 text-start fw-bold"><?php ee('Data Retention') ?> <i class="align-middle fa fa-question-circle opacity-50 text-muted small ms-2" data-bs-toggle="tooltip" title="<?php ee('Amount of time statistics are kept for each short link.') ?>"></i></td>
<?php foreach($plans as $plan): ?>
<td class="py-3 fw-bold">
<?php echo $plan['retention'] == '0' ? e('Forever') : $plan['retention'].' '.e('days') ?>
</td>
<?php endforeach ?>
</tr>
<?php if($features = \Helpers\App::features()): ?>
<?php foreach($features as $slug => $feature): ?>
<tr>
<td class="py-3 text-start fw-bold">
<?php echo $feature['name'] ?>
<i class="align-middle fa fa-question-circle opacity-50 text-muted small ms-2" data-bs-toggle="tooltip" title="<?php echo $feature['description'] ?>"></i>
</td>
<?php foreach($plans as $plan): ?>
<td>
<?php
$featureEnabled = isset($plan["permission"]->{$slug}) && $plan["permission"]->{$slug}->enabled;
if(!$featureEnabled): ?>
<i class="align-middle fa fa-times text-danger"></i>
<?php else:
// Handle feature with count
if($feature['count']):
$count = $plan["permission"]->{$slug}->count;
if($slug === 'apirate'): ?>
<span class="fw-bolder">
<?php echo $count == '0' ? '<i class="fa fa-infinity gradient-primary clip-text"></i>' : ee('{x}/min', null, ['x' => $count]); ?>
</span>
<?php else: ?>
<?php if($count == '0'): ?>
<i class="align-middle fa fa-infinity gradient-primary clip-text"></i>
<?php else: ?>
<strong><?php echo $count ?></strong>
<?php if($slug == 'qr' && $plan['isqrmonthly']): ?>
<strong>/ <?php ee('month') ?></strong>
<?php endif ?>
<?php endif ?>
<?php endif ?>
<?php elseif($slug === 'bioblocks'): ?>
<span class="gradient-primary clip-text fw-bold">
<?php
$blockCount = !empty($plan["permission"]->bioblocks->custom)
? count(explode(',', $plan["permission"]->bioblocks->custom))
: count(\Helpers\BioWidgets::widgets());
echo $blockCount . ' ' . e('Widgets');
?>
</span>
<?php else: ?>
<i class="align-middle fa fa-check text-success"></i>
<?php endif ?>
<?php endif ?>
</td>
<?php endforeach ?>
</tr>
<?php endforeach ?>
<?php endif ?>
<tr>
<td class="py-3 text-start fw-bold"><?php ee('Advertisement-Free') ?> <i class="align-middle fa fa-question-circle opacity-50 text-muted small ms-2" data-bs-toggle="tooltip" title="<?php ee('No advertisement will be shown when logged or in your links') ?>"></i></td>
<?php foreach($plans as $plan): ?>
<td class="py-3 fw-bold">
<?php echo !$plan["free"] ? '<i class="align-middle fa fa-check text-success"></i>' : '<i class="align-middle fa fa-times text-danger"></i>' ?>
</td>
<?php endforeach ?>
</tr>
<tr class="border-0">
<td>&nbsp;</td>
<?php foreach($plans as $plan): ?>
<td class="py-3">
<?php if(isset($plan["permission"]->custom)): ?>
<?php echo $plan["permission"]->custom ?>
<?php endif ?>
</td>
<?php endforeach ?>
</tr>
<tr>
<td>&nbsp;</td>
<?php foreach($plans as $plan): ?>
<td>
<?php if($plan['planurl'] == "#"):?>
<a href="<?php echo route('billing') ?>" class="btn bg-secondary my-3 d-block py-2 mx-3 fw-bolder"><strong><?php echo $plan['plantext'] ?></strong></a>
<?php else: ?>
<a href="<?php echo $plan['planurl'] ?>" class="btn btn-primary my-3 d-block py-2 mx-3" data-trigger="checkout"><?php echo $plan['plantext'] ?></a>
<?php endif?>
</td>
<?php endforeach ?>
</tr>
</tbody>
</table>
</div>