| @@ -223,12 +223,12 @@ | ||
| 223 | 223 | <main class="mxch-content"> |
| 224 | 224 | <?php if (!$is_activated): ?> |
| 225 | 225 | <div class="mxch-pro-banner"> |
| 226 | 226 | <div class="mxch-pro-banner-content"> |
| 227 | - <h3 class="mxch-pro-banner-title"><?php esc_html_e('Stop paying $50–200/month for AI chatbot tools.', 'mxchat'); ?></h3> | |
| 228 | - <p class="mxch-pro-banner-text"><?php esc_html_e('One payment unlocks every MxChat Pro add-on for life — MCP server access for Claude / ChatGPT / Claude Code, WooCommerce sales, Google Search Console insights, AI-generated chatbot themes, lead-capture forms, unlimited bots, image analysis, and more. No renewals. No surprise bills.', 'mxchat'); ?></p> | |
| 227 | + <h3 class="mxch-pro-banner-title"><?php esc_html_e('MxChat Pro — Lifetime Access', 'mxchat'); ?></h3> | |
| 228 | + <p class="mxch-pro-banner-text"><?php esc_html_e('One-time purchase. Unlock 14+ premium add-ons: Chat with GSC, WooCommerce, Chatbot Themes, Forms Builder, and more.', 'mxchat'); ?></p> | |
| 229 | 229 | </div> |
| 230 | - <a href="https://mxchat.ai/" target="_blank" class="mxch-pro-banner-btn"><span><?php esc_html_e('Get Lifetime Access →', 'mxchat'); ?></span></a> | |
| 230 | + <a href="https://mxchat.ai/" target="_blank" class="mxch-pro-banner-btn"><span><?php esc_html_e('Learn More', 'mxchat'); ?></span></a> | |
| 231 | 231 | </div> |
| 232 | 232 | <?php endif; ?> |
| 233 | 233 | |
| 234 | 234 | <?php |
| @@ -313,16 +313,8 @@ | ||
| 313 | 313 | mxchat_render_field_wrapper('citation_links', __('Citation Links', 'mxchat'), function() use ($admin_instance) { |
| 314 | 314 | $admin_instance->mxchat_citation_links_toggle_callback(); |
| 315 | 315 | }, __('Allow the AI to include citation links from your knowledge database in responses. If disabled, ensure your AI Behavior settings do not mention links or the AI may fabricate URLs.', 'mxchat')); |
| 316 | 316 | |
| 317 | - // Satisfaction Rating Prompt | |
| 318 | - // The toggle callback inline-renders the 5 customization | |
| 319 | - // fields inside a single sub-options wrapper (plan-29caac). | |
| 320 | - // No separate customization group needed — the wrapper handles | |
| 321 | - // its own server-side display state based on the toggle value. | |
| 322 | - mxchat_render_field_wrapper('satisfaction_rating', __('Satisfaction Rating Prompt', 'mxchat'), function() use ($admin_instance) { | |
| 323 | - $admin_instance->mxchat_satisfaction_rating_toggle_callback(); | |
| 324 | - }, __('Show a 👍 / 👎 prompt after a conversation has had a couple of bot replies and the visitor has been idle for a moment. Disable to hide the prompt site-wide.', 'mxchat')); | |
| 325 | 317 | ?> |
| 326 | 318 | </div> |
| 327 | 319 | </div> |
| 328 | 320 | </div> |
| @@ -606,61 +598,8 @@ | ||
| 606 | 598 | <li><strong><?php esc_html_e('Delay:', 'mxchat'); ?></strong> <?php esc_html_e('Script loads after a set delay. Helps improve LCP scores.', 'mxchat'); ?></li> |
| 607 | 599 | <li><strong><?php esc_html_e('On User Interaction:', 'mxchat'); ?></strong> <?php esc_html_e('Script loads when user scrolls, moves mouse, or touches screen. Best for Core Web Vitals but chat appears with slight delay.', 'mxchat'); ?></li> |
| 608 | 600 | </ul> |
| 609 | 601 | </div> |
| 610 | - </div> | |
| 611 | - </div> | |
| 612 | - </div> | |
| 613 | - | |
| 614 | - <!-- Page Cache Compatibility Card --> | |
| 615 | - <div class="mxch-card"> | |
| 616 | - <div class="mxch-card-header"> | |
| 617 | - <h3 class="mxch-card-title"> | |
| 618 | - <svg class="mxch-card-title-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg> | |
| 619 | - <?php esc_html_e('Page Cache Compatibility', 'mxchat'); ?> | |
| 620 | - </h3> | |
| 621 | - </div> | |
| 622 | - <div class="mxch-card-body"> | |
| 623 | - <p class="mxch-field-description" style="margin-top: 0;"><?php esc_html_e('MxChat\'s chat send (and stream send, plus PDF / Word upload) all POST to /wp-admin/admin-ajax.php. Page-cache plugins occasionally cache those responses, which breaks the per-session nonce flow on the first message. MxChat auto-tells the five most common cache plugins to never cache chat AJAX via their own filter APIs — no setup needed for those. For other cache plugins (or Cloudflare APO), copy the manual exclusion string into your cache plugin\'s exclusion list.', 'mxchat'); ?></p> | |
| 624 | - | |
| 625 | - <?php | |
| 626 | - $mxch_cache_rows = array( | |
| 627 | - array('name' => 'WP Rocket', 'state' => 'auto', 'exclusion' => '/wp-admin/admin-ajax\\.php\\?action=mxchat_.*'), | |
| 628 | - array('name' => 'LiteSpeed Cache', 'state' => 'auto', 'exclusion' => '/wp-admin/admin-ajax.php?action=mxchat_*'), | |
| 629 | - array('name' => 'W3 Total Cache', 'state' => 'auto', 'exclusion' => '/wp-admin/admin-ajax.php?action=mxchat_*'), | |
| 630 | - array('name' => 'FlyingPress', 'state' => 'auto', 'exclusion' => '/wp-admin/admin-ajax.php?action=mxchat_*'), | |
| 631 | - array('name' => 'WP Super Cache', 'state' => 'auto', 'exclusion' => 'wp-admin/admin-ajax.php'), | |
| 632 | - array('name' => 'Cloudflare APO', 'state' => 'manual', 'exclusion' => 'Page Rule / Cache Rule: URI Path contains "/wp-admin/admin-ajax.php" → Bypass Cache'), | |
| 633 | - ); | |
| 634 | - ?> | |
| 635 | - | |
| 636 | - <div class="mxch-cache-compat-grid" style="display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 16px;"> | |
| 637 | - <?php foreach ($mxch_cache_rows as $row) : | |
| 638 | - $is_auto = ($row['state'] === 'auto'); | |
| 639 | - $pill_class = $is_auto ? 'mxch-status-pill-active' : 'mxch-status-pill-warning'; | |
| 640 | - $pill_label = $is_auto ? __('Auto-handled', 'mxchat') : __('Manual', 'mxchat'); | |
| 641 | - ?> | |
| 642 | - <div class="mxch-cache-compat-row" style="display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #f8fafc; border: 1px solid var(--mxch-card-border); border-radius: var(--mxch-radius-md);"> | |
| 643 | - <div style="display: flex; align-items: center; gap: 10px; min-width: 0; flex: 0 0 auto;"> | |
| 644 | - <span style="font-weight: 500;"><?php echo esc_html($row['name']); ?></span> | |
| 645 | - <span class="mxch-status-pill <?php echo esc_attr($pill_class); ?>"> | |
| 646 | - <span class="mxch-status-dot"></span> | |
| 647 | - <?php echo esc_html($pill_label); ?> | |
| 648 | - </span> | |
| 649 | - </div> | |
| 650 | - <div style="display: flex; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0;"> | |
| 651 | - <code style="background: #fff; border: 1px solid var(--mxch-card-border); padding: 4px 8px; border-radius: var(--mxch-radius-sm); font-size: 12px; color: var(--mxch-text-secondary); flex: 1 1 auto; overflow-x: auto; white-space: nowrap; min-width: 0;"><?php echo esc_html($row['exclusion']); ?></code> | |
| 652 | - <button type="button" class="mxch-btn mxch-btn-secondary mxch-btn-sm" data-mxch-copy="<?php echo esc_attr($row['exclusion']); ?>" style="flex: 0 0 auto;"> | |
| 653 | - <?php esc_html_e('Copy', 'mxchat'); ?> | |
| 654 | - </button> | |
| 655 | - </div> | |
| 656 | - </div> | |
| 657 | - <?php endforeach; ?> | |
| 658 | - </div> | |
| 659 | - | |
| 660 | - <div class="mxch-notice mxch-notice-info" style="margin-top: 16px;"> | |
| 661 | - <svg class="mxch-notice-icon" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg> | |
| 662 | - <span><?php esc_html_e('Auto-handled plugins receive a filter from MxChat that excludes chat AJAX from their cache. Even so, having the exclusion in your own exclusion list is harmless and acts as a belt-and-suspenders guarantee.', 'mxchat'); ?></span> | |
| 663 | 602 | </div> |
| 664 | 603 | </div> |
| 665 | 604 | </div> |
| 666 | 605 | |