PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.0.3
MxChat – AI Chatbot & Content Generation for WordPress v3.0.3
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
mxchat-basic / includes / class-mxchat-addons.php

class-mxchat-addons.php in MxChat – AI Chatbot & Content Generation for WordPress 3.0.3, at includes/class-mxchat-addons.php

361 lines 17.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The admin-specific functionality for the Add Ons page.
4 *
5 * @package MxChat
6 * @subpackage MxChat/admin
7 */
8 class MxChat_Addons {
9 /**
10 * Store add-on configuration data
11 *
12 * @var array
13 */
14 private $addons_config;
15
16 /**
17 * Initialize the class and set its properties.
18 */
19 public function __construct() {
20 $this->addons_config = array(
21
22 'mxchat-theme' => array(
23 'title' => __('MxChat Theme Customizer', 'mxchat'),
24 'description' => __('Make your chatbot uniquely yours. Generate beautiful themes instantly using simple descriptions or customize manually with precise color controls—zero coding required. Perfect for matching your brand identity.', 'mxchat'),
25 'key_benefits' => array(
26 __('AI-powered theme generator', 'mxchat'),
27 __('Live preview customizer', 'mxchat'),
28 __('One-click theme application', 'mxchat')
29 ),
30 'license' => 'MxChat PRO',
31 'accent' => '#fa73e6',
32 'url' => 'https://mxchat.ai/ai-theme-customizer/',
33 'plugin_file' => 'mxchat-theme/mxchat-theme.php',
34 'config_page' => 'mxchat-theme-settings'
35 ),
36
37 'mxchat-admin-assistant' => array(
38 'title' => __('MxChat Admin Assistant', 'mxchat'),
39 'description' => __('Your AI powerhouse inside WordPress. Chat with multiple AI models, generate images, research the web, and boost productivity—all without leaving your dashboard.', 'mxchat'),
40 'key_benefits' => array(
41 __('ChatGPT-like admin interface', 'mxchat'),
42 __('Generate images & research web', 'mxchat'),
43 __('Searchable chat history', 'mxchat')
44 ),
45 'license' => 'MxChat PRO',
46 'accent' => '#fa73e6',
47 'url' => 'https://mxchat.ai/ai-admin-assistant/',
48 'plugin_file' => 'mxchat-admin-chat/mxchat-admin-chat.php',
49 'config_page' => 'mxchat-admin-chat'
50 ),
51
52 'mxchat-veo' => array(
53 'title' => __('MxChat Video Generation', 'mxchat'),
54 'description' => __('Generate stunning AI videos using Google Veo 2 and Veo 3 models directly from your WordPress dashboard. Create high-quality videos from text prompts with audio, multiple aspect ratios, and optimized generation speeds.', 'mxchat'),
55 'key_benefits' => array(
56 __('Multiple Veo models (Veo 2, 3, 3 Fast)', 'mxchat'),
57 __('8-second videos with native audio', 'mxchat'),
58 __('Media library integration', 'mxchat')
59 ),
60 'license' => 'MxChat PRO',
61 'accent' => '#ff6b35',
62 'url' => 'https://mxchat.ai/mxchat-veo-video-generation/',
63 'plugin_file' => 'mxchat-veo/mxchat-veo.php',
64 'config_page' => 'mxchat-veo'
65 ),
66
67 'mxchat-image-analysis' => array(
68 'title' => __('MxChat Image Analysis', 'mxchat'),
69 'description' => __('Enhance your chatbot with AI-powered image analysis. Users can upload images for intelligent descriptions, OCR text extraction, and get answers about visual content using OpenAI Vision and Grok APIs.', 'mxchat'),
70 'key_benefits' => array(
71 __('Multiple AI vision models', 'mxchat'),
72 __('Drag & drop image uploads', 'mxchat'),
73 __('Custom analysis prompts', 'mxchat')
74 ),
75 'license' => 'MxChat PRO',
76 'accent' => '#fa73e6',
77 'url' => 'https://mxchat.ai/image-analysis/',
78 'plugin_file' => 'mxchat-vision/mxchat-vision.php',
79 'config_page' => 'mxchat-vision'
80 ),
81
82 'mxchat-forms' => array(
83 'title' => __('MxChat Forms', 'mxchat'),
84 'description' => __('Convert conversations into data collection. Create smart forms that trigger during chats, collect user information, and turn casual visitors into qualified leads.', 'mxchat'),
85 'key_benefits' => array(
86 __('No-code form builder', 'mxchat'),
87 __('Intent-triggered activation', 'mxchat'),
88 __('Export lead data easily', 'mxchat')
89 ),
90 'license' => 'MxChat PRO',
91 'accent' => '#fa73e6',
92 'url' => 'https://mxchat.ai/forms-action/',
93 'plugin_file' => 'mxchat-forms/mxchat-forms.php',
94 'config_page' => 'mxchat-forms'
95 ),
96
97 'mxchat-multi-bot' => array(
98 'title' => __('MxChat Multi-Bot Manager', 'mxchat'),
99 'description' => __('Create unlimited specialized chatbots for every purpose. Deploy dedicated bots with separate knowledge bases, custom personalities, and page-specific assignments—perfect for support, sales, and department-specific assistance.', 'mxchat'),
100 'key_benefits' => array(
101 __('Unlimited specialized chatbots', 'mxchat'),
102 __('Separate Pinecone knowledge bases', 'mxchat'),
103 __('Page-specific bot assignments', 'mxchat')
104 ),
105 'license' => 'MxChat PRO',
106 'accent' => '#8b5cf6',
107 'url' => 'https://mxchat.ai/multi-bot/',
108 'plugin_file' => 'mxchat-multi-bot/mxchat-multi-bot.php',
109 'config_page' => 'mxchat-multi-bot'
110 ),
111
112 'mxchat-trigger' => array(
113 'title' => __('MxChat Trigger', 'mxchat'),
114 'description' => __('Turn any element into a conversation starter. Add chat trigger buttons and links throughout your website that open MxChat and send predefined messages—perfect for CTAs, support links, and guided experiences.', 'mxchat'),
115 'key_benefits' => array(
116 __('Simple data attribute triggers', 'mxchat'),
117 __('Multi-Bot targeting support', 'mxchat'),
118 __('Built-in button styles & animations', 'mxchat')
119 ),
120 'license' => 'MxChat PRO',
121 'accent' => '#3ac9d1',
122 'url' => 'https://mxchat.ai/triggers/',
123 'plugin_file' => 'mxchat-trigger/mxchat-trigger.php',
124 'config_page' => 'mxchat-triggers'
125 ),
126
127 'mxchat-woo' => array(
128 'title' => __('MxChat WooCommerce', 'mxchat'),
129 'description' => __('Boost sales with AI-powered shopping assistance. Help customers find products, manage carts, and complete purchases—all through natural conversation.', 'mxchat'),
130 'key_benefits' => array(
131 __('Smart product recommendations', 'mxchat'),
132 __('Cart & checkout assistance', 'mxchat'),
133 __('Order history access', 'mxchat')
134 ),
135 'license' => 'MxChat PRO',
136 'accent' => '#fa73e6',
137 'url' => 'https://mxchat.ai/woocommerce/',
138 'plugin_file' => 'mxchat-woo/mxchat-woo.php',
139 'config_page' => 'mxchat-woo'
140 ),
141
142 'mxchat-assistant-api' => array(
143 'title' => __('MxChat Assistant API', 'mxchat'),
144 'description' => __('Unlock the full power of OpenAI Assistants. Bypass MxChat\'s knowledge base and connect directly to your custom OpenAI Assistant for advanced AI capabilities and specialized responses.', 'mxchat'),
145 'key_benefits' => array(
146 __('Custom OpenAI Assistant integration', 'mxchat'),
147 __('Advanced AI capabilities', 'mxchat'),
148 __('24-hour conversation persistence', 'mxchat')
149 ),
150 'license' => 'MxChat PRO',
151 'accent' => '#00d4aa',
152 'url' => 'https://mxchat.ai/openai-assistants-api/',
153 'plugin_file' => 'mxchat-assistant-api/mxchat-assistant-api.php',
154 'config_page' => 'mxchat-assistant-api'
155 ),
156
157 'mxchat-perplexity' => array(
158 'title' => __('MxChat Perplexity', 'mxchat'),
159 'description' => __('Give your chatbot real-time knowledge. Add powerful web search capabilities so your bot can answer questions about current events and time-sensitive information.', 'mxchat'),
160 'key_benefits' => array(
161 __('Real-time web search', 'mxchat'),
162 __('Intent-triggered research', 'mxchat'),
163 __('Up-to-date information', 'mxchat')
164 ),
165 'license' => 'MxChat PRO',
166 'accent' => '#fa73e6',
167 'url' => 'https://quickdeploywp.com/plugin/mxchat-perplexity/',
168 'plugin_file' => 'mxchat-perplexity/mxchat-perplexity.php',
169 'config_page' => 'mxchat-perplexity'
170 ),
171
172 'mxchat-moderation' => array(
173 'title' => __('MxChat Moderation', 'mxchat'),
174 'description' => __('Keep your chat clean and professional. Block unwanted users, filter inappropriate content, and ensure your chatbot represents your brand properly.', 'mxchat'),
175 'key_benefits' => array(
176 __('IP & email-based blocking', 'mxchat'),
177 __('Content filtering', 'mxchat'),
178 __('Spam protection', 'mxchat')
179 ),
180 'license' => 'MxChat PRO',
181 'accent' => '#fa73e6',
182 'url' => 'https://quickdeploywp.com/plugin/mxchat-moderation/',
183 'plugin_file' => 'mxchat-moderation/mx-chat-moderation.php',
184 'config_page' => 'mx-chat-moderation'
185 ),
186
187 );
188 }
189
190 /**
191 * Get the addons configuration array
192 *
193 * @return array The addons configuration
194 */
195 public function get_addons_config() {
196 return $this->addons_config;
197 }
198
199 /**
200 * Register the stylesheets for the admin area.
201 */
202 public function enqueue_styles() {
203 wp_enqueue_style(
204 'mxchat-addons',
205 plugin_dir_url(__FILE__) . '../css/admin-add-ons.css',
206 array(),
207 MXCHAT_VERSION,
208 'all'
209 );
210 }
211
212 /**
213 * Check if an addon is installed and active
214 *
215 * @param string $plugin_file The plugin's main file path
216 * @return array Status information
217 */
218 private function get_addon_status($plugin_file) {
219 if (!function_exists('get_plugins')) {
220 require_once ABSPATH . 'wp-admin/includes/plugin.php';
221 }
222
223 $all_plugins = get_plugins();
224 $active_plugins = get_option('active_plugins', array());
225
226 // Find the addon by iterating through configs
227 $config_page = '';
228 foreach ($this->addons_config as $slug => $addon) {
229 if ($addon['plugin_file'] === $plugin_file) {
230 $config_page = $addon['config_page'];
231 break;
232 }
233 }
234
235 if (isset($all_plugins[$plugin_file])) {
236 if (in_array($plugin_file, $active_plugins)) {
237 return array(
238 'status' => 'active',
239 'action_url' => admin_url('admin.php?page=' . $config_page),
240 'action_text' => __('Configure', 'mxchat')
241 );
242 } else {
243 return array(
244 'status' => 'inactive',
245 'action_url' => wp_nonce_url(
246 admin_url('plugins.php?action=activate&plugin=' . $plugin_file),
247 'activate-plugin_' . $plugin_file
248 ),
249 'action_text' => __('Activate', 'mxchat')
250 );
251 }
252 }
253
254 return array(
255 'status' => 'not-installed',
256 'action_url' => '',
257 'action_text' => __('Get Extension', 'mxchat')
258 );
259 }
260
261 /**
262 * Render the Add Ons page content.
263 */
264 public function render_page() {
265 $this->enqueue_styles();
266 // Remove the sorting logic and just use the original order
267 $sorted_addons = $this->addons_config;
268
269 ?>
270 <div class="wrap mxchat-addons-wrapper">
271 <div class="mxchat-addons-hero">
272 <h1 class="mxchat-main-title">
273 <span class="mxchat-gradient-text">Power Up</span> Your Chatbot
274 </h1>
275 <p class="mxchat-hero-subtitle">
276 <?php esc_html_e('Extend MxChat with these powerful extensions and unlock advanced features.', 'mxchat'); ?>
277 </p>
278 </div>
279
280 <div class="mxchat-addons-section">
281 <div class="mxchat-addons-grid">
282 <?php foreach ($sorted_addons as $slug => $addon): ?>
283 <?php $this->render_addon_card($slug, $addon); ?>
284 <?php endforeach; ?>
285 </div>
286 </div>
287
288 <div class="mxchat-cta-section">
289 <h2><?php esc_html_e('Ready to take your chatbot to the next level?', 'mxchat'); ?></h2>
290 <p><?php esc_html_e('Get MxChat PRO today and access all premium extensions at one low price.', 'mxchat'); ?></p>
291 <a href="https://mxchat.ai/" class="mxchat-cta-button" target="_blank"><?php esc_html_e('Learn More', 'mxchat'); ?></a>
292 </div>
293 </div>
294 <?php
295 }
296
297 /**
298 * Render individual add-on card
299 *
300 * @param string $slug The addon slug
301 * @param array $addon The addon configuration array
302 */
303 private function render_addon_card($slug, $addon) {
304 $status_info = $this->get_addon_status($addon['plugin_file']);
305 $button_url = $status_info['status'] === 'not-installed' ? $addon['url'] : $status_info['action_url'];
306 $button_target = $status_info['status'] === 'not-installed' ? '_blank' : '_self';
307
308 // Check if addon is deprecated
309 $is_deprecated = isset($addon['status']) && $addon['status'] === 'deprecated';
310 ?>
311 <div class="mxchat-addon-card <?php echo $is_deprecated ? 'deprecated' : ''; ?>" style="--card-accent: <?php echo esc_attr($addon['accent']); ?>">
312 <div class="mxchat-addon-badge">
313 <?php if ($is_deprecated): ?>
314 <?php esc_html_e('Deprecated', 'mxchat'); ?>
315 <?php else: ?>
316 <?php echo esc_html(ucfirst($addon['license'])); ?>
317 <?php endif; ?>
318 </div>
319 <div class="mxchat-addon-content">
320 <h3 class="mxchat-addon-title"><?php echo esc_html($addon['title']); ?></h3>
321 <p class="mxchat-addon-description"><?php echo esc_html($addon['description']); ?></p>
322
323 <?php if (!empty($addon['key_benefits'])): ?>
324 <div class="mxchat-benefits-list">
325 <?php foreach ($addon['key_benefits'] as $benefit): ?>
326 <div class="mxchat-benefit-item">
327 <span class="mxchat-benefit-icon"></span>
328 <?php echo esc_html($benefit); ?>
329 </div>
330 <?php endforeach; ?>
331 </div>
332 <?php endif; ?>
333
334 <div class="mxchat-addon-footer">
335 <?php if ($is_deprecated): ?>
336 <div class="mxchat-status-indicator deprecated">
337 <?php esc_html_e('Now Built-in', 'mxchat'); ?>
338 </div>
339 <a href="<?php echo esc_url(admin_url('admin.php?page=mxchat-prompts')); ?>"
340 class="mxchat-action-button deprecated"
341 target="_self">
342 <?php esc_html_e('Go to Knowledge Tab', 'mxchat'); ?>
343 </a>
344 <?php else: ?>
345 <div class="mxchat-status-indicator <?php echo esc_attr($status_info['status']); ?>">
346 <?php echo esc_html(ucfirst(str_replace('-', ' ', $status_info['status']))); ?>
347 </div>
348 <a href="<?php echo esc_url($button_url); ?>"
349 class="mxchat-action-button"
350 target="<?php echo esc_attr($button_target); ?>"
351 data-action="<?php echo esc_attr($status_info['status']); ?>">
352 <?php echo esc_html($status_info['action_text']); ?>
353 </a>
354 <?php endif; ?>
355 </div>
356 </div>
357 </div>
358 <?php
359 }
360
361 }