| @@ -1,680 +1,214 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | - * Free vs Pro Comparison Page | |
| 3 | + * Free vs Pro Comparison Page. | |
| 4 | 4 | * |
| 5 | + * Data-driven layout: every feature row lives in $ei_fvp_features and the | |
| 6 | + * table renders by iterating. Adding / removing / regrouping a feature is | |
| 7 | + * one array edit — not a hundred lines of duplicated HTML. | |
| 8 | + * | |
| 9 | + * Plan model (aligned with LicensePlanResolver): | |
| 10 | + * FREE — Easy Invoice plugin only. | |
| 11 | + * PERSONAL — Easy Invoice Pro plugin installed; no license required. | |
| 12 | + * Every Personal-tier addon in AddonRegistry. | |
| 13 | + * PROFESSIONAL — Personal + Professional-tier addons (requires license). | |
| 14 | + * AGENCY — Personal + Professional + Agency-tier addons. | |
| 15 | + * | |
| 5 | 16 | * @package EasyInvoice |
| 6 | - * @since 2.0.0 | |
| 17 | + * @since 2.0.0 | |
| 7 | 18 | */ |
| 8 | 19 | |
| 9 | -// Prevent direct access | |
| 10 | 20 | if (!defined('ABSPATH')) { |
| 11 | 21 | exit; |
| 12 | 22 | } |
| 23 | + | |
| 24 | +/** | |
| 25 | + * Feature rows. Each entry: | |
| 26 | + * title — feature label | |
| 27 | + * desc — one-line description | |
| 28 | + * plans — array of plan slugs that include this feature | |
| 29 | + * (free, personal, professional, agency) | |
| 30 | + * highlight — true → renders with a subtle accent background | |
| 31 | + */ | |
| 32 | +$ei_fvp_features = [ | |
| 33 | + // ── Section: Core features (free with the Free plugin) ────────────── | |
| 34 | + ['title' => __('Unlimited Invoices & Quotes', 'easy-invoice'), 'desc' => __('Create as many invoices and quotes as you need — no row caps.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 35 | + ['title' => __('PDF Generation', 'easy-invoice'), 'desc' => __('Generate clean, professional PDF invoices and quotes out of the box.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 36 | + ['title' => __('Client Management', 'easy-invoice'), 'desc' => __('Store and manage every client with addresses, contact info, and history.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 37 | + ['title' => __('Tax & Discount Options', 'easy-invoice'), 'desc' => __('Add basic taxes, discounts, and fees to any invoice or quote.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 38 | + ['title' => __('Email Notifications', 'easy-invoice'), 'desc' => __('Automatically send invoices and quotes to clients via email.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 39 | + ['title' => __('PayPal Gateway', 'easy-invoice'), 'desc' => __('Accept online payments via the built-in PayPal gateway.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 40 | + ['title' => __('Email Support', 'easy-invoice'), 'desc' => __('Standard email support for product questions and bug reports.', 'easy-invoice'), 'plans' => ['free','personal','professional','agency']], | |
| 41 | + | |
| 42 | + // ── Section: Personal tier (free with Pro plugin, no license required) ── | |
| 43 | + ['title' => __('Multiple Payment Gateways', 'easy-invoice'), 'desc' => __('Stripe, Square, Mollie, Authorize.net, Paystack, Moneris — plus PayPal.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 44 | + ['title' => __('Recurring Invoices & Subscriptions', 'easy-invoice'), 'desc' => __('Auto-bill on autopilot: weekly, monthly, or any custom schedule.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 45 | + ['title' => __('Partial Payments & Deposits', 'easy-invoice'), 'desc' => __('Require deposits and let clients pay the balance in installments.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 46 | + ['title' => __('Client Portal', 'easy-invoice'), 'desc' => __('Branded self-service area where clients view invoices and download PDFs.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 47 | + ['title' => __('PDF Toolkit', 'easy-invoice'), 'desc' => __('Custom headers, footers, watermarks (PAID / DRAFT / OVERDUE), and styling.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 48 | + ['title' => __('Bulk Email & Export', 'easy-invoice'), 'desc' => __('Bulk-email invoices and export selected rows to CSV / Excel / PDF.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 49 | + ['title' => __('Item Library', 'easy-invoice'), 'desc' => __('Reusable catalog of services and products with one-click insert.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 50 | + ['title' => __('Custom Invoice & Quote Templates','easy-invoice'), 'desc' => __('Drag-and-drop builder for pixel-perfect branded layouts.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 51 | + ['title' => __('Additional Tax Lines', 'easy-invoice'), 'desc' => __('Multiple named tax lines per invoice — VAT + duty, GST + PST, federal + state.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 52 | + ['title' => __('Email Enhancements', 'easy-invoice'), 'desc' => __('Branded HTML emails with CC / BCC, attached PDFs, and Reply-To.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 53 | + ['title' => __('Privacy & GDPR Tools', 'easy-invoice'), 'desc' => __('Personal-data export and erasure for GDPR / CCPA compliance.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 54 | + ['title' => __('Reports & Analytics', 'easy-invoice'), 'desc' => __('Visual dashboard for revenue, outstanding balances, and client performance.', 'easy-invoice'), 'plans' => ['personal','professional','agency'], 'highlight' => true], | |
| 55 | + | |
| 56 | + // ── Section: Professional tier ───────────────────────────────────── | |
| 57 | + ['title' => __('Time Tracking & Project Billing', 'easy-invoice'), 'desc' => __('Built-in start/stop timer, hourly rates, one-click conversion to invoice lines.', 'easy-invoice'), 'plans' => ['professional','agency']], | |
| 58 | + ['title' => __('Smart Reminders & Late Fees', 'easy-invoice'), 'desc' => __('Multi-step automated payment chase with auto-applied late fees.', 'easy-invoice'), 'plans' => ['professional','agency']], | |
| 59 | + ['title' => __('Priority Support', 'easy-invoice'), 'desc' => __('Faster response times and direct line to the product team.', 'easy-invoice'), 'plans' => ['professional','agency']], | |
| 60 | + | |
| 61 | + // ── Section: Agency tier ─────────────────────────────────────────── | |
| 62 | + ['title' => __('White-Label & Brand Override', 'easy-invoice'), 'desc' => __('Rebrand Easy Invoice end-to-end: plugin name, menu, PDFs, emails.', 'easy-invoice'), 'plans' => ['agency'], 'highlight' => true], | |
| 63 | + ['title' => __('Team Members & Audit Log', 'easy-invoice'), 'desc' => __('Scoped roles for staff plus a searchable audit log of every action.', 'easy-invoice'), 'plans' => ['agency'], 'highlight' => true], | |
| 64 | + ['title' => __('Webhooks & Zapier Bridge', 'easy-invoice'), 'desc' => __('Stream invoice events to any URL — Zapier, Make, n8n, your CRM, Slack.', 'easy-invoice'), 'plans' => ['agency'], 'highlight' => true], | |
| 65 | +]; | |
| 66 | + | |
| 67 | +/** | |
| 68 | + * Plan column metadata. Keeps the table header / CTA rows / checkout | |
| 69 | + * links in one place so they stay aligned with the data above. | |
| 70 | + */ | |
| 71 | +$ei_fvp_plans = [ | |
| 72 | + 'free' => [ | |
| 73 | + 'label' => __('Free', 'easy-invoice'), | |
| 74 | + 'tagline' => __('For getting started', 'easy-invoice'), | |
| 75 | + 'cta_text' => __('Already installed', 'easy-invoice'), | |
| 76 | + 'cta_url' => '', | |
| 77 | + 'accent' => 'text-gray-900', | |
| 78 | + ], | |
| 79 | + 'personal' => [ | |
| 80 | + 'label' => __('Personal', 'easy-invoice'), | |
| 81 | + 'tagline' => __('Free with Pro plugin', 'easy-invoice'), | |
| 82 | + 'cta_text' => __('Get Personal', 'easy-invoice'), | |
| 83 | + 'cta_url' => 'https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=1', | |
| 84 | + 'accent' => 'text-teal-600', | |
| 85 | + ], | |
| 86 | + 'professional' => [ | |
| 87 | + 'label' => __('Professional', 'easy-invoice'), | |
| 88 | + 'tagline' => __('For growing businesses', 'easy-invoice'), | |
| 89 | + 'cta_text' => __('Get Professional', 'easy-invoice'), | |
| 90 | + 'cta_url' => 'https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=2', | |
| 91 | + 'accent' => 'text-indigo-600', | |
| 92 | + ], | |
| 93 | + 'agency' => [ | |
| 94 | + 'label' => __('Agency', 'easy-invoice'), | |
| 95 | + 'tagline' => __('For agencies & resellers', 'easy-invoice'), | |
| 96 | + 'cta_text' => __('Get Agency', 'easy-invoice'), | |
| 97 | + 'cta_url' => 'https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=3', | |
| 98 | + 'accent' => 'text-purple-600', | |
| 99 | + ], | |
| 100 | +]; | |
| 101 | + | |
| 102 | +/** Inline-renders a check (✓) or cross (✗) cell for a feature/plan pair. */ | |
| 103 | +$ei_fvp_render_cell = function (array $feature, string $plan_key): void { | |
| 104 | + $included = in_array($plan_key, $feature['plans'], true); | |
| 105 | + if ($included): ?> | |
| 106 | + <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 107 | + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 108 | + </svg> | |
| 109 | + <?php else: ?> | |
| 110 | + <svg class="w-6 h-6 text-gray-300 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 111 | + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 112 | + </svg> | |
| 113 | + <?php endif; | |
| 114 | +}; | |
| 13 | 115 | ?> |
| 14 | 116 | |
| 15 | 117 | <section id="free-vs-pro" class="py-20 bg-gradient-to-br from-indigo-50 via-white to-purple-50"> |
| 16 | 118 | <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> |
| 119 | + | |
| 17 | 120 | <div class="text-center mb-16"> |
| 18 | 121 | <h2 class="text-3xl md:text-4xl lg:text-5xl font-bold text-gray-900 mb-6"> |
| 19 | - Free vs Pro: <span class="text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 to-purple-600">Choose What's Right for You</span> | |
| 122 | + <?php esc_html_e('Free vs Pro: ', 'easy-invoice'); ?> | |
| 123 | + <span class="text-transparent bg-clip-text bg-gradient-to-r from-indigo-600 to-purple-600"> | |
| 124 | + <?php esc_html_e('Choose What Fits Your Business', 'easy-invoice'); ?> | |
| 125 | + </span> | |
| 20 | 126 | </h2> |
| 21 | 127 | <p class="text-xl text-gray-600 max-w-3xl mx-auto leading-relaxed"> |
| 22 | - Choose the perfect plan for your business needs. All plans include annual billing with monthly pricing shown. | |
| 128 | + <?php esc_html_e('Personal-tier addons unlock automatically when you install Easy Invoice Pro — no license key needed. A license adds the Professional and Agency tiers.', 'easy-invoice'); ?> | |
| 23 | 129 | </p> |
| 24 | 130 | </div> |
| 25 | 131 | |
| 26 | 132 | <div class="max-w-7xl mx-auto overflow-x-auto"> |
| 27 | 133 | <table class="w-full bg-white rounded-lg shadow-lg"> |
| 134 | + | |
| 28 | 135 | <thead> |
| 29 | 136 | <tr class="border-b"> |
| 30 | - <th class="text-left p-6 text-lg font-semibold text-gray-900">Feature</th> | |
| 31 | - <th class="text-center p-6 text-lg font-semibold text-gray-900"> | |
| 32 | - <div class="flex flex-col items-center"> | |
| 33 | - <span class="text-lg font-bold">Free</span> | |
| 34 | - </div> | |
| 137 | + <th class="text-left p-6 text-lg font-semibold text-gray-900"> | |
| 138 | + <?php esc_html_e('Feature', 'easy-invoice'); ?> | |
| 35 | 139 | </th> |
| 36 | - <th class="text-center p-6 text-lg font-semibold text-gray-900"> | |
| 37 | - <div class="flex flex-col items-center"> | |
| 38 | - <span class="text-lg font-bold text-indigo-600">Personal</span> | |
| 39 | - </div> | |
| 40 | - </th> | |
| 41 | - <th class="text-center p-6 text-lg font-semibold text-indigo-600"> | |
| 42 | - <div class="flex flex-col items-center"> | |
| 43 | - <span class="text-lg font-bold">Professional</span> | |
| 44 | - </div> | |
| 45 | - </th> | |
| 46 | - <th class="text-center p-6 text-lg font-semibold text-purple-600"> | |
| 47 | - <div class="flex flex-col items-center"> | |
| 48 | - <span class="text-lg font-bold">Agency</span> | |
| 49 | - </div> | |
| 50 | - </th> | |
| 140 | + <?php foreach ($ei_fvp_plans as $plan_key => $plan): ?> | |
| 141 | + <th class="text-center p-6 text-lg font-semibold <?php echo esc_attr($plan['accent']); ?>"> | |
| 142 | + <div class="flex flex-col items-center"> | |
| 143 | + <span class="text-lg font-bold"><?php echo esc_html($plan['label']); ?></span> | |
| 144 | + <span class="text-xs font-normal text-gray-500 mt-1"> | |
| 145 | + <?php echo esc_html($plan['tagline']); ?> | |
| 146 | + </span> | |
| 147 | + </div> | |
| 148 | + </th> | |
| 149 | + <?php endforeach; ?> | |
| 51 | 150 | </tr> |
| 52 | - <!-- Top Action Buttons Row --> | |
| 151 | + | |
| 53 | 152 | <tr class="border-b bg-gray-50"> |
| 54 | 153 | <td class="p-6"> |
| 55 | - <div class="font-bold text-lg text-gray-900">Quick Start</div> | |
| 56 | - <div class="text-sm text-gray-600 mt-1">Choose your plan now</div> | |
| 154 | + <div class="font-bold text-lg text-gray-900"><?php esc_html_e('Quick Start', 'easy-invoice'); ?></div> | |
| 155 | + <div class="text-sm text-gray-600 mt-1"><?php esc_html_e('Choose your plan now', 'easy-invoice'); ?></div> | |
| 57 | 156 | </td> |
| 58 | - <td class="p-6 text-center"> | |
| 59 | - <span class="text-gray-500 text-sm">Already installed</span> | |
| 60 | - </td> | |
| 61 | - <td class="p-6 text-center"> | |
| 62 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=1" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 63 | - Get Personal | |
| 64 | - </a> | |
| 65 | - </td> | |
| 66 | - <td class="p-6 text-center"> | |
| 67 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=2" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 68 | - Get Professional | |
| 69 | - </a> | |
| 70 | - </td> | |
| 71 | - <td class="p-6 text-center"> | |
| 72 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=3" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 73 | - Get Agency | |
| 74 | - </a> | |
| 75 | - </td> | |
| 157 | + <?php foreach ($ei_fvp_plans as $plan): ?> | |
| 158 | + <td class="p-6 text-center"> | |
| 159 | + <?php if (empty($plan['cta_url'])): ?> | |
| 160 | + <span class="text-gray-500 text-sm"><?php echo esc_html($plan['cta_text']); ?></span> | |
| 161 | + <?php else: ?> | |
| 162 | + <a href="<?php echo esc_url($plan['cta_url']); ?>" | |
| 163 | + target="_blank" rel="noopener" | |
| 164 | + class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 165 | + <?php echo esc_html($plan['cta_text']); ?> | |
| 166 | + </a> | |
| 167 | + <?php endif; ?> | |
| 168 | + </td> | |
| 169 | + <?php endforeach; ?> | |
| 76 | 170 | </tr> |
| 77 | 171 | </thead> |
| 172 | + | |
| 78 | 173 | <tbody class="divide-y divide-gray-200"> |
| 79 | - <tr> | |
| 80 | - <td class="p-6"> | |
| 81 | - <div class="font-medium text-gray-900">Unlimited Invoices & Quotes</div> | |
| 82 | - <div class="text-sm text-gray-500 mt-1">Create as many invoices and quotes as you need</div> | |
| 83 | - </td> | |
| 84 | - <td class="p-6 text-center"> | |
| 85 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 86 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 87 | - </svg> | |
| 88 | - </td> | |
| 89 | - <td class="p-6 text-center"> | |
| 90 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 91 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 92 | - </svg> | |
| 93 | - </td> | |
| 94 | - <td class="p-6 text-center"> | |
| 95 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 96 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 97 | - </svg> | |
| 98 | - </td> | |
| 99 | - <td class="p-6 text-center"> | |
| 100 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 101 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 102 | - </svg> | |
| 103 | - </td> | |
| 104 | - </tr> | |
| 105 | - <tr> | |
| 106 | - <td class="p-6"> | |
| 107 | - <div class="font-medium text-gray-900">PDF Generation</div> | |
| 108 | - <div class="text-sm text-gray-500 mt-1">Generate professional PDF invoices</div> | |
| 109 | - </td> | |
| 110 | - <td class="p-6 text-center"> | |
| 111 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 112 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 113 | - </svg> | |
| 114 | - </td> | |
| 115 | - <td class="p-6 text-center"> | |
| 116 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 117 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 118 | - </svg> | |
| 119 | - </td> | |
| 120 | - <td class="p-6 text-center"> | |
| 121 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 122 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 123 | - </svg> | |
| 124 | - </td> | |
| 125 | - <td class="p-6 text-center"> | |
| 126 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 127 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 128 | - </svg> | |
| 129 | - </td> | |
| 130 | - </tr> | |
| 131 | - <tr> | |
| 132 | - <td class="p-6"> | |
| 133 | - <div class="font-medium text-gray-900">PayPal Payment Gateway</div> | |
| 134 | - <div class="text-sm text-gray-500 mt-1">Accept online payments via PayPal</div> | |
| 135 | - </td> | |
| 136 | - <td class="p-6 text-center"> | |
| 137 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 138 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 139 | - </svg> | |
| 140 | - </td> | |
| 141 | - <td class="p-6 text-center"> | |
| 142 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 143 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 144 | - </svg> | |
| 145 | - </td> | |
| 146 | - <td class="p-6 text-center"> | |
| 147 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 148 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 149 | - </svg> | |
| 150 | - </td> | |
| 151 | - <td class="p-6 text-center"> | |
| 152 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 153 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 154 | - </svg> | |
| 155 | - </td> | |
| 156 | - </tr> | |
| 157 | - <tr> | |
| 158 | - <td class="p-6"> | |
| 159 | - <div class="font-medium text-gray-900">Tax & Discount Options</div> | |
| 160 | - <div class="text-sm text-gray-500 mt-1">Add taxes, discounts, and fees to invoices</div> | |
| 161 | - </td> | |
| 162 | - <td class="p-6 text-center"> | |
| 163 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 164 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 165 | - </svg> | |
| 166 | - </td> | |
| 167 | - <td class="p-6 text-center"> | |
| 168 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 169 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 170 | - </svg> | |
| 171 | - </td> | |
| 172 | - <td class="p-6 text-center"> | |
| 173 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 174 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 175 | - </svg> | |
| 176 | - </td> | |
| 177 | - <td class="p-6 text-center"> | |
| 178 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 179 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 180 | - </svg> | |
| 181 | - </td> | |
| 182 | - </tr> | |
| 183 | - <tr> | |
| 184 | - <td class="p-6"> | |
| 185 | - <div class="font-medium text-gray-900">Email Notifications</div> | |
| 186 | - <div class="text-sm text-gray-500 mt-1">Automatically send invoices to clients</div> | |
| 187 | - </td> | |
| 188 | - <td class="p-6 text-center"> | |
| 189 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 190 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 191 | - </svg> | |
| 192 | - </td> | |
| 193 | - <td class="p-6 text-center"> | |
| 194 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 195 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 196 | - </svg> | |
| 197 | - </td> | |
| 198 | - <td class="p-6 text-center"> | |
| 199 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 200 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 201 | - </svg> | |
| 202 | - </td> | |
| 203 | - <td class="p-6 text-center"> | |
| 204 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 205 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 206 | - </svg> | |
| 207 | - </td> | |
| 208 | - </tr> | |
| 209 | - <tr> | |
| 210 | - <td class="p-6"> | |
| 211 | - <div class="font-medium text-gray-900">Client Management</div> | |
| 212 | - <div class="text-sm text-gray-500 mt-1">Store and manage client information</div> | |
| 213 | - </td> | |
| 214 | - <td class="p-6 text-center"> | |
| 215 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 216 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 217 | - </svg> | |
| 218 | - </td> | |
| 219 | - <td class="p-6 text-center"> | |
| 220 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 221 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 222 | - </svg> | |
| 223 | - </td> | |
| 224 | - <td class="p-6 text-center"> | |
| 225 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 226 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 227 | - </svg> | |
| 228 | - </td> | |
| 229 | - <td class="p-6 text-center"> | |
| 230 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 231 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 232 | - </svg> | |
| 233 | - </td> | |
| 234 | - </tr> | |
| 235 | - <tr> | |
| 236 | - <td class="p-6"> | |
| 237 | - <div class="font-medium text-gray-900">Professional Templates</div> | |
| 238 | - <div class="text-sm text-gray-500 mt-1">Beautiful, customizable invoice designs</div> | |
| 239 | - </td> | |
| 240 | - <td class="p-6 text-center"> | |
| 241 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 242 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 243 | - </svg> | |
| 244 | - </td> | |
| 245 | - <td class="p-6 text-center"> | |
| 246 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 247 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 248 | - </svg> | |
| 249 | - </td> | |
| 250 | - <td class="p-6 text-center"> | |
| 251 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 252 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 253 | - </svg> | |
| 254 | - </td> | |
| 255 | - <td class="p-6 text-center"> | |
| 256 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 257 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 258 | - </svg> | |
| 259 | - </td> | |
| 260 | - </tr> | |
| 261 | - <tr class="bg-primary-50"> | |
| 262 | - <td class="p-6"> | |
| 263 | - <div class="font-medium text-gray-900">Recurring Invoices</div> | |
| 264 | - <div class="text-sm text-gray-500 mt-1">Set up automatic recurring billing</div> | |
| 265 | - </td> | |
| 266 | - <td class="p-6 text-center"> | |
| 267 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 268 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 269 | - </svg> | |
| 270 | - </td> | |
| 271 | - <td class="p-6 text-center"> | |
| 272 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 273 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 274 | - </svg> | |
| 275 | - </td> | |
| 276 | - <td class="p-6 text-center"> | |
| 277 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 278 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 279 | - </svg> | |
| 280 | - </td> | |
| 281 | - <td class="p-6 text-center"> | |
| 282 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 283 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 284 | - </svg> | |
| 285 | - </td> | |
| 286 | - </tr> | |
| 287 | - <tr class="bg-primary-50"> | |
| 288 | - <td class="p-6"> | |
| 289 | - <div class="font-medium text-gray-900">Invoice & Quote Builder</div> | |
| 290 | - <div class="text-sm text-gray-500 mt-1">Advanced drag-and-drop builder for invoices and quotes</div> | |
| 291 | - </td> | |
| 292 | - <td class="p-6 text-center"> | |
| 293 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 294 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 295 | - </svg> | |
| 296 | - </td> | |
| 297 | - <td class="p-6 text-center"> | |
| 298 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 299 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 300 | - </svg> | |
| 301 | - </td> | |
| 302 | - <td class="p-6 text-center"> | |
| 303 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 304 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 305 | - </svg> | |
| 306 | - </td> | |
| 307 | - <td class="p-6 text-center"> | |
| 308 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 309 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 310 | - </svg> | |
| 311 | - </td> | |
| 312 | - </tr> | |
| 313 | - <tr class="bg-primary-50"> | |
| 314 | - <td class="p-6"> | |
| 315 | - <div class="font-medium text-gray-900">Invoice and Quote Template Builder</div> | |
| 316 | - <div class="text-sm text-gray-500 mt-1">Create custom invoice and quote templates with drag-and-drop builder</div> | |
| 317 | - </td> | |
| 318 | - <td class="p-6 text-center"> | |
| 319 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 320 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 321 | - </svg> | |
| 322 | - </td> | |
| 323 | - <td class="p-6 text-center"> | |
| 324 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 325 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 326 | - </svg> | |
| 327 | - </td> | |
| 328 | - <td class="p-6 text-center"> | |
| 329 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 330 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 331 | - </svg> | |
| 332 | - </td> | |
| 333 | - <td class="p-6 text-center"> | |
| 334 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 335 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 336 | - </svg> | |
| 337 | - </td> | |
| 338 | - </tr> | |
| 339 | - <tr class="bg-primary-50"> | |
| 340 | - <td class="p-6"> | |
| 341 | - <div class="font-medium text-gray-900">Multiple Payment Gateways</div> | |
| 342 | - <div class="text-sm text-gray-500 mt-1">Stripe, PayPal, and more payment options</div> | |
| 343 | - </td> | |
| 344 | - <td class="p-6 text-center"> | |
| 345 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 346 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 347 | - </svg> | |
| 348 | - </td> | |
| 349 | - <td class="p-6 text-center"> | |
| 350 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 351 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 352 | - </svg> | |
| 353 | - </td> | |
| 354 | - <td class="p-6 text-center"> | |
| 355 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 356 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 357 | - </svg> | |
| 358 | - </td> | |
| 359 | - <td class="p-6 text-center"> | |
| 360 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 361 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 362 | - </svg> | |
| 363 | - </td> | |
| 364 | - </tr> | |
| 365 | - <tr> | |
| 366 | - <td class="p-6"> | |
| 367 | - <div class="font-medium text-gray-900">PDF Customization & Watermarks</div> | |
| 368 | - <div class="text-sm text-gray-500 mt-1">Customize PDFs with your branding</div> | |
| 369 | - </td> | |
| 370 | - <td class="p-6 text-center"> | |
| 371 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 372 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 373 | - </svg> | |
| 374 | - </td> | |
| 375 | - <td class="p-6 text-center"> | |
| 376 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 377 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 378 | - </svg> | |
| 379 | - </td> | |
| 380 | - <td class="p-6 text-center"> | |
| 381 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 382 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 383 | - </svg> | |
| 384 | - </td> | |
| 385 | - <td class="p-6 text-center"> | |
| 386 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 387 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 388 | - </svg> | |
| 389 | - </td> | |
| 390 | - </tr> | |
| 391 | - <tr> | |
| 392 | - <td class="p-6"> | |
| 393 | - <div class="font-medium text-gray-900">Custom Invoice Permalinks</div> | |
| 394 | - <div class="text-sm text-gray-500 mt-1">Create custom URLs for invoices</div> | |
| 395 | - </td> | |
| 396 | - <td class="p-6 text-center"> | |
| 397 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 398 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 399 | - </svg> | |
| 400 | - </td> | |
| 401 | - <td class="p-6 text-center"> | |
| 402 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 403 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 404 | - </svg> | |
| 405 | - </td> | |
| 406 | - <td class="p-6 text-center"> | |
| 407 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 408 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 409 | - </svg> | |
| 410 | - </td> | |
| 411 | - <td class="p-6 text-center"> | |
| 412 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 413 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 414 | - </svg> | |
| 415 | - </td> | |
| 416 | - </tr> | |
| 417 | - <tr> | |
| 418 | - <td class="p-6"> | |
| 419 | - <div class="font-medium text-gray-900">CSV Export & Reports</div> | |
| 420 | - <div class="text-sm text-gray-500 mt-1">Export data and generate reports</div> | |
| 421 | - </td> | |
| 422 | - <td class="p-6 text-center"> | |
| 423 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 424 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 425 | - </svg> | |
| 426 | - </td> | |
| 427 | - <td class="p-6 text-center"> | |
| 428 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 429 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 430 | - </svg> | |
| 431 | - </td> | |
| 432 | - <td class="p-6 text-center"> | |
| 433 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 434 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 435 | - </svg> | |
| 436 | - </td> | |
| 437 | - <td class="p-6 text-center"> | |
| 438 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 439 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 440 | - </svg> | |
| 441 | - </td> | |
| 442 | - </tr> | |
| 443 | - <tr> | |
| 444 | - <td class="p-6"> | |
| 445 | - <div class="font-medium text-gray-900">Client Portal & Shortcodes</div> | |
| 446 | - <div class="text-sm text-gray-500 mt-1">Client login area and shortcode support</div> | |
| 447 | - </td> | |
| 448 | - <td class="p-6 text-center"> | |
| 449 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 450 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 451 | - </svg> | |
| 452 | - </td> | |
| 453 | - <td class="p-6 text-center"> | |
| 454 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 455 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 456 | - </svg> | |
| 457 | - </td> | |
| 458 | - <td class="p-6 text-center"> | |
| 459 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 460 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 461 | - </svg> | |
| 462 | - </td> | |
| 463 | - <td class="p-6 text-center"> | |
| 464 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 465 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 466 | - </svg> | |
| 467 | - </td> | |
| 468 | - </tr> | |
| 469 | - <tr> | |
| 470 | - <td class="p-6"> | |
| 471 | - <div class="font-medium text-gray-900">Payment Reminder Emails</div> | |
| 472 | - <div class="text-sm text-gray-500 mt-1">Automated payment reminders</div> | |
| 473 | - </td> | |
| 474 | - <td class="p-6 text-center"> | |
| 475 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 476 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 477 | - </svg> | |
| 478 | - </td> | |
| 479 | - <td class="p-6 text-center"> | |
| 480 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 481 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 482 | - </svg> | |
| 483 | - </td> | |
| 484 | - <td class="p-6 text-center"> | |
| 485 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 486 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 487 | - </svg> | |
| 488 | - </td> | |
| 489 | - <td class="p-6 text-center"> | |
| 490 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 491 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 492 | - </svg> | |
| 493 | - </td> | |
| 494 | - </tr> | |
| 495 | - <tr> | |
| 496 | - <td class="p-6"> | |
| 497 | - <div class="font-medium text-gray-900">Partial Payments</div> | |
| 498 | - <div class="text-sm text-gray-500 mt-1">Accept partial payments from clients</div> | |
| 499 | - </td> | |
| 500 | - <td class="p-6 text-center"> | |
| 501 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 502 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 503 | - </svg> | |
| 504 | - </td> | |
| 505 | - <td class="p-6 text-center"> | |
| 506 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 507 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 508 | - </svg> | |
| 509 | - </td> | |
| 510 | - <td class="p-6 text-center"> | |
| 511 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 512 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 513 | - </svg> | |
| 514 | - </td> | |
| 515 | - <td class="p-6 text-center"> | |
| 516 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 517 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 518 | - </svg> | |
| 519 | - </td> | |
| 520 | - </tr> | |
| 521 | - <tr> | |
| 522 | - <td class="p-6"> | |
| 523 | - <div class="font-medium text-gray-900">Advanced Tax Options</div> | |
| 524 | - <div class="text-sm text-gray-500 mt-1">Complex tax calculations and rules</div> | |
| 525 | - </td> | |
| 526 | - <td class="p-6 text-center"> | |
| 527 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 528 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 529 | - </svg> | |
| 530 | - </td> | |
| 531 | - <td class="p-6 text-center"> | |
| 532 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 533 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 534 | - </svg> | |
| 535 | - </td> | |
| 536 | - <td class="p-6 text-center"> | |
| 537 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 538 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 539 | - </svg> | |
| 540 | - </td> | |
| 541 | - <td class="p-6 text-center"> | |
| 542 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 543 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 544 | - </svg> | |
| 545 | - </td> | |
| 546 | - </tr> | |
| 547 | - <tr> | |
| 548 | - <td class="p-6"> | |
| 549 | - <div class="font-medium text-gray-900">Priority Support</div> | |
| 550 | - <div class="text-sm text-gray-500 mt-1">Faster response times for support</div> | |
| 551 | - </td> | |
| 552 | - <td class="p-6 text-center"> | |
| 553 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 554 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 555 | - </svg> | |
| 556 | - </td> | |
| 557 | - <td class="p-6 text-center"> | |
| 558 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 559 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 560 | - </svg> | |
| 561 | - </td> | |
| 562 | - <td class="p-6 text-center"> | |
| 563 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 564 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 565 | - </svg> | |
| 566 | - </td> | |
| 567 | - <td class="p-6 text-center"> | |
| 568 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 569 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 570 | - </svg> | |
| 571 | - </td> | |
| 572 | - </tr> | |
| 573 | - <tr class="bg-primary-50"> | |
| 574 | - <td class="p-6"> | |
| 575 | - <div class="font-medium text-gray-900">Client Portal</div> | |
| 576 | - <div class="text-sm text-gray-500 mt-1">Client login area and shortcode support</div> | |
| 577 | - </td> | |
| 578 | - <td class="p-6 text-center"> | |
| 579 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 580 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 581 | - </svg> | |
| 582 | - </td> | |
| 583 | - <td class="p-6 text-center"> | |
| 584 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 585 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 586 | - </svg> | |
| 587 | - </td> | |
| 588 | - <td class="p-6 text-center"> | |
| 589 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 590 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 591 | - </svg> | |
| 592 | - </td> | |
| 593 | - <td class="p-6 text-center"> | |
| 594 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 595 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 596 | - </svg> | |
| 597 | - </td> | |
| 598 | - </tr> | |
| 599 | - <tr> | |
| 600 | - <td class="p-6"> | |
| 601 | - <div class="font-medium text-gray-900">Email Support</div> | |
| 602 | - <div class="text-sm text-gray-500 mt-1">Get help when you need it</div> | |
| 603 | - </td> | |
| 604 | - <td class="p-6 text-center"> | |
| 605 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 606 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 607 | - </svg> | |
| 608 | - </td> | |
| 609 | - <td class="p-6 text-center"> | |
| 610 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 611 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 612 | - </svg> | |
| 613 | - </td> | |
| 614 | - <td class="p-6 text-center"> | |
| 615 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 616 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 617 | - </svg> | |
| 618 | - </td> | |
| 619 | - <td class="p-6 text-center"> | |
| 620 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 621 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 622 | - </svg> | |
| 623 | - </td> | |
| 624 | - </tr> | |
| 625 | - <tr class="bg-primary-50"> | |
| 626 | - <td class="p-6"> | |
| 627 | - <div class="font-medium text-gray-900">White Label</div> | |
| 628 | - <div class="text-sm text-gray-500 mt-1">Remove branding and customize appearance</div> | |
| 629 | - </td> | |
| 630 | - <td class="p-6 text-center"> | |
| 631 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 632 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 633 | - </svg> | |
| 634 | - </td> | |
| 635 | - <td class="p-6 text-center"> | |
| 636 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 637 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 638 | - </svg> | |
| 639 | - </td> | |
| 640 | - <td class="p-6 text-center"> | |
| 641 | - <svg class="w-6 h-6 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 642 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> | |
| 643 | - </svg> | |
| 644 | - </td> | |
| 645 | - <td class="p-6 text-center"> | |
| 646 | - <svg class="w-6 h-6 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"> | |
| 647 | - <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
| 648 | - </svg> | |
| 649 | - </td> | |
| 650 | - </tr> | |
| 651 | - <!-- Action Buttons Row --> | |
| 174 | + <?php foreach ($ei_fvp_features as $feature): | |
| 175 | + $row_class = !empty($feature['highlight']) ? 'bg-indigo-50/40' : ''; | |
| 176 | + ?> | |
| 177 | + <tr class="<?php echo esc_attr($row_class); ?>"> | |
| 178 | + <td class="p-6"> | |
| 179 | + <div class="font-medium text-gray-900"><?php echo esc_html($feature['title']); ?></div> | |
| 180 | + <div class="text-sm text-gray-500 mt-1"><?php echo esc_html($feature['desc']); ?></div> | |
| 181 | + </td> | |
| 182 | + <?php foreach (array_keys($ei_fvp_plans) as $plan_key): ?> | |
| 183 | + <td class="p-6 text-center"> | |
| 184 | + <?php $ei_fvp_render_cell($feature, $plan_key); ?> | |
| 185 | + </td> | |
| 186 | + <?php endforeach; ?> | |
| 187 | + </tr> | |
| 188 | + <?php endforeach; ?> | |
| 189 | + | |
| 652 | 190 | <tr class="border-t-2 border-gray-200 bg-gray-50"> |
| 653 | 191 | <td class="p-6"> |
| 654 | - <div class="font-bold text-lg text-gray-900">Ready to Get Started?</div> | |
| 655 | - <div class="text-sm text-gray-600 mt-1">Choose your plan and start invoicing today</div> | |
| 192 | + <div class="font-bold text-lg text-gray-900"><?php esc_html_e('Ready to Get Started?', 'easy-invoice'); ?></div> | |
| 193 | + <div class="text-sm text-gray-600 mt-1"><?php esc_html_e('Pick a plan and start invoicing today.', 'easy-invoice'); ?></div> | |
| 656 | 194 | </td> |
| 657 | - <td class="p-6 text-center"> | |
| 658 | - <span class="text-gray-500 text-sm">Already installed</span> | |
| 659 | - </td> | |
| 660 | - <td class="p-6 text-center"> | |
| 661 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=1" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 662 | - Get Personal | |
| 663 | - </a> | |
| 664 | - </td> | |
| 665 | - <td class="p-6 text-center"> | |
| 666 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=2" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 667 | - Get Professional | |
| 668 | - </a> | |
| 669 | - </td> | |
| 670 | - <td class="p-6 text-center"> | |
| 671 | - <a href="https://store.mantrabrain.com/checkout/?edd_action=add_to_cart&download_id=37777&edd_options[price_id]=3" class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 672 | - Get Agency | |
| 673 | - </a> | |
| 674 | - </td> | |
| 195 | + <?php foreach ($ei_fvp_plans as $plan): ?> | |
| 196 | + <td class="p-6 text-center"> | |
| 197 | + <?php if (empty($plan['cta_url'])): ?> | |
| 198 | + <span class="text-gray-500 text-sm"><?php echo esc_html($plan['cta_text']); ?></span> | |
| 199 | + <?php else: ?> | |
| 200 | + <a href="<?php echo esc_url($plan['cta_url']); ?>" | |
| 201 | + target="_blank" rel="noopener" | |
| 202 | + class="inline-block bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 text-white hover:text-white font-bold py-3 px-6 rounded-xl transition-all duration-300 transform hover:scale-105 shadow-lg"> | |
| 203 | + <?php echo esc_html($plan['cta_text']); ?> | |
| 204 | + </a> | |
| 205 | + <?php endif; ?> | |
| 206 | + </td> | |
| 207 | + <?php endforeach; ?> | |
| 675 | 208 | </tr> |
| 676 | 209 | </tbody> |
| 677 | 210 | </table> |
| 678 | 211 | </div> |
| 212 | + | |
| 679 | 213 | </div> |
| 680 | 214 | </section> |