PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.0.3
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.0.3
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 +286 -211 8.6.25.0.3 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
@@ -92,33 +54,33 @@
92 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,9 +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';
139 + $wp_chatbot_custom_icon_path = (!empty(get_option('wp_chatbot_custom_icon_path')) && !is_404(get_option('wp_chatbot_custom_icon_path'))) ? get_option('wp_chatbot_custom_icon_path') : QCLD_wpCHATBOT_IMG_URL . 'icon-1.png';
178 140
179 141 } else if (get_option('wp_chatbot_icon') != "custom.png") {
180 142 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
181 143 } else {
@@ -230,11 +192,11 @@
230 192 </div>
231 193
232 194 <?php
233 195
234 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
196 + if ( get_transient( 'bot_clear_cache' ) ) {
235 197 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
236 - delete_transient( 'qcld_bot_clear_cache' );
198 + delete_transient( 'bot_clear_cache' );
237 199 }
238 200
239 201 }else{
240 202 ?>
@@ -304,19 +266,21 @@
304 266 return $wp_chatbot_load;
305 267 }
306 268 //checking Devices
307 269 function wp_chatbot_is_mobile(){
308 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
309 - 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 - return true;
311 - } else {
312 - return false;
270 + if (isset($_SERVER['HTTP_USER_AGENT'])) {
271 + $useragent = $_SERVER['HTTP_USER_AGENT'];
272 + 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))) {
273 + return true;
274 + } else {
275 + return false;
276 + }
313 277 }
314 278 }
315 279 //Checking wpwbot opening hour
316 280 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')));
281 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
282 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
319 283 $is_wpwbot_open =false;
320 284 if(get_option('wpwbot_hours')) {
321 285 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
322 286 if (isset($wpwbot_times[$curent_day])) {
@@ -331,8 +295,183 @@
331 295 }
332 296 }
333 297 return $is_wpwbot_open;
334 298 }
299 +//wpwBot shortcode.
300 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
301 +function wp_chatbot_short_code($atts = []){
302 + ob_start();
303 + wp_chatbot_shortcode_dom($atts);
304 + $content = ob_get_clean();
305 + return $content;
306 +}
307 +function wp_chatbot_shortcode_dom($atts){
308 + //Defaults & Set Parameters for shortcode
309 + extract(shortcode_atts(
310 + array(
311 + 'template' => '01',
312 + ), $atts
313 + ));
314 + ?>
315 + <style>
316 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
317 + </style>
318 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
319 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
320 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
321 + } else {
322 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
323 + }
324 + ?>
325 + <style>
326 + .wp-chatbot-container {
327 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
328 + }
329 + </style>
330 +<?php }
331 + $wp_chatbot_enable_rtl = "";
332 + if (get_option('enable_wp_chatbot_rtl')) {
333 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
334 + }
335 + ?>
336 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
337 + <?php
338 + //Get wpcommerce cart
339 +
340 + $qcld_wb_chatbot_theme = 'template-' . $template;
341 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
342 + 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');
343 + wp_enqueue_style('qcld-wp-chatbot-style');
344 + }
345 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
346 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
347 + } else {
348 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
349 + }
350 + ?>
351 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
352 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
353 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
354 + <?php
355 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
356 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
357 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
358 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
359 + } else {
360 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
361 + }
362 + ?>
363 + <div class="wp-chatbot-notification-agent-profile">
364 + <div class="wp-chatbot-notification-widget-avatar"><img
365 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
366 + <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>
367 + </div>
368 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
369 + </div>
370 + <!--wp-chatbot-board-container-->
371 + <div id="wp-chatbot-ball" class="">
372 + <div class="wp-chatbot-ball">
373 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
374 + <?php
375 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
376 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
377 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
378 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
379 + } else {
380 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
381 + }
382 + ?>
383 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
384 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
385 + </div>
386 + <!-- wp-chatbot-board-container-->
387 + <?php endif; ?>
388 + <!--container-->
389 + <!--wp-chatbot-ball-wrapper-->
390 + </div>
391 +<?php } ?>
392 +<?php
393 +//Create shortcode for wpwBot for pages.
394 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
395 +function wp_chatbot_page_short_code(){
396 + ob_start();
397 + wp_chatbot_page_dom();
398 + $content = ob_get_clean();
399 + return $content;
400 +}
401 +function wp_chatbot_page_dom(){ ?>
402 + <style>
403 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
404 + </style>
405 + <?php
406 + //Get wpcommerce cart
407 +
408 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
409 + $wp_chatbot_enable_rtl = "";
410 + if (get_option('enable_wp_chatbot_rtl') == 1) {
411 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
412 + }
413 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
414 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
415 + } else {
416 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
417 + }
418 +}
419 +//shortcode for wpWBot mobile app
420 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
421 +function wp_chatbot_mobile_app_short_code(){ ?>
422 + <style>
423 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
424 + </style>
425 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
426 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
427 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
428 + } else {
429 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
430 + }
431 + ?>
432 + <style>
433 + .wp-chatbot-container {
434 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
435 + }
436 + </style>
437 +<?php }
438 + $wp_chatbot_enable_rtl = "";
439 + if (get_option('enable_wp_chatbot_rtl') == '1') {
440 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
441 + }
442 + ?>
443 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
444 + <?php
445 + // keep traking app template.
446 + $template_app = 'yes';
447 + //Get wpcommerce cart
448 +
449 + //Handling shortcode enqeue and remove features part.
450 + define('wpCOMMERCE', true);
451 + wp_enqueue_script('jquery');
452 +
453 +
454 + wp_enqueue_script('wc-address-i18n');
455 + wp_enqueue_script('wc-country-select');
456 +
457 +
458 + // add the action
459 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
460 + if (!isset($_COOKIE['from_app'])) {
461 + setcookie('from_app', 'yes', time() + 3600);
462 + }
463 + }
464 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
465 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
466 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
467 + } else {
468 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
469 + }
470 + ?>
471 + </div>
472 + <?php
473 +}
335 474
336 475 /**
337 476 * wpwBot Search keyword product
338 477 */
@@ -338,16 +477,9 @@
338 477 */
339 478 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
340 479 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
341 480 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']));
481 + $keyword = sanitize_text_field($_POST['keyword']);
350 482 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
351 483 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
352 484 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
353 485 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -393,9 +525,9 @@
393 525 endwhile;
394 526 wp_reset_postdata();
395 527 $html .= '</ul>';
396 528 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>';
529 + $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 530 }
399 531 }
400 532 $html .= '</div>';
401 533 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -423,9 +555,9 @@
423 555 }
424 556 }
425 557 $html .= '</ul>';
426 558 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>';
559 + $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 560 }
429 561 }
430 562 $html .= '</div>';
431 563 }
@@ -440,15 +572,16 @@
440 572 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
441 573 function qcld_wb_chatbot_category(){
442 574 $category_type="common";
443 575 if (get_option('wp_chatbot_show_parent_category') != "") {
444 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
576 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
577 +
445 578 } else {
446 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
579 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
447 580 }
448 581 $html = "";
449 582 foreach ($terms as $term) {
450 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
583 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
451 584 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
452 585 $category_type="hasChilds";
453 586 }
454 587 $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 +594,10 @@
461 594 */
462 595 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
463 596 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
464 597 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' ) );
598 + $parent_id = stripslashes($_POST['parent_id']);
599 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
467 600 $html = "";
468 601 foreach ($terms as $term) {
469 602 $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 603 }
@@ -476,9 +609,9 @@
476 609 */
477 610 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
478 611 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
479 612 function qcld_wb_chatbot_category_products(){
480 - $category_id = intval( wp_unslash( $_POST['category'] ) );
613 + $category_id = stripslashes($_POST['category']);
481 614 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
482 615 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
483 616 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
484 617 //Merging all query together.
@@ -715,11 +848,11 @@
715 848 //load more
716 849 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
717 850 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
718 851 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'] ) );
852 + $offset = stripslashes($_POST['offset']);
853 + $search_type = stripslashes($_POST['search_type']);
854 + $search_term = stripslashes($_POST['search_term']);
722 855 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
723 856 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
724 857 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
725 858 $next_offset = intval($product_per_page + $offset);
@@ -850,9 +983,9 @@
850 983 //product details
851 984 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
852 985 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
853 986 function qcld_wb_chatbot_product_details(){
854 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
987 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
855 988 //Tracking product view from chat board
856 989 wp_chatbot_view_track_product_by_id($product_id);
857 990 //wpcommerce product factory
858 991 $wc_pf = new WC_Product_Factory();
@@ -880,9 +1013,9 @@
880 1013 }
881 1014 }
882 1015 $product_image .= '</ul></div>';
883 1016 $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>';
1017 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
885 1018 //if ( $product->is_in_stock() || $product->is_purchasable() )
886 1019 //Handle variable product start
887 1020 $variations = "";
888 1021 $add_cart_button = "";
@@ -925,11 +1058,10 @@
925 1058 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
926 1059 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
927 1060 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
928 1061 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 ] ) );
1062 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1063 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
932 1064 } else {
933 1065 $selected_value = '';
934 1066 }
935 1067 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -950,15 +1082,15 @@
950 1082 $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 1083 wp_send_json($response);
952 1084 }
953 1085 //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();
1086 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1087 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1088 +function qcld_wb_chatbot_variable_add_to_cart(){
1089 + $product_id = stripslashes($_POST['p_id']);
1090 + $quantity = stripslashes($_POST['quantity']);
1091 + $variations_id = stripslashes($_POST['variations_id']);
1092 + $attrs = stripslashes($_POST['attributes']);
961 1093 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
962 1094 $attributes = array();
963 1095 foreach ($attrs as $attr) {
964 1096 $single = explode("#", $attr);
@@ -978,10 +1110,10 @@
978 1110 //Add to cart for simple product.
979 1111 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
980 1112 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
981 1113 function qcld_wb_chatbot_add_to_cart(){
982 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
983 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1114 + $product_id = stripslashes($_POST['product_id']);
1115 + $product_quantity = stripslashes($_POST['quantity']);
984 1116 global $wpcommerce;
985 1117 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
986 1118 if ($result != false) {
987 1119 wp_send_json('simple');
@@ -992,19 +1124,15 @@
992 1124 //Support part
993 1125 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
994 1126 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
995 1127 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']));
1128 + $name = trim(sanitize_text_field($_POST['name']));
1129 + $email = sanitize_email($_POST['email']);
1130 + $message = sanitize_text_field($_POST['message']);
1003 1131 $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 1132 //Extract Domain
1005 1133 $url = get_site_url();
1006 - $url = wp_parse_url($url);
1134 + $url = parse_url($url);
1007 1135 $domain = $url['host'];
1008 1136 //$admin_email = "admin@" . $domain;
1009 1137 $admin_email = sanitize_email(get_option('admin_email'));
1010 1138 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1014,8 +1142,9 @@
1014 1142 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1015 1143 }else{
1016 1144 $fromEmail = "wordpress@" . $domain;
1017 1145 }
1146 +
1018 1147 //Starting messaging and status.
1019 1148 $response['status'] = 'fail';
1020 1149 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1021 1150 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1023,14 +1152,14 @@
1023 1152 $response['status'] = 'fail';
1024 1153 } else {
1025 1154 //build email body
1026 1155 $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>';
1156 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1157 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1158 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1159 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1160 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1161 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1033 1162 $to = $toEmail;
1034 1163 $body = $bodyContent;
1035 1164 $headers = array();
1036 1165 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1042,9 +1171,9 @@
1042 1171 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1043 1172 }
1044 1173
1045 1174 }
1046 - echo wp_json_encode($response);
1175 + echo json_encode($response);
1047 1176 die();
1048 1177 }
1049 1178 //Support Phone
1050 1179 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1049,15 +1178,14 @@
1049 1178 //Support Phone
1050 1179 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1051 1180 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1052 1181 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']));
1182 + $name = trim(sanitize_text_field($_POST['name']));
1183 + $phone =sanitize_text_field($_POST['phone']);
1056 1184 $subject = 'WPBot Support Mail Request for Call Back';
1057 1185 //Extract Domain
1058 1186 $url = get_site_url();
1059 - $url = wp_parse_url($url);
1187 + $url = parse_url($url);
1060 1188 $domain = $url['host'];
1061 1189 //$admin_email = "admin@" . $domain;
1062 1190 $admin_email = get_option('admin_email');
1063 1191 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1072,14 +1200,14 @@
1072 1200 $response['status'] = 'fail';
1073 1201 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1074 1202 //build email body
1075 1203 $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>';
1204 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1205 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1206 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1207 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1208 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1209 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1082 1210 $to = $toEmail;
1083 1211 $body = $bodyContent;
1084 1212 $headers = array();
1085 1213 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1089,15 +1217,15 @@
1089 1217 if ($result) {
1090 1218 $response['status'] = 'success';
1091 1219 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1092 1220 }
1093 - echo wp_json_encode($response);
1221 + echo json_encode($response);
1094 1222 die();
1095 1223 }
1096 1224 // Order Status part. removed
1097 1225
1098 1226 function wpb_randmom_message_handle($items){
1099 - return $items[wp_rand(0, count($items) - 1)];
1227 + return $items[rand(0, count($items) - 1)];
1100 1228 }
1101 1229 function qcld_wb_chatbot_func_str_replace($messages = array()){
1102 1230 $refined_mesgses = array();
1103 1231 foreach ($messages as $message) {
@@ -1112,10 +1240,10 @@
1112 1240 // First check the nonce, if it fails the function will break
1113 1241 check_ajax_referer('wpwbot-order-nonce', 'security');
1114 1242 // Nonce is checked, get the POST data and sign user on
1115 1243 $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'])));
1244 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1245 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1118 1246 $info['remember'] = true;
1119 1247 $user_signon = wp_signon($info, false);
1120 1248 $response = array();
1121 1249 if (is_wp_error($user_signon)) {
@@ -1155,12 +1283,12 @@
1155 1283 if ($response['order_num'] > 0) {
1156 1284 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1157 1285 $order_html .= '<div class="wp-chatbot-orders-container">
1158 1286 <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>
1287 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1288 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1289 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1290 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1163 1291 </div>';
1164 1292 foreach ($customer_orders as $order) {
1165 1293 //Formatting order summery
1166 1294 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1171,9 +1299,9 @@
1171 1299 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1172 1300 }
1173 1301 $order_html .= '<div class="wp-chatbot-orders-single">
1174 1302 <div class="order-id"> ' . $order_url . '</div>
1175 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1303 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1176 1304 <div class="order-items">';
1177 1305 $singleOrder = new WC_Order($order->ID);
1178 1306 $items = $singleOrder->get_items();
1179 1307 foreach ($items as $item) {
@@ -1273,9 +1401,9 @@
1273 1401 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1274 1402 <div class="wp-chatbot-product-summary">
1275 1403 <div class="wp-chatbot-product-table">
1276 1404 <div class="wp-chatbot-product-table-cell">
1277 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1405 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1278 1406 <div class="price">' . $product->get_price_html() . '</div>';
1279 1407 $html .= ' </div>
1280 1408 </div>
1281 1409 </div></a>
@@ -1344,9 +1472,9 @@
1344 1472 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1345 1473 <div class="wp-chatbot-product-summary">
1346 1474 <div class="wp-chatbot-product-table">
1347 1475 <div class="wp-chatbot-product-table-cell">
1348 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1476 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1349 1477 <div class="price">' . $product->get_price_html() . '</div>';
1350 1478 $html .= ' </div>
1351 1479 </div>
1352 1480 </div></a>
@@ -1356,9 +1484,9 @@
1356 1484 wp_reset_postdata();
1357 1485 $html .= '</ul></div>';
1358 1486 } else {
1359 1487 $html .= '<div class="wp-chatbot-products-area">';
1360 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1488 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1361 1489 $html .= '</div>';
1362 1490 }
1363 1491 return $html;
1364 1492 }
@@ -1520,12 +1648,11 @@
1520 1648 //Updating the cart items.
1521 1649 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1522 1650 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1523 1651 function qcld_wb_chatbot_update_cart_item_number(){
1524 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1525 1652 //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']));
1653 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1654 + $qnty = sanitize_text_field($_POST['qnty']);
1528 1655 global $wpcommerce;
1529 1656 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1530 1657 wp_send_json($result);
1531 1658 }
@@ -1532,11 +1659,10 @@
1532 1659 //Show item after removing from cart page.
1533 1660 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1534 1661 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1535 1662 function qcld_wb_chatbot_cart_item_remove(){
1536 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1537 1663 //getting cart items n
1538 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1664 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1539 1665 global $wpcommerce;
1540 1666 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1541 1667 wp_send_json($result);
1542 1668 }
@@ -1573,9 +1699,9 @@
1573 1699 $response = array('status' => $status, 'html' => $html);
1574 1700 wp_send_json($response);
1575 1701 }
1576 1702 //_dynamic_intent
1577 -function qcld_dynamic_intent(){
1703 +function qc_dynamic_intent(){
1578 1704 global $wpdb;
1579 1705 $intents = array();
1580 1706
1581 1707 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1592,10 +1718,9 @@
1592 1718
1593 1719 if(class_exists('Qcformbuilder_Forms_Admin')){
1594 1720
1595 1721
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 -
1722 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1598 1723 if(!empty($results)){
1599 1724
1600 1725 foreach($results as $result){
1601 1726 $form = maybe_unserialize($result->config);
@@ -1619,10 +1744,10 @@
1619 1744 // function qcld_wb_chatbot_checkout_user_login(){
1620 1745 // // Nonce is checked, get the POST data and sign user on
1621 1746 // $info = array();
1622 1747 // //$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'])));
1748 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1749 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1625 1750 // $info['remember'] = true;
1626 1751 // $user_signon = wp_signon($info, false);
1627 1752 // // $response=$info;
1628 1753 // $response = array();
@@ -1663,16 +1788,15 @@
1663 1788 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1664 1789 function wp_chatbot_create_app_checkout_thankyou_page(){
1665 1790 if (get_option('wp_chatbot_app_pages') == 1) {
1666 1791 //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() ) {
1792 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1669 1793 //post status and options
1670 1794 $app_page = array(
1671 1795 'comment_status' => 'closed',
1672 1796 'ping_status' => 'closed',
1673 1797 'post_author' => get_current_user_id(),
1674 - 'post_date' => gmdate('Y-m-d H:i:s'),
1798 + 'post_date' => date('Y-m-d H:i:s'),
1675 1799 'post_status' => 'publish',
1676 1800 'post_title' => 'wpwBot Mobile App',
1677 1801 'post_name' => 'wpwbot-mobile-app',
1678 1802 'post_type' => 'page',
@@ -1682,16 +1806,15 @@
1682 1806 //save the id in the database
1683 1807 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1684 1808 }
1685 1809 //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() ) {
1810 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1688 1811 //post status and options
1689 1812 $checkout_page = array(
1690 1813 'comment_status' => 'closed',
1691 1814 'ping_status' => 'closed',
1692 1815 'post_author' => get_current_user_id(),
1693 - 'post_date' => gmdate('Y-m-d H:i:s'),
1816 + 'post_date' => date('Y-m-d H:i:s'),
1694 1817 'post_status' => 'publish',
1695 1818 'post_title' => 'wpwBot App Checkout',
1696 1819 'post_name' => 'wpwbot-app-checkout',
1697 1820 'post_type' => 'page',
@@ -1701,16 +1824,15 @@
1701 1824 //save the id in the database
1702 1825 update_option('wp_chatbot_app_checkout', $app_checkout);
1703 1826 }
1704 1827 //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() ) {
1828 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1707 1829 //post status and options
1708 1830 $thankyou_page = array(
1709 1831 'comment_status' => 'closed',
1710 1832 'ping_status' => 'closed',
1711 1833 'post_author' => get_current_user_id(),
1712 - 'post_date' => gmdate('Y-m-d H:i:s'),
1834 + 'post_date' => date('Y-m-d H:i:s'),
1713 1835 'post_status' => 'publish',
1714 1836 'post_title' => 'wpwBot App Order Thank You',
1715 1837 'post_name' => 'wpwbot-app-order-thankyou',
1716 1838 'post_type' => 'page',
@@ -1721,9 +1843,9 @@
1721 1843 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1722 1844 }
1723 1845 }
1724 1846 //Keep tracking from App by cookies
1725 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1847 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1726 1848 if (!isset($_COOKIE['from_app'])) {
1727 1849 setcookie('from_app', 'yes', (time() + 3600), '/');
1728 1850 }
1729 1851 }
@@ -1737,9 +1859,9 @@
1737 1859 global $wp;
1738 1860 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1739 1861 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1740 1862 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1741 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1863 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1742 1864 exit;
1743 1865 }
1744 1866 } else {
1745 1867 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1755,9 +1877,8 @@
1755 1877 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1756 1878 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1757 1879 function qcld_wb_chatbot_session_count(){
1758 1880 // Nonce is checked, get the POST data and sign user on
1759 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1760 1881 global $wpdb;
1761 1882 $wpdb->show_errors = true;
1762 1883 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1884 $response = array();
@@ -1762,12 +1883,11 @@
1762 1883 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1884 $response = array();
1764 1885
1765 1886
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 -
1887 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1768 1888 if(empty($session_exists)){
1769 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1889 + $wpdb->insert(
1770 1890 $tableuser,
1771 1891 array(
1772 1892 'session' => 1,
1773 1893 )
@@ -1774,10 +1894,9 @@
1774 1894 );
1775 1895 }else{
1776 1896
1777 1897 $session_id = $session_exists->id;
1778 -
1779 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1898 + $wpdb->update(
1780 1899 $tableuser,
1781 1900 array(
1782 1901 'session'=>($session_exists->session+1),
1783 1902 ),
@@ -1786,9 +1905,8 @@
1786 1905 '%d',
1787 1906 ),
1788 1907 array('%d')
1789 1908 );
1790 -
1791 1909 }
1792 1910
1793 1911 wp_send_json($response);
1794 1912 }
@@ -1795,9 +1913,9 @@
1795 1913
1796 1914 /* WPBot Chat History Addon check */
1797 1915 function qcld_wpbot_is_active_chat_history(){
1798 1916
1799 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1917 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1800 1918 return 1;
1801 1919 }else{
1802 1920 return 0;
1803 1921 }
@@ -1803,9 +1921,9 @@
1803 1921 }
1804 1922
1805 1923 }
1806 1924
1807 -function qcld_wpbot_input_validation( $data ) {
1925 +function qc_wpbot_input_validation( $data ) {
1808 1926 $data = html_entity_decode($data);
1809 1927 $data = trim($data);
1810 1928 $data = stripslashes($data);
1811 1929 $data = htmlspecialchars($data);
@@ -1810,23 +1928,16 @@
1810 1928 $data = stripslashes($data);
1811 1929 $data = htmlspecialchars($data);
1812 1930 return $data;
1813 1931 }
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 - }
1932 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1933 +function small_talk_import(){
1819 1934 global $wpdb;
1820 -
1821 1935 $table = $wpdb->prefix.'wpbot_response';
1822 -
1823 1936 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1824 -
1825 1937 foreach ($csvFile as $line) {
1826 1938 $line = str_getcsv($line, ',', '"');
1827 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1828 - $table, array(
1939 + $wpdb->insert($table, array(
1829 1940 'query' => $line[0],
1830 1941 'keyword' => $line[1],
1831 1942 'response' => $line[2],
1832 1943 'category'=> $line[3],
@@ -1833,16 +1944,12 @@
1833 1944 'intent'=> '',
1834 1945 //'lang'=> 'en_US',
1835 1946 ));
1836 1947 }
1837 -
1838 1948 $table2 = $wpdb->prefix.'wpbot_response_category';
1839 -
1840 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1841 - $table2, array(
1949 + $wpdb->insert($table2, array(
1842 1950 'name' => 'smalltalk',
1843 1951 ));
1844 -
1845 1952 update_option( 'qcld_small_talk_imported', 'yes' );
1846 1953
1847 1954 }
1848 1955 function sanitize_array( &$array ) {
@@ -1849,44 +1956,12 @@
1849 1956 if (!empty($array)) {
1850 1957 foreach ($array as &$value) {
1851 1958 if( !is_array($value) )
1852 1959 // sanitize if value is not an array
1853 - $value = sanitize_text_field( esc_html($value) );
1960 + $value = sanitize_text_field( $value );
1854 1961 else
1855 1962 // go inside this function again
1856 - sanitize_array(esc_html($value));
1963 + $this->sanitize_array($value);
1857 1964 }
1858 1965 }
1859 1966 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 -}
1967 +}