PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 6.6.0
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v6.6.0
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 8.5.2 All 533 releases
← All changes | functions.php +112 -312 8.6.96.6.0 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(){
@@ -58,62 +21,8 @@
58 21 });
59 22 </script>
60 23 <?php
61 24 }
62 -/**
63 - * Extract a YouTube video ID from common URL formats.
64 - *
65 - * @param string $url YouTube watch, embed, short, or youtu.be URL.
66 - * @return string Video ID or empty string.
67 - */
68 -if ( ! function_exists( 'qcld_wpbot_extract_youtube_id' ) ) {
69 - function qcld_wpbot_extract_youtube_id( $url ) {
70 - $url = trim( (string) $url );
71 - if ( $url === '' ) {
72 - return '';
73 - }
74 -
75 - if ( preg_match( '/(?:youtube\.com\/(?:embed\/|shorts\/|live\/|watch\?(?:.*&)?v=)|youtu\.be\/)([A-Za-z0-9_-]{11})/', $url, $matches ) ) {
76 - return $matches[1];
77 - }
78 -
79 - $path = (string) wp_parse_url( $url, PHP_URL_PATH );
80 - $base = basename( $path );
81 - if ( preg_match( '/^[A-Za-z0-9_-]{11}$/', $base ) ) {
82 - return $base;
83 - }
84 -
85 - return '';
86 - }
87 -}
88 -if ( ! function_exists( 'qcld_wpbot_youtube_icon_embed_src' ) ) {
89 - function qcld_wpbot_youtube_icon_embed_src( $url ) {
90 - $video_id = qcld_wpbot_extract_youtube_id( $url );
91 - if ( $video_id === '' ) {
92 - return '';
93 - }
94 -
95 - return add_query_arg(
96 - array(
97 - 'autoplay' => '1',
98 - 'mute' => '1',
99 - 'loop' => '1',
100 - 'playlist' => $video_id,
101 - 'controls' => '0',
102 - 'showinfo' => '0',
103 - 'rel' => '0',
104 - 'fs' => '0',
105 - 'iv_load_policy' => '3',
106 - 'cc_load_policy' => '0',
107 - 'disablekb' => '1',
108 - 'playsinline' => '1',
109 - 'modestbranding' => '1',
110 - 'color' => 'white',
111 - ),
112 - 'https://www.youtube.com/embed/' . rawurlencode( $video_id )
113 - );
114 - }
115 -}
116 25 function wp_chatbot_load_footer_html(){
117 26 if ( get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 27
119 28 ?>
@@ -118,10 +27,11 @@
118 27
119 28 ?>
120 29 <style>
121 30 <?php if(get_option('wp_chatbot_custom_css')!="") {
122 -
123 - echo wp_strip_all_tags( get_option('wp_chatbot_custom_css') );// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
31 + //Sanitization to be checked
32 + // phpcs:ignore
33 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
124 34 }
125 35 ?>
126 36 </style>
127 37
@@ -146,33 +56,33 @@
146 56 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 57 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 58 // }
149 59 ?>
150 - <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';} ?>">
60 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
151 61 <div id="wp-chatbot-integration-container">
152 62 <div class="wp-chatbot-integration-button-container">
153 63 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 64 <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
155 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
65 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
156 66 <?php } ?>
157 67 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
158 68 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
159 69 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
70 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 71 <?php } ?>
162 72 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
163 73 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
164 74 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
75 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
166 76 <?php } ?>
167 77 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
168 78 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
169 79 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
80 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
171 81 <?php } ?>
172 82 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
173 83 <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
174 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
84 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
175 85 <?php } ?>
176 86 </div>
177 87 </div>
178 88 <?php
@@ -185,9 +95,9 @@
185 95 }
186 96 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 97 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 98 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
99 + echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 100 }
191 101 ?>
192 102 <?php
193 103 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -194,9 +104,9 @@
194 104 ?>
195 105 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
196 106 <div class="wp-chatbot-notification-controller">
197 107 <span class="wp-chatbot-notification-close">
198 - <?php esc_html_e('X', 'chatbot'); ?>
108 + <?php esc_html_e('X', 'wpchatbot'); ?>
199 109 </span>
200 110 </div>
201 111 <?php
202 112 $testingTip="";
@@ -209,9 +119,9 @@
209 119 }
210 120 ?>
211 121 <div class="wp-chatbot-notification-agent-profile">
212 122 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
123 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
214 124 <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>
215 125 </div>
216 126 <?php
217 127 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -234,72 +144,14 @@
234 144 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 145 } else {
236 146 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 147 }
238 - $_wpbot_icon_video = get_option('wp_chatbot_icon_video', '');
239 - $_wpbot_video_is_youtube = ( strpos( $_wpbot_icon_video, 'youtube.com' ) !== false || strpos( $_wpbot_icon_video, 'youtu.be' ) !== false );
240 - $_wpbot_youtube_embed_src = $_wpbot_video_is_youtube ? qcld_wpbot_youtube_icon_embed_src( $_wpbot_icon_video ) : '';
241 - $_wpbot_video_delay_ms = absint( get_option( 'wp_chatbot_icon_video_delay', 0 ) ) * 1000;
242 -
243 - $wp_chatbot_ball_is_youtube = ($_wpbot_icon_video !== '' && (strpos($_wpbot_icon_video, 'youtube.com') !== false || strpos($_wpbot_icon_video, 'youtu.be') !== false));
244 - $wp_chatbot_ball_is_video = ($_wpbot_icon_video !== '' && !$wp_chatbot_ball_is_youtube);
245 - $wp_chatbot_ball_has_video = ($wp_chatbot_ball_is_youtube || $wp_chatbot_ball_is_video);
246 148 ?>
247 149 <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
248 - alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
249 - id="wp-chatbot-ball-icon-img"
250 - <?php if ($wp_chatbot_ball_has_video) { echo 'style="display:none;"'; } ?> >
251 - <?php if ( $_wpbot_icon_video !== '' ) : ?>
252 - <?php if ( $_wpbot_video_is_youtube && $_wpbot_youtube_embed_src !== '' ) : ?>
253 - <iframe class="wpbot-icon-video" src="<?php echo $_wpbot_video_delay_ms > 0 ? 'about:blank' : esc_url( $_wpbot_youtube_embed_src ); ?>" data-wpbot-yt-src="<?php echo esc_url( $_wpbot_youtube_embed_src ); ?>" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture"></iframe>
254 - <?php elseif ( ! $_wpbot_video_is_youtube ) : ?>
255 - <video class="wpbot-icon-video" src="<?php echo esc_url( $_wpbot_icon_video ); ?>" autoplay muted loop playsinline preload="auto"></video>
256 - <?php endif; ?>
257 - <?php endif; ?>
150 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
151 +
258 152 </div>
259 -
260 153 </div>
261 - <?php
262 - if ( $_wpbot_icon_video !== '' ) :
263 - ?>
264 - <script>
265 - (function(){
266 - var wpbotDelay = <?php echo (int) $_wpbot_video_delay_ms; ?>;
267 - function wpbotForcePlay(){
268 - var v = document.querySelector('#wp-chatbot-ball video.wpbot-icon-video');
269 - if( v ){
270 - v.muted = true;
271 - v.volume = 0;
272 - v.loop = true;
273 - var tries = 0, maxTries = 30;
274 - var timer = setInterval(function(){
275 - tries++;
276 - v.play().then(function(){ clearInterval(timer); }).catch(function(){});
277 - if( tries >= maxTries ) clearInterval(timer);
278 - }, 300);
279 - }
280 - var yt = document.querySelector('#wp-chatbot-ball iframe.wpbot-icon-video');
281 - if( yt ){
282 - var ytSrc = yt.getAttribute('data-wpbot-yt-src');
283 - if( ytSrc && ( !yt.getAttribute('src') || yt.getAttribute('src') === 'about:blank' || yt.getAttribute('src').indexOf('autoplay=1') === -1 ) ){
284 - yt.setAttribute('src', ytSrc);
285 - }
286 - }
287 - }
288 - function wpbotDelayedPlay(){
289 - setTimeout(wpbotForcePlay, wpbotDelay);
290 - }
291 - if( document.readyState === 'loading' ){
292 - document.addEventListener('DOMContentLoaded', wpbotDelayedPlay);
293 - } else {
294 - wpbotDelayedPlay();
295 - }
296 - window.addEventListener('load', function(){
297 - setTimeout(wpbotForcePlay, wpbotDelay);
298 - });
299 - })();
300 - </script>
301 - <?php endif; ?>
302 154 <?php
303 155 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 156 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 157 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -342,11 +194,11 @@
342 194 </div>
343 195
344 196 <?php
345 197
346 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
198 + if ( get_transient( 'bot_clear_cache' ) ) {
347 199 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
348 - delete_transient( 'qcld_bot_clear_cache' );
200 + delete_transient( 'bot_clear_cache' );
349 201 }
350 202
351 203 }else{
352 204 ?>
@@ -416,9 +268,9 @@
416 268 return $wp_chatbot_load;
417 269 }
418 270 //checking Devices
419 271 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
272 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 273 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))) {
422 274 return true;
423 275 } else {
424 276 return false;
@@ -425,10 +277,10 @@
425 277 }
426 278 }
427 279 //Checking wpwbot opening hour
428 280 function wp_chatbot_check_opening_hours(){
429 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
430 - $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')));
431 283 $is_wpwbot_open =false;
432 284 if(get_option('wpwbot_hours')) {
433 285 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
434 286 if (isset($wpwbot_times[$curent_day])) {
@@ -450,16 +302,9 @@
450 302 */
451 303 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 304 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 305 function qcld_wb_chatbot_keyword(){
454 - // Verify nonce for security
455 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
456 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
457 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
458 - wp_die();
459 - }
460 -
461 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
306 + $keyword = sanitize_text_field($_POST['keyword']);
462 307 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 308 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 309 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 310 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -505,9 +350,9 @@
505 350 endwhile;
506 351 wp_reset_postdata();
507 352 $html .= '</ul>';
508 353 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
509 - $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>';
354 + $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>';
510 355 }
511 356 }
512 357 $html .= '</div>';
513 358 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,9 +380,9 @@
535 380 }
536 381 }
537 382 $html .= '</ul>';
538 383 if ($total_product_num > $product_per_page && $product_per_page > 0) {
539 - $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>';
384 + $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>';
540 385 }
541 386 }
542 387 $html .= '</div>';
543 388 }
@@ -552,15 +397,16 @@
552 397 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 398 function qcld_wb_chatbot_category(){
554 399 $category_type="common";
555 400 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
401 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
402 +
557 403 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
404 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 405 }
560 406 $html = "";
561 407 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
408 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 409 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 410 $category_type="hasChilds";
565 411 }
566 412 $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>';
@@ -573,10 +419,10 @@
573 419 */
574 420 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 421 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 422 function qcld_wb_chatbot_sub_category(){
577 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
578 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
423 + $parent_id = stripslashes($_POST['parent_id']);
424 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 425 $html = "";
580 426 foreach ($terms as $term) {
581 427 $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>';
582 428 }
@@ -588,9 +434,9 @@
588 434 */
589 435 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 436 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 437 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
438 + $category_id = stripslashes($_POST['category']);
593 439 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 440 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 441 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
596 442 //Merging all query together.
@@ -827,11 +673,11 @@
827 673 //load more
828 674 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 675 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 676 function qcld_wb_chatbot_load_more(){
831 - $offset = intval( wp_unslash( $_POST['offset'] ) );
832 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
833 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
677 + $offset = stripslashes($_POST['offset']);
678 + $search_type = stripslashes($_POST['search_type']);
679 + $search_term = stripslashes($_POST['search_term']);
834 680 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 681 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 682 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
837 683 $next_offset = intval($product_per_page + $offset);
@@ -962,9 +808,9 @@
962 808 //product details
963 809 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 810 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 811 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
812 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 813 //Tracking product view from chat board
968 814 wp_chatbot_view_track_product_by_id($product_id);
969 815 //wpcommerce product factory
970 816 $wc_pf = new WC_Product_Factory();
@@ -992,9 +838,9 @@
992 838 }
993 839 }
994 840 $product_image .= '</ul></div>';
995 841 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
996 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
842 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 843 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 844 //Handle variable product start
999 845 $variations = "";
1000 846 $add_cart_button = "";
@@ -1037,11 +883,10 @@
1037 883 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 884 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 885 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1040 886 foreach ($values as $value) {
1041 - $attr_key = 'attribute_' . sanitize_title( $name );
1042 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
1043 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
887 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
888 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 889 } else {
1045 890 $selected_value = '';
1046 891 }
1047 892 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1062,15 +907,15 @@
1062 907 $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);
1063 908 wp_send_json($response);
1064 909 }
1065 910 //Add to cart for variable product.
1066 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1067 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1068 -function qcld_variable_add_to_cart(){
1069 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
1070 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
1071 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
1072 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
911 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
912 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
913 +function qcld_wb_chatbot_variable_add_to_cart(){
914 + $product_id = stripslashes($_POST['p_id']);
915 + $quantity = stripslashes($_POST['quantity']);
916 + $variations_id = stripslashes($_POST['variations_id']);
917 + $attrs = stripslashes($_POST['attributes']);
1073 918 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 919 $attributes = array();
1075 920 foreach ($attrs as $attr) {
1076 921 $single = explode("#", $attr);
@@ -1090,10 +935,10 @@
1090 935 //Add to cart for simple product.
1091 936 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 937 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 938 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
939 + $product_id = stripslashes($_POST['product_id']);
940 + $product_quantity = stripslashes($_POST['quantity']);
1096 941 global $wpcommerce;
1097 942 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 943 if ($result != false) {
1099 944 wp_send_json('simple');
@@ -1104,19 +949,15 @@
1104 949 //Support part
1105 950 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 951 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 952 function qcld_wb_chatbot_support_email(){
1108 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1109 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
1110 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
1111 - }
1112 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1113 - $email = sanitize_email(wp_unslash($_POST['email']));
1114 - $message = sanitize_text_field(wp_unslash($_POST['message']));
953 + $name = trim(sanitize_text_field($_POST['name']));
954 + $email = sanitize_email($_POST['email']);
955 + $message = sanitize_text_field($_POST['message']);
1115 956 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1116 957 //Extract Domain
1117 958 $url = get_site_url();
1118 - $url = wp_parse_url($url);
959 + $url = parse_url($url);
1119 960 $domain = $url['host'];
1120 961 //$admin_email = "admin@" . $domain;
1121 962 $admin_email = sanitize_email(get_option('admin_email'));
1122 963 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1126,8 +967,9 @@
1126 967 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 968 }else{
1128 969 $fromEmail = "wordpress@" . $domain;
1129 970 }
971 +
1130 972 //Starting messaging and status.
1131 973 $response['status'] = 'fail';
1132 974 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 975 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1135,14 +977,14 @@
1135 977 $response['status'] = 'fail';
1136 978 } else {
1137 979 //build email body
1138 980 $bodyContent = "";
1139 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1140 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1141 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1142 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1143 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1144 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
981 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
982 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
983 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
984 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
985 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
986 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 987 $to = $toEmail;
1146 988 $body = $bodyContent;
1147 989 $headers = array();
1148 990 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1154,9 +996,9 @@
1154 996 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1155 997 }
1156 998
1157 999 }
1158 - echo wp_json_encode($response);
1000 + echo json_encode($response);
1159 1001 die();
1160 1002 }
1161 1003 //Support Phone
1162 1004 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,15 +1003,14 @@
1161 1003 //Support Phone
1162 1004 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1005 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1006 function qcld_wb_chatbot_support_phone(){
1165 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1166 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1167 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1007 + $name = trim(sanitize_text_field($_POST['name']));
1008 + $phone =sanitize_text_field($_POST['phone']);
1168 1009 $subject = 'WPBot Support Mail Request for Call Back';
1169 1010 //Extract Domain
1170 1011 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1012 + $url = parse_url($url);
1172 1013 $domain = $url['host'];
1173 1014 //$admin_email = "admin@" . $domain;
1174 1015 $admin_email = get_option('admin_email');
1175 1016 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1184,14 +1025,14 @@
1184 1025 $response['status'] = 'fail';
1185 1026 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1186 1027 //build email body
1187 1028 $bodyContent = "";
1188 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1189 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1190 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1191 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1192 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1193 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1029 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1030 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1031 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1032 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1033 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1034 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1035 $to = $toEmail;
1195 1036 $body = $bodyContent;
1196 1037 $headers = array();
1197 1038 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1201,15 +1042,15 @@
1201 1042 if ($result) {
1202 1043 $response['status'] = 'success';
1203 1044 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1204 1045 }
1205 - echo wp_json_encode($response);
1046 + echo json_encode($response);
1206 1047 die();
1207 1048 }
1208 1049 // Order Status part. removed
1209 1050
1210 1051 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1052 + return $items[rand(0, count($items) - 1)];
1212 1053 }
1213 1054 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1055 $refined_mesgses = array();
1215 1056 foreach ($messages as $message) {
@@ -1224,10 +1065,10 @@
1224 1065 // First check the nonce, if it fails the function will break
1225 1066 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1067 // Nonce is checked, get the POST data and sign user on
1227 1068 $info = array();
1228 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1229 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1069 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1070 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1071 $info['remember'] = true;
1231 1072 $user_signon = wp_signon($info, false);
1232 1073 $response = array();
1233 1074 if (is_wp_error($user_signon)) {
@@ -1267,12 +1108,12 @@
1267 1108 if ($response['order_num'] > 0) {
1268 1109 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1269 1110 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1111 <div class="wp-chatbot-orders-header">
1271 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1272 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1273 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1274 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1112 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1113 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1114 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1115 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1116 </div>';
1276 1117 foreach ($customer_orders as $order) {
1277 1118 //Formatting order summery
1278 1119 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1283,9 +1124,9 @@
1283 1124 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1284 1125 }
1285 1126 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1127 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1128 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1129 <div class="order-items">';
1289 1130 $singleOrder = new WC_Order($order->ID);
1290 1131 $items = $singleOrder->get_items();
1291 1132 foreach ($items as $item) {
@@ -1385,9 +1226,9 @@
1385 1226 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1227 <div class="wp-chatbot-product-summary">
1387 1228 <div class="wp-chatbot-product-table">
1388 1229 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1230 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1231 <div class="price">' . $product->get_price_html() . '</div>';
1391 1232 $html .= ' </div>
1392 1233 </div>
1393 1234 </div></a>
@@ -1456,9 +1297,9 @@
1456 1297 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1298 <div class="wp-chatbot-product-summary">
1458 1299 <div class="wp-chatbot-product-table">
1459 1300 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1301 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1302 <div class="price">' . $product->get_price_html() . '</div>';
1462 1303 $html .= ' </div>
1463 1304 </div>
1464 1305 </div></a>
@@ -1468,9 +1309,9 @@
1468 1309 wp_reset_postdata();
1469 1310 $html .= '</ul></div>';
1470 1311 } else {
1471 1312 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1313 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1314 $html .= '</div>';
1474 1315 }
1475 1316 return $html;
1476 1317 }
@@ -1632,12 +1473,11 @@
1632 1473 //Updating the cart items.
1633 1474 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1475 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1476 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1477 //getting cart items n
1638 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1639 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1478 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1479 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1480 global $wpcommerce;
1641 1481 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 1482 wp_send_json($result);
1643 1483 }
@@ -1644,11 +1484,10 @@
1644 1484 //Show item after removing from cart page.
1645 1485 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1486 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1487 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1488 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1489 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1490 global $wpcommerce;
1652 1491 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 1492 wp_send_json($result);
1654 1493 }
@@ -1685,9 +1524,9 @@
1685 1524 $response = array('status' => $status, 'html' => $html);
1686 1525 wp_send_json($response);
1687 1526 }
1688 1527 //_dynamic_intent
1689 -function qcld_dynamic_intent(){
1528 +function qc_dynamic_intent(){
1690 1529 global $wpdb;
1691 1530 $intents = array();
1692 1531
1693 1532 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1704,9 +1543,9 @@
1704 1543
1705 1544 if(class_exists('Qcformbuilder_Forms_Admin')){
1706 1545
1707 1546
1708 - $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
1547 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); //DB Call OK, No Caching OK
1709 1548
1710 1549 if(!empty($results)){
1711 1550
1712 1551 foreach($results as $result){
@@ -1731,10 +1570,10 @@
1731 1570 // function qcld_wb_chatbot_checkout_user_login(){
1732 1571 // // Nonce is checked, get the POST data and sign user on
1733 1572 // $info = array();
1734 1573 // //$info['nonce'] = $_POST['nonce_val'];
1735 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1736 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1574 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1575 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1737 1576 // $info['remember'] = true;
1738 1577 // $user_signon = wp_signon($info, false);
1739 1578 // // $response=$info;
1740 1579 // $response = array();
@@ -1775,16 +1614,15 @@
1775 1614 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1615 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1616 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1617 //Mobile App page create
1779 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1780 - if ( ! $existing_app->have_posts() ) {
1618 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1619 //post status and options
1782 1620 $app_page = array(
1783 1621 'comment_status' => 'closed',
1784 1622 'ping_status' => 'closed',
1785 1623 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1624 + 'post_date' => date('Y-m-d H:i:s'),
1787 1625 'post_status' => 'publish',
1788 1626 'post_title' => 'wpwBot Mobile App',
1789 1627 'post_name' => 'wpwbot-mobile-app',
1790 1628 'post_type' => 'page',
@@ -1794,16 +1632,15 @@
1794 1632 //save the id in the database
1795 1633 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1634 }
1797 1635 //App checkout page create
1798 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1799 - if ( ! $existing_checkout->have_posts() ) {
1636 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1637 //post status and options
1801 1638 $checkout_page = array(
1802 1639 'comment_status' => 'closed',
1803 1640 'ping_status' => 'closed',
1804 1641 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1642 + 'post_date' => date('Y-m-d H:i:s'),
1806 1643 'post_status' => 'publish',
1807 1644 'post_title' => 'wpwBot App Checkout',
1808 1645 'post_name' => 'wpwbot-app-checkout',
1809 1646 'post_type' => 'page',
@@ -1813,16 +1650,15 @@
1813 1650 //save the id in the database
1814 1651 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1652 }
1816 1653 //App Order thank you page create
1817 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1818 - if ( ! $existing_thankyou->have_posts() ) {
1654 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1655 //post status and options
1820 1656 $thankyou_page = array(
1821 1657 'comment_status' => 'closed',
1822 1658 'ping_status' => 'closed',
1823 1659 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1660 + 'post_date' => date('Y-m-d H:i:s'),
1825 1661 'post_status' => 'publish',
1826 1662 'post_title' => 'wpwBot App Order Thank You',
1827 1663 'post_name' => 'wpwbot-app-order-thankyou',
1828 1664 'post_type' => 'page',
@@ -1833,9 +1669,9 @@
1833 1669 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1670 }
1835 1671 }
1836 1672 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1673 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1674 if (!isset($_COOKIE['from_app'])) {
1839 1675 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1676 }
1841 1677 }
@@ -1849,9 +1685,9 @@
1849 1685 global $wp;
1850 1686 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1687 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1688 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1689 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1690 exit;
1855 1691 }
1856 1692 } else {
1857 1693 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1695,9 @@
1859 1695 }
1860 1696 }
1861 1697
1862 1698 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1699 + return $array[array_rand($array)];
1867 1700 }
1868 1701
1869 1702 //User session count
1870 1703 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1703,8 @@
1870 1703 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1704 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1705 function qcld_wb_chatbot_session_count(){
1873 1706 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1707 global $wpdb;
1876 1708 $wpdb->show_errors = true;
1877 1709 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1710 $response = array();
@@ -1877,22 +1709,22 @@
1877 1709 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1710 $response = array();
1879 1711
1880 1712
1881 - $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
1713 + $session_exists = $wpdb->get_row($wpdb->prepare("select * from $tableuser where 1 and id = %d",1)); //DB Call OK, No Caching OK
1882 1714
1883 1715 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1716 + $wpdb->insert(
1885 1717 $tableuser,
1886 1718 array(
1887 1719 'session' => 1,
1888 1720 )
1889 - );
1721 + ); //DB Call OK, No Caching OK
1890 1722 }else{
1891 1723
1892 1724 $session_id = $session_exists->id;
1893 1725
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1726 + $wpdb->update(
1895 1727 $tableuser,
1896 1728 array(
1897 1729 'session'=>($session_exists->session+1),
1898 1730 ),
@@ -1900,9 +1732,9 @@
1900 1732 array(
1901 1733 '%d',
1902 1734 ),
1903 1735 array('%d')
1904 - );
1736 + ); //DB Call OK, No Caching OK
1905 1737
1906 1738 }
1907 1739
1908 1740 wp_send_json($response);
@@ -1910,9 +1742,9 @@
1910 1742
1911 1743 /* WPBot Chat History Addon check */
1912 1744 function qcld_wpbot_is_active_chat_history(){
1913 1745
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1746 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1747 return 1;
1916 1748 }else{
1917 1749 return 0;
1918 1750 }
@@ -1918,9 +1750,9 @@
1918 1750 }
1919 1751
1920 1752 }
1921 1753
1922 -function qcld_wpbot_input_validation( $data ) {
1754 +function qc_wpbot_input_validation( $data ) {
1923 1755 $data = html_entity_decode($data);
1924 1756 $data = trim($data);
1925 1757 $data = stripslashes($data);
1926 1758 $data = htmlspecialchars($data);
@@ -1925,13 +1757,11 @@
1925 1757 $data = stripslashes($data);
1926 1758 $data = htmlspecialchars($data);
1927 1759 return $data;
1928 1760 }
1929 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1930 -function qcld_small_talk_import(){
1931 - if ( ! current_user_can( 'manage_options' ) ) {
1932 - wp_die();
1933 - }
1761 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1762 +function small_talk_import(){
1763 +
1934 1764 global $wpdb;
1935 1765
1936 1766 $table = $wpdb->prefix.'wpbot_response';
1937 1767
@@ -1938,10 +1768,9 @@
1938 1768 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 1769
1940 1770 foreach ($csvFile as $line) {
1941 1771 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1772 + $wpdb->insert($table, array(
1944 1773 'query' => $line[0],
1945 1774 'keyword' => $line[1],
1946 1775 'response' => $line[2],
1947 1776 'category'=> $line[3],
@@ -1946,17 +1775,16 @@
1946 1775 'response' => $line[2],
1947 1776 'category'=> $line[3],
1948 1777 'intent'=> '',
1949 1778 //'lang'=> 'en_US',
1950 - ));
1779 + )); //DB Call OK, No Caching OK
1951 1780 }
1952 1781
1953 1782 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 1783
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1784 + $wpdb->insert($table2, array(
1957 1785 'name' => 'smalltalk',
1958 - ));
1786 + )); //DB Call OK, No Caching OK
1959 1787
1960 1788 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1789
1962 1790 }
@@ -1975,33 +1803,5 @@
1975 1803 }
1976 1804 function qcld_wpbot_meta_tags() {
1977 1805 echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1978 1806 }
1979 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1980 -
1981 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1982 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1983 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1984 - function qcld_change_language_from_center() {
1985 - if ( ! current_user_can( 'manage_options' ) ) {
1986 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1987 - }
1988 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1989 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1990 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1991 - }
1992 - $plugin_path = plugin_dir_path( __FILE__ );
1993 - include $plugin_path . 'includes/admin/settings-fields.php';
1994 - $json_file_path = $plugin_path . 'includes/language-center.json';
1995 -
1996 - $json_string = file_get_contents( $json_file_path );
1997 - if ( isset( $_POST['language'] ) ) {
1998 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1999 - $language_array= json_decode($json_string)->$language;
2000 - update_option( 'wp_chatbot_language_center_language', $language );
2001 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
2002 - } else {
2003 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
2004 -
2005 - }
2006 - }
2007 -}
1807 +add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);