PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.5.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.5.2
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
← All changes | functions.php +322 -242 8.5.34.5.2 View file →
@@ -3,48 +3,11 @@
3 3 * @param $type
4 4 * Display wpwBot Icon ball
5 5 */
6 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly
7 -
8 -
9 -function qcld_custom_search_form( $form ) {
10 - // Add a hidden input to limit search to 'product' post type
11 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
12 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
13 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
14 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
15 - } else {
16 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
17 - }
18 - $hidden_field = '<a class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important;position: absolute;top: -9px;right: -60px;"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></a>';
19 - $block_content = str_replace( '</form>', $hidden_field . '</form>', $form );
20 - return $block_content;
21 -}
22 -if(get_option('wpbot_enable_on_search') == 1 && (get_option('disable_floating_button') != '1') && get_option('disable_wp_chatbot') != 1 ){
23 - add_filter( 'get_search_form', 'qcld_custom_search_form' );
24 - add_filter( 'render_block_core/search', 'qcld_modify_gutenberg_search_block', 10, 2 );
25 -}
26 -
27 -
28 -function qcld_modify_gutenberg_search_block( $block_content, $block ) {
29 - // Add a hidden input to limit search to 'product' post type
30 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
31 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
32 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
33 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
34 - } else {
35 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
36 - }
37 - $hidden_field = '<button type="button" class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></button>';
38 - // Inject the hidden field before the closing </form> tag
39 - $block_content = str_replace( '</div></form>', $hidden_field . '</div></form>', $block_content );
40 - return $block_content;
41 -}
42 -if(get_option('disable_floating_button') != '1'){
43 - add_action('wp_footer', 'wp_chatbot_load_footer_html');
44 -}
45 -add_action( 'admin_footer', 'qcld_style_for_hide_iframe');
46 -function qcld_style_for_hide_iframe(){
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
8 +add_action( 'admin_footer', 'qc_style_for_hide_iframe');
9 +function qc_style_for_hide_iframe(){
47 10 ?>
48 11 <script>
49 12 jQuery( document ).ready(function() {
50 13 setInterval(function(){
@@ -64,10 +27,9 @@
64 27
65 28 ?>
66 29 <style>
67 30 <?php if(get_option('wp_chatbot_custom_css')!="") {
68 -
69 - echo wp_strip_all_tags( get_option('wp_chatbot_custom_css') );// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
31 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
70 32 }
71 33 ?>
72 34 </style>
73 35
@@ -84,41 +46,41 @@
84 46 }
85 47 </style>
86 48 <?php }
87 49 $wp_chatbot_enable_rtl = "";
88 - if (get_option('enable_wp_chatbot_rtl') == '1') {
50 + if (get_option('enable_wp_chatbot_rtl')) {
89 51 $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
90 52 }
91 53 $wp_chatbot_enable_mobile_screen = "";
92 - // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
54 + if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
93 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
94 - // }
56 + }
95 57 ?>
96 - <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>" style="<?php if(get_option('disable_floating_button') == '1'){ echo 'display:none';} ?>">
58 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
97 59 <div id="wp-chatbot-integration-container">
98 60 <div class="wp-chatbot-integration-button-container">
99 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
100 62 <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
101 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
63 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
102 64 <?php } ?>
103 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
104 66 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
105 67 target="_blank"><span class="intergration-whats"
106 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
107 69 <?php } ?>
108 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
109 71 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
110 72 target="_blank"><span class="intergration-viber"
111 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
112 74 <?php } ?>
113 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
114 76 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
115 77 class="intergration-phone"
116 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
117 79 <?php } ?>
118 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
119 81 <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
120 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
121 83 <?php } ?>
122 84 </div>
123 85 </div>
124 86 <?php
@@ -131,9 +93,9 @@
131 93 }
132 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
133 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
134 96 } else {
135 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
136 98 }
137 99 ?>
138 100 <?php
139 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -140,9 +102,9 @@
140 102 ?>
141 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
142 104 <div class="wp-chatbot-notification-controller">
143 105 <span class="wp-chatbot-notification-close">
144 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
145 107 </span>
146 108 </div>
147 109 <?php
148 110 $testingTip="";
@@ -155,9 +117,9 @@
155 117 }
156 118 ?>
157 119 <div class="wp-chatbot-notification-agent-profile">
158 120 <div class="wp-chatbot-notification-widget-avatar" ><img
159 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
121 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
160 122 <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
161 123 </div>
162 124 <?php
163 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -173,10 +135,9 @@
173 135 <div class="wp-chatbot-ball">
174 136 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
175 137 <?php
176 138 if (get_option('wp_chatbot_icon') == "custom.png") {
177 - $wp_chatbot_custom_icon_path = (!empty(get_option('wp_chatbot_custom_icon_path'))) ? get_option('wp_chatbot_custom_icon_path') : QCLD_wpCHATBOT_IMG_URL . 'icon-1.png';
178 -
139 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
179 140 } else if (get_option('wp_chatbot_icon') != "custom.png") {
180 141 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
181 142 } else {
182 143 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
@@ -230,11 +191,11 @@
230 191 </div>
231 192
232 193 <?php
233 194
234 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
195 + if ( get_transient( 'bot_clear_cache' ) ) {
235 196 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
236 - delete_transient( 'qcld_bot_clear_cache' );
197 + delete_transient( 'bot_clear_cache' );
237 198 }
238 199
239 200 }else{
240 201 ?>
@@ -304,9 +265,9 @@
304 265 return $wp_chatbot_load;
305 266 }
306 267 //checking Devices
307 268 function wp_chatbot_is_mobile(){
308 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
269 + $useragent = $_SERVER['HTTP_USER_AGENT'];
309 270 if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
310 271 return true;
311 272 } else {
312 273 return false;
@@ -313,10 +274,10 @@
313 274 }
314 275 }
315 276 //Checking wpwbot opening hour
316 277 function wp_chatbot_check_opening_hours(){
317 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
318 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
278 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
279 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
319 280 $is_wpwbot_open =false;
320 281 if(get_option('wpwbot_hours')) {
321 282 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
322 283 if (isset($wpwbot_times[$curent_day])) {
@@ -331,8 +292,183 @@
331 292 }
332 293 }
333 294 return $is_wpwbot_open;
334 295 }
296 +//wpwBot shortcode.
297 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
298 +function wp_chatbot_short_code($atts = []){
299 + ob_start();
300 + wp_chatbot_shortcode_dom($atts);
301 + $content = ob_get_clean();
302 + return $content;
303 +}
304 +function wp_chatbot_shortcode_dom($atts){
305 + //Defaults & Set Parameters for shortcode
306 + extract(shortcode_atts(
307 + array(
308 + 'template' => '01',
309 + ), $atts
310 + ));
311 + ?>
312 + <style>
313 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
314 + </style>
315 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
316 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
317 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
318 + } else {
319 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
320 + }
321 + ?>
322 + <style>
323 + .wp-chatbot-container {
324 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
325 + }
326 + </style>
327 +<?php }
328 + $wp_chatbot_enable_rtl = "";
329 + if (get_option('enable_wp_chatbot_rtl')) {
330 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
331 + }
332 + ?>
333 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
334 + <?php
335 + //Get wpcommerce cart
336 +
337 + $qcld_wb_chatbot_theme = 'template-' . $template;
338 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
339 + wp_register_style('qcld-wp-chatbot-style', plugins_url(basename(plugin_dir_path(__FILE__)) . '/templates/' . $qcld_wb_chatbot_theme . '/style.css', basename(__FILE__)), '', QCLD_wpCHATBOT_VERSION, 'screen');
340 + wp_enqueue_style('qcld-wp-chatbot-style');
341 + }
342 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
343 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
344 + } else {
345 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
346 + }
347 + ?>
348 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
349 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
350 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
351 + <?php
352 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
353 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
354 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
355 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
356 + } else {
357 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
358 + }
359 + ?>
360 + <div class="wp-chatbot-notification-agent-profile">
361 + <div class="wp-chatbot-notification-widget-avatar"><img
362 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
363 + <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
364 + </div>
365 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
366 + </div>
367 + <!--wp-chatbot-board-container-->
368 + <div id="wp-chatbot-ball" class="">
369 + <div class="wp-chatbot-ball">
370 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
371 + <?php
372 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
373 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
374 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
375 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
376 + } else {
377 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
378 + }
379 + ?>
380 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
381 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
382 + </div>
383 + <!-- wp-chatbot-board-container-->
384 + <?php endif; ?>
385 + <!--container-->
386 + <!--wp-chatbot-ball-wrapper-->
387 + </div>
388 +<?php } ?>
389 +<?php
390 +//Create shortcode for wpwBot for pages.
391 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
392 +function wp_chatbot_page_short_code(){
393 + ob_start();
394 + wp_chatbot_page_dom();
395 + $content = ob_get_clean();
396 + return $content;
397 +}
398 +function wp_chatbot_page_dom(){ ?>
399 + <style>
400 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
401 + </style>
402 + <?php
403 + //Get wpcommerce cart
404 +
405 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
406 + $wp_chatbot_enable_rtl = "";
407 + if (get_option('enable_wp_chatbot_rtl') == 1) {
408 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
409 + }
410 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
411 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
412 + } else {
413 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
414 + }
415 +}
416 +//shortcode for wpWBot mobile app
417 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
418 +function wp_chatbot_mobile_app_short_code(){ ?>
419 + <style>
420 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
421 + </style>
422 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
423 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
424 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
425 + } else {
426 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
427 + }
428 + ?>
429 + <style>
430 + .wp-chatbot-container {
431 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
432 + }
433 + </style>
434 +<?php }
435 + $wp_chatbot_enable_rtl = "";
436 + if (get_option('enable_wp_chatbot_rtl')) {
437 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
438 + }
439 + ?>
440 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
441 + <?php
442 + // keep traking app template.
443 + $template_app = 'yes';
444 + //Get wpcommerce cart
445 +
446 + //Handling shortcode enqeue and remove features part.
447 + define('wpCOMMERCE', true);
448 + wp_enqueue_script('jquery');
449 +
450 +
451 + wp_enqueue_script('wc-address-i18n');
452 + wp_enqueue_script('wc-country-select');
453 +
454 +
455 + // add the action
456 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
457 + if (!isset($_COOKIE['from_app'])) {
458 + setcookie('from_app', 'yes', time() + 3600);
459 + }
460 + }
461 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
462 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
463 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
464 + } else {
465 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
466 + }
467 + ?>
468 + </div>
469 + <?php
470 +}
335 471
336 472 /**
337 473 * wpwBot Search keyword product
338 474 */
@@ -338,16 +474,9 @@
338 474 */
339 475 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
340 476 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
341 477 function qcld_wb_chatbot_keyword(){
342 - // Verify nonce for security
343 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
344 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
345 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
346 - wp_die();
347 - }
348 -
349 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
478 + $keyword = sanitize_text_field($_POST['keyword']);
350 479 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
351 480 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
352 481 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
353 482 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -393,9 +522,9 @@
393 522 endwhile;
394 523 wp_reset_postdata();
395 524 $html .= '</ul>';
396 525 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
397 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($keyword) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
526 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $keyword . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
398 527 }
399 528 }
400 529 $html .= '</div>';
401 530 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -423,9 +552,9 @@
423 552 }
424 553 }
425 554 $html .= '</ul>';
426 555 if ($total_product_num > $product_per_page && $product_per_page > 0) {
427 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($more_product_ids) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
556 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $more_product_ids . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
428 557 }
429 558 }
430 559 $html .= '</div>';
431 560 }
@@ -440,15 +569,16 @@
440 569 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
441 570 function qcld_wb_chatbot_category(){
442 571 $category_type="common";
443 572 if (get_option('wp_chatbot_show_parent_category') != "") {
444 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
573 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
574 +
445 575 } else {
446 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
576 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
447 577 }
448 578 $html = "";
449 579 foreach ($terms as $term) {
450 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
580 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
451 581 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
452 582 $category_type="hasChilds";
453 583 }
454 584 $html .= '<span class="qcld-chatbot-product-category" data-category-type="' . $category_type . '" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
@@ -461,10 +591,10 @@
461 591 */
462 592 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
463 593 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
464 594 function qcld_wb_chatbot_sub_category(){
465 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
466 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
595 + $parent_id = stripslashes($_POST['parent_id']);
596 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
467 597 $html = "";
468 598 foreach ($terms as $term) {
469 599 $html .= '<span class="qcld-chatbot-product-category" data-category-type="common" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
470 600 }
@@ -476,9 +606,9 @@
476 606 */
477 607 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
478 608 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
479 609 function qcld_wb_chatbot_category_products(){
480 - $category_id = intval( wp_unslash( $_POST['category'] ) );
610 + $category_id = stripslashes($_POST['category']);
481 611 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
482 612 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
483 613 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
484 614 //Merging all query together.
@@ -715,11 +845,11 @@
715 845 //load more
716 846 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
717 847 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
718 848 function qcld_wb_chatbot_load_more(){
719 - $offset = intval( wp_unslash( $_POST['offset'] ) );
720 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
721 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
849 + $offset = stripslashes($_POST['offset']);
850 + $search_type = stripslashes($_POST['search_type']);
851 + $search_term = stripslashes($_POST['search_term']);
722 852 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
723 853 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
724 854 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
725 855 $next_offset = intval($product_per_page + $offset);
@@ -850,9 +980,9 @@
850 980 //product details
851 981 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
852 982 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
853 983 function qcld_wb_chatbot_product_details(){
854 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
984 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
855 985 //Tracking product view from chat board
856 986 wp_chatbot_view_track_product_by_id($product_id);
857 987 //wpcommerce product factory
858 988 $wc_pf = new WC_Product_Factory();
@@ -880,9 +1010,9 @@
880 1010 }
881 1011 }
882 1012 $product_image .= '</ul></div>';
883 1013 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
884 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
1014 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
885 1015 //if ( $product->is_in_stock() || $product->is_purchasable() )
886 1016 //Handle variable product start
887 1017 $variations = "";
888 1018 $add_cart_button = "";
@@ -925,11 +1055,10 @@
925 1055 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
926 1056 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
927 1057 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
928 1058 foreach ($values as $value) {
929 - $attr_key = 'attribute_' . sanitize_title( $name );
930 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
931 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
1059 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1060 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
932 1061 } else {
933 1062 $selected_value = '';
934 1063 }
935 1064 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -950,15 +1079,15 @@
950 1079 $response = array('title' => $product_title, 'description' => $product_desc, 'image' => $product_image, 'price' => $product_price, 'sku' => $product_sku, 'quantity' => $product_quantity, 'buttton' => $add_cart_button, 'variation' => $variations, 'type' => $product_type, 'debug' => $debug);
951 1080 wp_send_json($response);
952 1081 }
953 1082 //Add to cart for variable product.
954 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
955 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
956 -function qcld_variable_add_to_cart(){
957 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
958 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
959 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
960 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
1083 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1084 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1085 +function qcld_wb_chatbot_variable_add_to_cart(){
1086 + $product_id = stripslashes($_POST['p_id']);
1087 + $quantity = stripslashes($_POST['quantity']);
1088 + $variations_id = stripslashes($_POST['variations_id']);
1089 + $attrs = stripslashes($_POST['attributes']);
961 1090 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
962 1091 $attributes = array();
963 1092 foreach ($attrs as $attr) {
964 1093 $single = explode("#", $attr);
@@ -978,10 +1107,10 @@
978 1107 //Add to cart for simple product.
979 1108 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
980 1109 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
981 1110 function qcld_wb_chatbot_add_to_cart(){
982 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
983 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1111 + $product_id = stripslashes($_POST['product_id']);
1112 + $product_quantity = stripslashes($_POST['quantity']);
984 1113 global $wpcommerce;
985 1114 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
986 1115 if ($result != false) {
987 1116 wp_send_json('simple');
@@ -992,19 +1121,15 @@
992 1121 //Support part
993 1122 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
994 1123 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
995 1124 function qcld_wb_chatbot_support_email(){
996 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
997 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
998 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
999 - }
1000 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1001 - $email = sanitize_email(wp_unslash($_POST['email']));
1002 - $message = sanitize_text_field(wp_unslash($_POST['message']));
1125 + $name = trim(sanitize_text_field($_POST['name']));
1126 + $email = sanitize_email($_POST['email']);
1127 + $message = sanitize_text_field($_POST['message']);
1003 1128 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1004 1129 //Extract Domain
1005 1130 $url = get_site_url();
1006 - $url = wp_parse_url($url);
1131 + $url = parse_url($url);
1007 1132 $domain = $url['host'];
1008 1133 //$admin_email = "admin@" . $domain;
1009 1134 $admin_email = sanitize_email(get_option('admin_email'));
1010 1135 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1014,8 +1139,9 @@
1014 1139 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1015 1140 }else{
1016 1141 $fromEmail = "wordpress@" . $domain;
1017 1142 }
1143 +
1018 1144 //Starting messaging and status.
1019 1145 $response['status'] = 'fail';
1020 1146 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1021 1147 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1023,14 +1149,14 @@
1023 1149 $response['status'] = 'fail';
1024 1150 } else {
1025 1151 //build email body
1026 1152 $bodyContent = "";
1027 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1028 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1029 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1030 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1031 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1032 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1153 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1154 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1155 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1156 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1157 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1158 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1033 1159 $to = $toEmail;
1034 1160 $body = $bodyContent;
1035 1161 $headers = array();
1036 1162 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1042,9 +1168,9 @@
1042 1168 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1043 1169 }
1044 1170
1045 1171 }
1046 - echo wp_json_encode($response);
1172 + echo json_encode($response);
1047 1173 die();
1048 1174 }
1049 1175 //Support Phone
1050 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1049,15 +1175,14 @@
1049 1175 //Support Phone
1050 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1051 1177 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1052 1178 function qcld_wb_chatbot_support_phone(){
1053 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1054 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1055 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1179 + $name = trim(sanitize_text_field($_POST['name']));
1180 + $phone =sanitize_text_field($_POST['phone']);
1056 1181 $subject = 'WPBot Support Mail Request for Call Back';
1057 1182 //Extract Domain
1058 1183 $url = get_site_url();
1059 - $url = wp_parse_url($url);
1184 + $url = parse_url($url);
1060 1185 $domain = $url['host'];
1061 1186 //$admin_email = "admin@" . $domain;
1062 1187 $admin_email = get_option('admin_email');
1063 1188 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1072,14 +1197,14 @@
1072 1197 $response['status'] = 'fail';
1073 1198 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1074 1199 //build email body
1075 1200 $bodyContent = "";
1076 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1077 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1078 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1079 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1080 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1081 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1201 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1202 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1203 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1204 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1205 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1206 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1082 1207 $to = $toEmail;
1083 1208 $body = $bodyContent;
1084 1209 $headers = array();
1085 1210 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1089,15 +1214,36 @@
1089 1214 if ($result) {
1090 1215 $response['status'] = 'success';
1091 1216 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1092 1217 }
1093 - echo wp_json_encode($response);
1218 + echo json_encode($response);
1094 1219 die();
1095 1220 }
1096 -// Order Status part. removed
1097 -
1221 +// Order Status part.
1222 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1223 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1224 +function qcld_wb_chatbot_check_user(){
1225 + global $wpcommerce;
1226 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1227 + $response = array();
1228 + $response['message'] = "";
1229 + if (username_exists($user_name)) {
1230 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1231 + $response['status'] = "success";
1232 + $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks'))));
1233 + $response['html'] .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password')))) . '</p>';
1234 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1235 + $response = get_order_by_username($user_name);
1236 + }
1237 + } else {
1238 + $response['status'] = "fail";
1239 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist'))));
1240 + }
1241 + wp_send_json($response);
1242 + die();
1243 +}
1098 1244 function wpb_randmom_message_handle($items){
1099 - return $items[wp_rand(0, count($items) - 1)];
1245 + return $items[rand(0, count($items) - 1)];
1100 1246 }
1101 1247 function qcld_wb_chatbot_func_str_replace($messages = array()){
1102 1248 $refined_mesgses = array();
1103 1249 foreach ($messages as $message) {
@@ -1112,10 +1258,10 @@
1112 1258 // First check the nonce, if it fails the function will break
1113 1259 check_ajax_referer('wpwbot-order-nonce', 'security');
1114 1260 // Nonce is checked, get the POST data and sign user on
1115 1261 $info = array();
1116 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1117 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1262 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1263 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1118 1264 $info['remember'] = true;
1119 1265 $user_signon = wp_signon($info, false);
1120 1266 $response = array();
1121 1267 if (is_wp_error($user_signon)) {
@@ -1155,12 +1301,12 @@
1155 1301 if ($response['order_num'] > 0) {
1156 1302 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1157 1303 $order_html .= '<div class="wp-chatbot-orders-container">
1158 1304 <div class="wp-chatbot-orders-header">
1159 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1160 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1161 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1162 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1305 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1306 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1307 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1308 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1163 1309 </div>';
1164 1310 foreach ($customer_orders as $order) {
1165 1311 //Formatting order summery
1166 1312 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1171,9 +1317,9 @@
1171 1317 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1172 1318 }
1173 1319 $order_html .= '<div class="wp-chatbot-orders-single">
1174 1320 <div class="order-id"> ' . $order_url . '</div>
1175 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1321 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1176 1322 <div class="order-items">';
1177 1323 $singleOrder = new WC_Order($order->ID);
1178 1324 $items = $singleOrder->get_items();
1179 1325 foreach ($items as $item) {
@@ -1273,9 +1419,9 @@
1273 1419 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1274 1420 <div class="wp-chatbot-product-summary">
1275 1421 <div class="wp-chatbot-product-table">
1276 1422 <div class="wp-chatbot-product-table-cell">
1277 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1423 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1278 1424 <div class="price">' . $product->get_price_html() . '</div>';
1279 1425 $html .= ' </div>
1280 1426 </div>
1281 1427 </div></a>
@@ -1344,9 +1490,9 @@
1344 1490 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1345 1491 <div class="wp-chatbot-product-summary">
1346 1492 <div class="wp-chatbot-product-table">
1347 1493 <div class="wp-chatbot-product-table-cell">
1348 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1494 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1349 1495 <div class="price">' . $product->get_price_html() . '</div>';
1350 1496 $html .= ' </div>
1351 1497 </div>
1352 1498 </div></a>
@@ -1356,9 +1502,9 @@
1356 1502 wp_reset_postdata();
1357 1503 $html .= '</ul></div>';
1358 1504 } else {
1359 1505 $html .= '<div class="wp-chatbot-products-area">';
1360 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1506 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1361 1507 $html .= '</div>';
1362 1508 }
1363 1509 return $html;
1364 1510 }
@@ -1520,12 +1666,11 @@
1520 1666 //Updating the cart items.
1521 1667 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1522 1668 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1523 1669 function qcld_wb_chatbot_update_cart_item_number(){
1524 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1525 1670 //getting cart items n
1526 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1527 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1671 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1672 + $qnty = sanitize_text_field($_POST['qnty']);
1528 1673 global $wpcommerce;
1529 1674 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1530 1675 wp_send_json($result);
1531 1676 }
@@ -1532,11 +1677,10 @@
1532 1677 //Show item after removing from cart page.
1533 1678 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1534 1679 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1535 1680 function qcld_wb_chatbot_cart_item_remove(){
1536 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1537 1681 //getting cart items n
1538 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1682 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1539 1683 global $wpcommerce;
1540 1684 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1541 1685 wp_send_json($result);
1542 1686 }
@@ -1573,9 +1717,9 @@
1573 1717 $response = array('status' => $status, 'html' => $html);
1574 1718 wp_send_json($response);
1575 1719 }
1576 1720 //_dynamic_intent
1577 -function qcld_dynamic_intent(){
1721 +function qc_dynamic_intent(){
1578 1722 global $wpdb;
1579 1723 $intents = array();
1580 1724
1581 1725 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1592,10 +1736,9 @@
1592 1736
1593 1737 if(class_exists('Qcformbuilder_Forms_Admin')){
1594 1738
1595 1739
1596 - $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1597 -
1740 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1598 1741 if(!empty($results)){
1599 1742
1600 1743 foreach($results as $result){
1601 1744 $form = maybe_unserialize($result->config);
@@ -1613,28 +1756,28 @@
1613 1756
1614 1757 }
1615 1758
1616 1759 //User login on Checkout page.
1617 -// add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1618 -// add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1619 -// function qcld_wb_chatbot_checkout_user_login(){
1620 -// // Nonce is checked, get the POST data and sign user on
1621 -// $info = array();
1622 -// //$info['nonce'] = $_POST['nonce_val'];
1623 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1624 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1625 -// $info['remember'] = true;
1626 -// $user_signon = wp_signon($info, false);
1627 -// // $response=$info;
1628 -// $response = array();
1629 -// if (is_wp_error($user_signon)) {
1630 -// // $response['status'] = "fail";
1631 -// $response = "no";
1632 -// } else {
1633 -// $response = "yes";
1634 -// }
1635 -// wp_send_json($response);
1636 -// }
1760 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1761 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1762 +function qcld_wb_chatbot_checkout_user_login(){
1763 + // Nonce is checked, get the POST data and sign user on
1764 + $info = array();
1765 + //$info['nonce'] = $_POST['nonce_val'];
1766 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1767 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1768 + $info['remember'] = true;
1769 + $user_signon = wp_signon($info, false);
1770 + // $response=$info;
1771 + $response = array();
1772 + if (is_wp_error($user_signon)) {
1773 + // $response['status'] = "fail";
1774 + $response = "no";
1775 + } else {
1776 + $response = "yes";
1777 + }
1778 + wp_send_json($response);
1779 +}
1637 1780 // Load template for App Order Thank You page url
1638 1781 function wp_chatbot_load_app_template($template){
1639 1782 if (is_page('wpwbot-mobile-app')) {
1640 1783 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1663,16 +1806,15 @@
1663 1806 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1664 1807 function wp_chatbot_create_app_checkout_thankyou_page(){
1665 1808 if (get_option('wp_chatbot_app_pages') == 1) {
1666 1809 //Mobile App page create
1667 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1668 - if ( ! $existing_app->have_posts() ) {
1810 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1669 1811 //post status and options
1670 1812 $app_page = array(
1671 1813 'comment_status' => 'closed',
1672 1814 'ping_status' => 'closed',
1673 1815 'post_author' => get_current_user_id(),
1674 - 'post_date' => gmdate('Y-m-d H:i:s'),
1816 + 'post_date' => date('Y-m-d H:i:s'),
1675 1817 'post_status' => 'publish',
1676 1818 'post_title' => 'wpwBot Mobile App',
1677 1819 'post_name' => 'wpwbot-mobile-app',
1678 1820 'post_type' => 'page',
@@ -1682,16 +1824,15 @@
1682 1824 //save the id in the database
1683 1825 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1684 1826 }
1685 1827 //App checkout page create
1686 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1687 - if ( ! $existing_checkout->have_posts() ) {
1828 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1688 1829 //post status and options
1689 1830 $checkout_page = array(
1690 1831 'comment_status' => 'closed',
1691 1832 'ping_status' => 'closed',
1692 1833 'post_author' => get_current_user_id(),
1693 - 'post_date' => gmdate('Y-m-d H:i:s'),
1834 + 'post_date' => date('Y-m-d H:i:s'),
1694 1835 'post_status' => 'publish',
1695 1836 'post_title' => 'wpwBot App Checkout',
1696 1837 'post_name' => 'wpwbot-app-checkout',
1697 1838 'post_type' => 'page',
@@ -1701,16 +1842,15 @@
1701 1842 //save the id in the database
1702 1843 update_option('wp_chatbot_app_checkout', $app_checkout);
1703 1844 }
1704 1845 //App Order thank you page create
1705 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1706 - if ( ! $existing_thankyou->have_posts() ) {
1846 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1707 1847 //post status and options
1708 1848 $thankyou_page = array(
1709 1849 'comment_status' => 'closed',
1710 1850 'ping_status' => 'closed',
1711 1851 'post_author' => get_current_user_id(),
1712 - 'post_date' => gmdate('Y-m-d H:i:s'),
1852 + 'post_date' => date('Y-m-d H:i:s'),
1713 1853 'post_status' => 'publish',
1714 1854 'post_title' => 'wpwBot App Order Thank You',
1715 1855 'post_name' => 'wpwbot-app-order-thankyou',
1716 1856 'post_type' => 'page',
@@ -1721,9 +1861,9 @@
1721 1861 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1722 1862 }
1723 1863 }
1724 1864 //Keep tracking from App by cookies
1725 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1865 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1726 1866 if (!isset($_COOKIE['from_app'])) {
1727 1867 setcookie('from_app', 'yes', (time() + 3600), '/');
1728 1868 }
1729 1869 }
@@ -1737,9 +1877,9 @@
1737 1877 global $wp;
1738 1878 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1739 1879 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1740 1880 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1741 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1881 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1742 1882 exit;
1743 1883 }
1744 1884 } else {
1745 1885 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1755,9 +1895,8 @@
1755 1895 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1756 1896 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1757 1897 function qcld_wb_chatbot_session_count(){
1758 1898 // Nonce is checked, get the POST data and sign user on
1759 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1760 1899 global $wpdb;
1761 1900 $wpdb->show_errors = true;
1762 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1902 $response = array();
@@ -1762,12 +1901,11 @@
1762 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1902 $response = array();
1764 1903
1765 1904
1766 - $session_exists = $wpdb->get_row($wpdb->prepare("select * from {$tableuser} where 1 and id = %d",1)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
1767 -
1905 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1768 1906 if(empty($session_exists)){
1769 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1907 + $wpdb->insert(
1770 1908 $tableuser,
1771 1909 array(
1772 1910 'session' => 1,
1773 1911 )
@@ -1774,10 +1912,9 @@
1774 1912 );
1775 1913 }else{
1776 1914
1777 1915 $session_id = $session_exists->id;
1778 -
1779 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1916 + $wpdb->update(
1780 1917 $tableuser,
1781 1918 array(
1782 1919 'session'=>($session_exists->session+1),
1783 1920 ),
@@ -1786,9 +1923,8 @@
1786 1923 '%d',
1787 1924 ),
1788 1925 array('%d')
1789 1926 );
1790 -
1791 1927 }
1792 1928
1793 1929 wp_send_json($response);
1794 1930 }
@@ -1795,9 +1931,9 @@
1795 1931
1796 1932 /* WPBot Chat History Addon check */
1797 1933 function qcld_wpbot_is_active_chat_history(){
1798 1934
1799 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1935 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1800 1936 return 1;
1801 1937 }else{
1802 1938 return 0;
1803 1939 }
@@ -1803,9 +1939,9 @@
1803 1939 }
1804 1940
1805 1941 }
1806 1942
1807 -function qcld_wpbot_input_validation( $data ) {
1943 +function qc_wpbot_input_validation( $data ) {
1808 1944 $data = html_entity_decode($data);
1809 1945 $data = trim($data);
1810 1946 $data = stripslashes($data);
1811 1947 $data = htmlspecialchars($data);
@@ -1810,23 +1946,16 @@
1810 1946 $data = stripslashes($data);
1811 1947 $data = htmlspecialchars($data);
1812 1948 return $data;
1813 1949 }
1814 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1815 -function qcld_small_talk_import(){
1816 - if ( ! current_user_can( 'manage_options' ) ) {
1817 - wp_die();
1818 - }
1950 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1951 +function small_talk_import(){
1819 1952 global $wpdb;
1820 -
1821 1953 $table = $wpdb->prefix.'wpbot_response';
1822 -
1823 1954 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1824 -
1825 1955 foreach ($csvFile as $line) {
1826 1956 $line = str_getcsv($line, ',', '"');
1827 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1828 - $table, array(
1957 + $wpdb->insert($table, array(
1829 1958 'query' => $line[0],
1830 1959 'keyword' => $line[1],
1831 1960 'response' => $line[2],
1832 1961 'category'=> $line[3],
@@ -1833,60 +1962,11 @@
1833 1962 'intent'=> '',
1834 1963 //'lang'=> 'en_US',
1835 1964 ));
1836 1965 }
1837 -
1838 1966 $table2 = $wpdb->prefix.'wpbot_response_category';
1839 -
1840 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1841 - $table2, array(
1967 + $wpdb->insert($table2, array(
1842 1968 'name' => 'smalltalk',
1843 1969 ));
1844 -
1845 1970 update_option( 'qcld_small_talk_imported', 'yes' );
1846 1971
1847 -}
1848 -function sanitize_array( &$array ) {
1849 - if (!empty($array)) {
1850 - foreach ($array as &$value) {
1851 - if( !is_array($value) )
1852 - // sanitize if value is not an array
1853 - $value = sanitize_text_field( esc_html($value) );
1854 - else
1855 - // go inside this function again
1856 - sanitize_array(esc_html($value));
1857 - }
1858 - }
1859 - return $array;
1860 -}
1861 -function qcld_wpbot_meta_tags() {
1862 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1863 -}
1864 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1865 -
1866 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1867 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1868 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1869 - function qcld_change_language_from_center() {
1870 - if ( ! current_user_can( 'manage_options' ) ) {
1871 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1872 - }
1873 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1874 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1875 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1876 - }
1877 - $plugin_path = plugin_dir_path( __FILE__ );
1878 - include $plugin_path . 'includes/admin/settings-fields.php';
1879 - $json_file_path = $plugin_path . 'includes/language-center.json';
1880 -
1881 - $json_string = file_get_contents( $json_file_path );
1882 - if ( isset( $_POST['language'] ) ) {
1883 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1884 - $language_array= json_decode($json_string)->$language;
1885 - update_option( 'wp_chatbot_language_center_language', $language );
1886 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
1887 - } else {
1888 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
1889 -
1890 - }
1891 - }
1892 -}
1972 +}