PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.2
MxChat – AI Chatbot & Content Generation for WordPress v3.2.2
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
← All changes | includes/admin-settings-page.php +3 -64 3.2.63.2.2 View file →
@@ -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