| 1 |
<?php |
| 2 |
/* ---------------- Plans ---------------- */ |
| 3 |
$plans = [ |
| 4 |
["name" => "Basic", "price" => "Free", "cta" => "Current plan", "currentPlan" => true], |
| 5 |
["name" => "Small", "price" => "$97", "cta" => "Upgrade", "link" => "https://useraccount.getwpfunnels.com/wpfunnels-annual/steps/annual-small-checkout/"], |
| 6 |
["name" => "Medium", "price" => "$147", "cta" => "Upgrade", "popular" => true, "link" => "https://useraccount.getwpfunnels.com/wpfunnels-annual-5-sites/steps/5-sites-annual-checkout/"], |
| 7 |
["name" => "Large", "price" => "$237", "cta" => "Upgrade", "link" => "https://useraccount.getwpfunnels.com/wpfunnels-annual-unlimited/steps/annual-unlimited-checkout/"], |
| 8 |
]; |
| 9 |
|
| 10 |
/* ---------------- Features ---------------- */ |
| 11 |
$features = [ |
| 12 |
[ |
| 13 |
"group" => "Funnels & Usage Limits", |
| 14 |
"items" => [ |
| 15 |
[ |
| 16 |
"label" => "License usage (no. of sites)", |
| 17 |
"tooltipText" => "Defines how many websites you can activate with this license.", |
| 18 |
"values" => ["None", "1 site", "5 sites", "50 sites"], |
| 19 |
"hasBorderTop" => false, |
| 20 |
"isHighlighted" => false, |
| 21 |
], |
| 22 |
[ |
| 23 |
"label" => "No. of Funnels", |
| 24 |
"tooltipText" => "The total number of funnels you can create with this plan.", |
| 25 |
"values" => ["3", "Unlimited", "Unlimited", "Unlimited"], |
| 26 |
"hasBorderTop" => true, |
| 27 |
"isHighlighted" => false, |
| 28 |
], |
| 29 |
[ |
| 30 |
"label" => "Funnel Templates", |
| 31 |
"tooltipText" => "Pre-built funnel designs you can import and customize instantly.", |
| 32 |
"values" => ["Limited", "All", "All", "All"], |
| 33 |
"hasBorderTop" => true, |
| 34 |
"isHighlighted" => true, |
| 35 |
], |
| 36 |
], |
| 37 |
], |
| 38 |
[ |
| 39 |
"group" => "Checkout Features", |
| 40 |
"items" => [ |
| 41 |
["label" => "Multi-step Checkout", "tooltipText" => "Break the checkout process into multiple easy steps for higher conversions.", "values" => [false, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 42 |
["label" => "Basic Checkout Field Editor", "tooltipText" => "Easily add, remove, or edit basic checkout fields to fit your business needs.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 43 |
["label" => "Quantity Selector During Checkout", "tooltipText" => "Allow customers to adjust product quantities directly on the checkout page.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 44 |
["label" => "Advanced Checkout Form Customizer", "tooltipText" => "Advanced customization options for the WooCommerce checkout form.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 45 |
["label" => "Order Bumps", "tooltipText" => "Smart order bumps using customer data to display most relevant products or offers.", "values" => [true, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 46 |
], |
| 47 |
], |
| 48 |
[ |
| 49 |
"group" => "One-Click Upsells / Downsells", |
| 50 |
"items" => [ |
| 51 |
["label" => "Dynamic One-Click Upsells", "tooltipText" => "Use cart contents or customer data to display relevant upsells for maximum conversion.", "values" => [false, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 52 |
["label" => "Dynamic Upsell Templates", "tooltipText" => "Professional templates to help you sell more even if you’re not a designer.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 53 |
["label" => "Replace One Offer with Another", "tooltipText" => "Easily swap out one offer for another in your funnel.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 54 |
], |
| 55 |
], |
| 56 |
[ |
| 57 |
"group" => "Order Bump Features", |
| 58 |
"items" => [ |
| 59 |
["label" => "Multiple Order Bumps", "tooltipText" => "Add multiple order bumps to a single checkout so customers can accept more than one offer with one click.", "values" => [false, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 60 |
], |
| 61 |
], |
| 62 |
[ |
| 63 |
"group" => "Advanced Funnel Features", |
| 64 |
"items" => [ |
| 65 |
["label" => "Funnel Analytics", "tooltipText" => "Analyze transactions and user behavior to refine conversions and make more profit.", "values" => [false, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 66 |
["label" => "A/B Testing", "tooltipText" => "Increase conversions and sales with WPFunnels A/B Testing by running simple tests.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 67 |
["label" => "Conditional WooCommerce Funnels", "tooltipText" => "Create personalized funnels based on user behavior and conditions.", "values" => [false, false, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 68 |
["label" => "Import/Export Funnels", "tooltipText" => "Easily import and export your funnels for use on other sites or for backup purposes.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 69 |
["label" => "Course Funnels", "tooltipText" => "Create funnels specifically for course products in WooCommerce.", "values" => [true, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 70 |
|
| 71 |
], |
| 72 |
], |
| 73 |
[ |
| 74 |
"group" => "Integrations", |
| 75 |
"items" => [ |
| 76 |
["label" => "Integration With Automation Tools", "tooltipText" => "Connect your account to popular automation tools like Mail Mint, FluentCRM, MailPoet, Zapier and so on.", "values" => [false, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 77 |
["label" => "Integration with External CRMs", "tooltipText" => "Sync and manage contacts with popular CRMs including MailChimp, ActiveCampaign, Constant Contact, AWeber, Sendinblue, MailerLite and so on.", "values" => [false, false, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 78 |
["label" => "Webhooks Support", "tooltipText" => "Send real-time data from WPFunnels to any external app or service using webhooks.", "values" => [false, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 79 |
["label" => "Funnels for LearnDash Courses", "tooltipText" => "Create funnels specifically for LearnDash courses to boost sales and engagement.", "values" => [false, false, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 80 |
], |
| 81 |
], |
| 82 |
[ |
| 83 |
"group" => "Others Benefits", |
| 84 |
"items" => [ |
| 85 |
["label" => "Amazing User Community", "tooltipText" => "Amazing User Community is already a great message unless you’re looking for a different meaning.", "values" => [true, true, true, true], "hasBorderTop" => false, "isHighlighted" => false], |
| 86 |
["label" => "Great Documentation & Video Tutorials", "tooltipText" => "Comprehensive guides and video tutorials to help you get the most out of WPFunnels.", "values" => [true, true, true, true], "hasBorderTop" => true, "isHighlighted" => false], |
| 87 |
], |
| 88 |
], |
| 89 |
]; |
| 90 |
|
| 91 |
$listItems = [ |
| 92 |
"Regular Product Updates", |
| 93 |
"Priority Support", |
| 94 |
"14-Day Money-back Guarantee", |
| 95 |
"Instant Download", |
| 96 |
]; |
| 97 |
|
| 98 |
/* ---------------- Helper Functions ---------------- */ |
| 99 |
function renderValueCell($value) { |
| 100 |
if (is_bool($value)) { |
| 101 |
if ($value) { |
| 102 |
$icon = file_get_contents(WPFNL_DIR . '/admin/partials/icons/free-vs-pro-check-icon.php'); |
| 103 |
return '<span class="check">' . $icon . '</span>'; |
| 104 |
} else { |
| 105 |
$icon = file_get_contents(WPFNL_DIR . '/admin/partials/icons/free-vs-pro-cross-icon.php'); |
| 106 |
return '<span class="cross">' . $icon . '</span>'; |
| 107 |
} |
| 108 |
} |
| 109 |
return '<span>' . htmlspecialchars($value) . '</span>'; |
| 110 |
} |
| 111 |
|
| 112 |
|
| 113 |
function renderCheckIcon() { |
| 114 |
return '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> |
| 115 |
<path d="M13.5 4.5L6 12L2.5 8.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> |
| 116 |
</svg>'; |
| 117 |
} |
| 118 |
?> |
| 119 |
|
| 120 |
|
| 121 |
<section> |
| 122 |
<div class="wpfnl-free-vs-pro-comparison-wrapper"> |
| 123 |
<div class="table-content-wrapper"> |
| 124 |
<!-- Section Header --> |
| 125 |
<div class="free-vs-pro-menu"> |
| 126 |
<h2 class="title"><?php echo __( 'WPFunnels Free vs Pro', 'wpfnl' ); ?></h2> |
| 127 |
<p class="free-pro-description"><?php echo __( 'Discover the differences between Free and Pro to decide which plan works for you.', 'wpfnl' ); ?></p> |
| 128 |
</div> |
| 129 |
|
| 130 |
<!-- Comparison Table --> |
| 131 |
<table class="comparison-table"> |
| 132 |
<thead> |
| 133 |
<tr> |
| 134 |
<th class="feature-column"> |
| 135 |
<h3 class="feature-header"><?php echo __( 'Features', 'wpfnl' ); ?></h3> |
| 136 |
</th> |
| 137 |
<?php foreach ($plans as $i => $plan): ?> |
| 138 |
<?php |
| 139 |
$isPopular = isset($plan['popular']) && $plan['popular']; |
| 140 |
$isCurrentPlan = isset($plan['currentPlan']) && $plan['currentPlan']; |
| 141 |
?> |
| 142 |
<th class="<?= $isPopular ? 'popular' : 'regular' ?>"> |
| 143 |
<div class="<?= $isPopular ? 'plan-card popular-card' : 'plan-card' ?>"> |
| 144 |
<?php if ($isPopular): ?> |
| 145 |
<span class="badge"><?php echo __( 'Most Popular', 'wpfnl' ); ?></span> |
| 146 |
<?php endif; ?> |
| 147 |
|
| 148 |
<div class="card-content"> |
| 149 |
<h3 class="plan-name"><?= htmlspecialchars($plan['name']) ?></h3> |
| 150 |
<p class="price"> |
| 151 |
<?= htmlspecialchars($plan['price']) ?> |
| 152 |
<?php if (strtolower($plan['name']) !== 'basic'): ?> |
| 153 |
<span class="time"><?php echo __( '/year', 'wpfnl' ); ?></span> |
| 154 |
<?php endif; ?> |
| 155 |
</p> |
| 156 |
|
| 157 |
<?php if (isset($plan['badge'])): ?> |
| 158 |
<span class="current"><?= htmlspecialchars($plan['badge']) ?></span> |
| 159 |
<?php else: ?> |
| 160 |
<a href="<?= isset($plan['link']) ? htmlspecialchars($plan['link']) : 'https://getwpfunnels.com/pricing/' ?>" target="_blank" role="button" |
| 161 |
class="upgrade-btn <?= $isCurrentPlan ? 'current-plan-btn' : '' ?>"> |
| 162 |
<?php if ($isCurrentPlan): ?> |
| 163 |
<?= renderCheckIcon() ?> |
| 164 |
<?php endif; ?> |
| 165 |
<?= htmlspecialchars($plan['cta']) ?> |
| 166 |
</a> |
| 167 |
<?php endif; ?> |
| 168 |
</div> |
| 169 |
</div> |
| 170 |
</th> |
| 171 |
<?php endforeach; ?> |
| 172 |
</tr> |
| 173 |
</thead> |
| 174 |
|
| 175 |
<tbody> |
| 176 |
<?php foreach ($features as $gi => $group): ?> |
| 177 |
<!-- Group Title Row --> |
| 178 |
<tr class="group-row"> |
| 179 |
<td colspan="<?= count($plans) + 1 ?>"><?= htmlspecialchars($group['group']) ?></td> |
| 180 |
</tr> |
| 181 |
|
| 182 |
<!-- Feature Rows --> |
| 183 |
<?php foreach ($group['items'] as $fi => $feature): ?> |
| 184 |
<tr class="feature-row <?= empty($feature['hasBorderTop']) ? 'no-border-top' : '' ?> <?= !empty($feature['isHighlighted']) ? 'highlight-feature' : '' ?>"> |
| 185 |
<td class="feature-label"> |
| 186 |
<div class="feature-label-content"> |
| 187 |
<span><?= htmlspecialchars($feature['label']) ?></span> |
| 188 |
<?php if (!empty($feature['tooltipText'])): ?> |
| 189 |
<span class="tooltip-wrapper"> |
| 190 |
<?php require WPFNL_DIR . '/admin/partials/icons/tooltip-icon.php';?> |
| 191 |
<span class="tooltip-text"><?= htmlspecialchars($feature['tooltipText']) ?></span> |
| 192 |
</span> |
| 193 |
<?php endif; ?> |
| 194 |
</div> |
| 195 |
</td> |
| 196 |
|
| 197 |
<?php foreach ($feature['values'] as $vi => $value): ?> |
| 198 |
<td class="feature-cell"> |
| 199 |
<?= renderValueCell($value) ?> |
| 200 |
</td> |
| 201 |
<?php endforeach; ?> |
| 202 |
</tr> |
| 203 |
<?php endforeach; ?> |
| 204 |
<?php endforeach; ?> |
| 205 |
<tr class="pro-features-link-row"> |
| 206 |
<td colspan="<?= count($plans) + 1 ?>"> |
| 207 |
<a href="https://getwpfunnels.com/features/" target="_blank"> |
| 208 |
<span><?php echo __( 'See all WPFunnels Pro features', 'wpfnl' ); ?></span> |
| 209 |
<?php require WPFNL_DIR . '/admin/partials/icons/external-link-icon.php'; ?> |
| 210 |
</a> |
| 211 |
</td> |
| 212 |
</tr> |
| 213 |
</tbody> |
| 214 |
</table> |
| 215 |
|
| 216 |
<ul class="list-item-wrapper"> |
| 217 |
<?php foreach ($listItems as $idx => $item): ?> |
| 218 |
<li class="list-item"> |
| 219 |
<?php require WPFNL_DIR . '/admin/partials/icons/list-check-icon.php';?> |
| 220 |
<span><?= htmlspecialchars($item) ?></span> |
| 221 |
</li> |
| 222 |
<?php endforeach; ?> |
| 223 |
</ul> |
| 224 |
</div> |
| 225 |
|
| 226 |
<!-- Section Footer --> |
| 227 |
<div class="free-vs-pro-table-footer"> |
| 228 |
<div class="badges-wrapper"> |
| 229 |
<div class="security-badges"> |
| 230 |
<div class="payment-image"> |
| 231 |
<img src="<?php echo esc_url(WPFNL_URL . 'admin/assets/images/payment-badge.webp'); ?>?>" alt="Payment Badge" /> |
| 232 |
</div> |
| 233 |
<div class="payment-image satisfaction-image"> |
| 234 |
<img src="<?php echo esc_url(WPFNL_URL . 'admin/assets/images/satisfaction-badge.webp'); ?>?>" alt="Satisfaction Badge" /> |
| 235 |
</div> |
| 236 |
<div class="review-image"> |
| 237 |
<img src="<?php echo esc_url(WPFNL_URL . 'admin/assets/images/review-badge.webp'); ?>?>" alt="Review Badge" /> |
| 238 |
</div> |
| 239 |
</div> |
| 240 |
<p class="badges-description"><?php echo __( "Get access to powerful features and build high-converting funnels effortlessly — save time, boost sales, and grow without limits.", 'wpfnl' ); ?></p> |
| 241 |
</div> |
| 242 |
</div> |
| 243 |
</section> |