PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.7.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.7.8
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 +324 -346 8.6.94.7.8 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,9 @@
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 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
124 32 }
125 33 ?>
126 34 </style>
127 35
@@ -146,33 +54,33 @@
146 54 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 56 // }
149 57 ?>
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';} ?>">
58 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
151 59 <div id="wp-chatbot-integration-container">
152 60 <div class="wp-chatbot-integration-button-container">
153 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 62 <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>
63 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
156 64 <?php } ?>
157 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
158 66 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
159 67 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 69 <?php } ?>
162 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
163 71 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
164 72 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
166 74 <?php } ?>
167 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
168 76 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
169 77 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
171 79 <?php } ?>
172 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
173 81 <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>
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
175 83 <?php } ?>
176 84 </div>
177 85 </div>
178 86 <?php
@@ -185,9 +93,9 @@
185 93 }
186 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 96 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 98 }
191 99 ?>
192 100 <?php
193 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -194,9 +102,9 @@
194 102 ?>
195 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
196 104 <div class="wp-chatbot-notification-controller">
197 105 <span class="wp-chatbot-notification-close">
198 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
199 107 </span>
200 108 </div>
201 109 <?php
202 110 $testingTip="";
@@ -209,9 +117,9 @@
209 117 }
210 118 ?>
211 119 <div class="wp-chatbot-notification-agent-profile">
212 120 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - 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>
214 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>
215 123 </div>
216 124 <?php
217 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -227,79 +135,20 @@
227 135 <div class="wp-chatbot-ball">
228 136 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
229 137 <?php
230 138 if (get_option('wp_chatbot_icon') == "custom.png") {
231 - $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';
232 -
139 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
233 140 } else if (get_option('wp_chatbot_icon') != "custom.png") {
234 141 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 142 } else {
236 143 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 144 }
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 145 ?>
247 146 <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; ?>
147 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
148 +
258 149 </div>
259 -
260 150 </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 151 <?php
303 152 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 153 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 154 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -342,11 +191,11 @@
342 191 </div>
343 192
344 193 <?php
345 194
346 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
195 + if ( get_transient( 'bot_clear_cache' ) ) {
347 196 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
348 - delete_transient( 'qcld_bot_clear_cache' );
197 + delete_transient( 'bot_clear_cache' );
349 198 }
350 199
351 200 }else{
352 201 ?>
@@ -416,9 +265,9 @@
416 265 return $wp_chatbot_load;
417 266 }
418 267 //checking Devices
419 268 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
269 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 270 if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
422 271 return true;
423 272 } else {
424 273 return false;
@@ -425,10 +274,10 @@
425 274 }
426 275 }
427 276 //Checking wpwbot opening hour
428 277 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')));
278 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
279 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 280 $is_wpwbot_open =false;
432 281 if(get_option('wpwbot_hours')) {
433 282 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
434 283 if (isset($wpwbot_times[$curent_day])) {
@@ -443,8 +292,183 @@
443 292 }
444 293 }
445 294 return $is_wpwbot_open;
446 295 }
296 +//wpwBot shortcode.
297 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
298 +function wp_chatbot_short_code($atts = []){
299 + ob_start();
300 + wp_chatbot_shortcode_dom($atts);
301 + $content = ob_get_clean();
302 + return $content;
303 +}
304 +function wp_chatbot_shortcode_dom($atts){
305 + //Defaults & Set Parameters for shortcode
306 + extract(shortcode_atts(
307 + array(
308 + 'template' => '01',
309 + ), $atts
310 + ));
311 + ?>
312 + <style>
313 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
314 + </style>
315 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
316 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
317 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
318 + } else {
319 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
320 + }
321 + ?>
322 + <style>
323 + .wp-chatbot-container {
324 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
325 + }
326 + </style>
327 +<?php }
328 + $wp_chatbot_enable_rtl = "";
329 + if (get_option('enable_wp_chatbot_rtl')) {
330 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
331 + }
332 + ?>
333 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
334 + <?php
335 + //Get wpcommerce cart
336 +
337 + $qcld_wb_chatbot_theme = 'template-' . $template;
338 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
339 + wp_register_style('qcld-wp-chatbot-style', plugins_url(basename(plugin_dir_path(__FILE__)) . '/templates/' . $qcld_wb_chatbot_theme . '/style.css', basename(__FILE__)), '', QCLD_wpCHATBOT_VERSION, 'screen');
340 + wp_enqueue_style('qcld-wp-chatbot-style');
341 + }
342 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
343 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
344 + } else {
345 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
346 + }
347 + ?>
348 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
349 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
350 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
351 + <?php
352 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
353 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
354 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
355 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
356 + } else {
357 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
358 + }
359 + ?>
360 + <div class="wp-chatbot-notification-agent-profile">
361 + <div class="wp-chatbot-notification-widget-avatar"><img
362 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
363 + <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
364 + </div>
365 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
366 + </div>
367 + <!--wp-chatbot-board-container-->
368 + <div id="wp-chatbot-ball" class="">
369 + <div class="wp-chatbot-ball">
370 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
371 + <?php
372 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
373 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
374 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
375 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
376 + } else {
377 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
378 + }
379 + ?>
380 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
381 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
382 + </div>
383 + <!-- wp-chatbot-board-container-->
384 + <?php endif; ?>
385 + <!--container-->
386 + <!--wp-chatbot-ball-wrapper-->
387 + </div>
388 +<?php } ?>
389 +<?php
390 +//Create shortcode for wpwBot for pages.
391 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
392 +function wp_chatbot_page_short_code(){
393 + ob_start();
394 + wp_chatbot_page_dom();
395 + $content = ob_get_clean();
396 + return $content;
397 +}
398 +function wp_chatbot_page_dom(){ ?>
399 + <style>
400 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
401 + </style>
402 + <?php
403 + //Get wpcommerce cart
404 +
405 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
406 + $wp_chatbot_enable_rtl = "";
407 + if (get_option('enable_wp_chatbot_rtl') == 1) {
408 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
409 + }
410 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
411 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
412 + } else {
413 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
414 + }
415 +}
416 +//shortcode for wpWBot mobile app
417 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
418 +function wp_chatbot_mobile_app_short_code(){ ?>
419 + <style>
420 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
421 + </style>
422 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
423 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
424 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
425 + } else {
426 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
427 + }
428 + ?>
429 + <style>
430 + .wp-chatbot-container {
431 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
432 + }
433 + </style>
434 +<?php }
435 + $wp_chatbot_enable_rtl = "";
436 + if (get_option('enable_wp_chatbot_rtl') == '1') {
437 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
438 + }
439 + ?>
440 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
441 + <?php
442 + // keep traking app template.
443 + $template_app = 'yes';
444 + //Get wpcommerce cart
445 +
446 + //Handling shortcode enqeue and remove features part.
447 + define('wpCOMMERCE', true);
448 + wp_enqueue_script('jquery');
449 +
450 +
451 + wp_enqueue_script('wc-address-i18n');
452 + wp_enqueue_script('wc-country-select');
453 +
454 +
455 + // add the action
456 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
457 + if (!isset($_COOKIE['from_app'])) {
458 + setcookie('from_app', 'yes', time() + 3600);
459 + }
460 + }
461 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
462 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
463 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
464 + } else {
465 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
466 + }
467 + ?>
468 + </div>
469 + <?php
470 +}
447 471
448 472 /**
449 473 * wpwBot Search keyword product
450 474 */
@@ -450,16 +474,9 @@
450 474 */
451 475 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 476 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 477 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']));
478 + $keyword = sanitize_text_field($_POST['keyword']);
462 479 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 480 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 481 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 482 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -505,9 +522,9 @@
505 522 endwhile;
506 523 wp_reset_postdata();
507 524 $html .= '</ul>';
508 525 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>';
526 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $keyword . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
510 527 }
511 528 }
512 529 $html .= '</div>';
513 530 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,9 +552,9 @@
535 552 }
536 553 }
537 554 $html .= '</ul>';
538 555 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>';
556 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $more_product_ids . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
540 557 }
541 558 }
542 559 $html .= '</div>';
543 560 }
@@ -552,15 +569,16 @@
552 569 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 570 function qcld_wb_chatbot_category(){
554 571 $category_type="common";
555 572 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
573 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
574 +
557 575 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
576 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 577 }
560 578 $html = "";
561 579 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
580 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 581 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 582 $category_type="hasChilds";
565 583 }
566 584 $html .= '<span class="qcld-chatbot-product-category" data-category-type="' . $category_type . '" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
@@ -573,10 +591,10 @@
573 591 */
574 592 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 593 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 594 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' ) );
595 + $parent_id = stripslashes($_POST['parent_id']);
596 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 597 $html = "";
580 598 foreach ($terms as $term) {
581 599 $html .= '<span class="qcld-chatbot-product-category" data-category-type="common" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
582 600 }
@@ -588,9 +606,9 @@
588 606 */
589 607 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 608 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 609 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
610 + $category_id = stripslashes($_POST['category']);
593 611 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 612 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 613 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
596 614 //Merging all query together.
@@ -827,11 +845,11 @@
827 845 //load more
828 846 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 847 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 848 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'] ) );
849 + $offset = stripslashes($_POST['offset']);
850 + $search_type = stripslashes($_POST['search_type']);
851 + $search_term = stripslashes($_POST['search_term']);
834 852 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 853 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 854 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
837 855 $next_offset = intval($product_per_page + $offset);
@@ -962,9 +980,9 @@
962 980 //product details
963 981 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 982 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 983 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
984 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 985 //Tracking product view from chat board
968 986 wp_chatbot_view_track_product_by_id($product_id);
969 987 //wpcommerce product factory
970 988 $wc_pf = new WC_Product_Factory();
@@ -992,9 +1010,9 @@
992 1010 }
993 1011 }
994 1012 $product_image .= '</ul></div>';
995 1013 $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>';
1014 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 1015 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 1016 //Handle variable product start
999 1017 $variations = "";
1000 1018 $add_cart_button = "";
@@ -1037,11 +1055,10 @@
1037 1055 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1056 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 1057 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1040 1058 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 ] ) );
1059 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1060 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1061 } else {
1045 1062 $selected_value = '';
1046 1063 }
1047 1064 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1062,15 +1079,15 @@
1062 1079 $response = array('title' => $product_title, 'description' => $product_desc, 'image' => $product_image, 'price' => $product_price, 'sku' => $product_sku, 'quantity' => $product_quantity, 'buttton' => $add_cart_button, 'variation' => $variations, 'type' => $product_type, 'debug' => $debug);
1063 1080 wp_send_json($response);
1064 1081 }
1065 1082 //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();
1083 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1084 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1085 +function qcld_wb_chatbot_variable_add_to_cart(){
1086 + $product_id = stripslashes($_POST['p_id']);
1087 + $quantity = stripslashes($_POST['quantity']);
1088 + $variations_id = stripslashes($_POST['variations_id']);
1089 + $attrs = stripslashes($_POST['attributes']);
1073 1090 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1091 $attributes = array();
1075 1092 foreach ($attrs as $attr) {
1076 1093 $single = explode("#", $attr);
@@ -1090,10 +1107,10 @@
1090 1107 //Add to cart for simple product.
1091 1108 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1109 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1110 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1111 + $product_id = stripslashes($_POST['product_id']);
1112 + $product_quantity = stripslashes($_POST['quantity']);
1096 1113 global $wpcommerce;
1097 1114 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1115 if ($result != false) {
1099 1116 wp_send_json('simple');
@@ -1104,19 +1121,15 @@
1104 1121 //Support part
1105 1122 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1123 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1124 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']));
1125 + $name = trim(sanitize_text_field($_POST['name']));
1126 + $email = sanitize_email($_POST['email']);
1127 + $message = sanitize_text_field($_POST['message']);
1115 1128 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1116 1129 //Extract Domain
1117 1130 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1131 + $url = parse_url($url);
1119 1132 $domain = $url['host'];
1120 1133 //$admin_email = "admin@" . $domain;
1121 1134 $admin_email = sanitize_email(get_option('admin_email'));
1122 1135 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1126,8 +1139,9 @@
1126 1139 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 1140 }else{
1128 1141 $fromEmail = "wordpress@" . $domain;
1129 1142 }
1143 +
1130 1144 //Starting messaging and status.
1131 1145 $response['status'] = 'fail';
1132 1146 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 1147 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1135,14 +1149,14 @@
1135 1149 $response['status'] = 'fail';
1136 1150 } else {
1137 1151 //build email body
1138 1152 $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>';
1153 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1154 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1155 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1156 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1157 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1158 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 1159 $to = $toEmail;
1146 1160 $body = $bodyContent;
1147 1161 $headers = array();
1148 1162 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1154,9 +1168,9 @@
1154 1168 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1155 1169 }
1156 1170
1157 1171 }
1158 - echo wp_json_encode($response);
1172 + echo json_encode($response);
1159 1173 die();
1160 1174 }
1161 1175 //Support Phone
1162 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,15 +1175,14 @@
1161 1175 //Support Phone
1162 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1177 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1178 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']));
1179 + $name = trim(sanitize_text_field($_POST['name']));
1180 + $phone =sanitize_text_field($_POST['phone']);
1168 1181 $subject = 'WPBot Support Mail Request for Call Back';
1169 1182 //Extract Domain
1170 1183 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1184 + $url = parse_url($url);
1172 1185 $domain = $url['host'];
1173 1186 //$admin_email = "admin@" . $domain;
1174 1187 $admin_email = get_option('admin_email');
1175 1188 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1184,14 +1197,14 @@
1184 1197 $response['status'] = 'fail';
1185 1198 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1186 1199 //build email body
1187 1200 $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>';
1201 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1202 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1203 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1204 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1205 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1206 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1207 $to = $toEmail;
1195 1208 $body = $bodyContent;
1196 1209 $headers = array();
1197 1210 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1201,15 +1214,36 @@
1201 1214 if ($result) {
1202 1215 $response['status'] = 'success';
1203 1216 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1204 1217 }
1205 - echo wp_json_encode($response);
1218 + echo json_encode($response);
1206 1219 die();
1207 1220 }
1208 -// Order Status part. removed
1209 -
1221 +// Order Status part.
1222 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1223 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1224 +function qcld_wb_chatbot_check_user(){
1225 + global $wpcommerce;
1226 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1227 + $response = array();
1228 + $response['message'] = "";
1229 + if (username_exists($user_name)) {
1230 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1231 + $response['status'] = "success";
1232 + $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks'))));
1233 + $response['html'] .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password')))) . '</p>';
1234 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1235 + $response = get_order_by_username($user_name);
1236 + }
1237 + } else {
1238 + $response['status'] = "fail";
1239 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist'))));
1240 + }
1241 + wp_send_json($response);
1242 + die();
1243 +}
1210 1244 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1245 + return $items[rand(0, count($items) - 1)];
1212 1246 }
1213 1247 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1248 $refined_mesgses = array();
1215 1249 foreach ($messages as $message) {
@@ -1224,10 +1258,10 @@
1224 1258 // First check the nonce, if it fails the function will break
1225 1259 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1260 // Nonce is checked, get the POST data and sign user on
1227 1261 $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'])));
1262 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1263 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1264 $info['remember'] = true;
1231 1265 $user_signon = wp_signon($info, false);
1232 1266 $response = array();
1233 1267 if (is_wp_error($user_signon)) {
@@ -1267,12 +1301,12 @@
1267 1301 if ($response['order_num'] > 0) {
1268 1302 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1269 1303 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1304 <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>
1305 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1306 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1307 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1308 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1309 </div>';
1276 1310 foreach ($customer_orders as $order) {
1277 1311 //Formatting order summery
1278 1312 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1283,9 +1317,9 @@
1283 1317 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1284 1318 }
1285 1319 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1320 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1321 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1322 <div class="order-items">';
1289 1323 $singleOrder = new WC_Order($order->ID);
1290 1324 $items = $singleOrder->get_items();
1291 1325 foreach ($items as $item) {
@@ -1385,9 +1419,9 @@
1385 1419 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1420 <div class="wp-chatbot-product-summary">
1387 1421 <div class="wp-chatbot-product-table">
1388 1422 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1423 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1424 <div class="price">' . $product->get_price_html() . '</div>';
1391 1425 $html .= ' </div>
1392 1426 </div>
1393 1427 </div></a>
@@ -1456,9 +1490,9 @@
1456 1490 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1491 <div class="wp-chatbot-product-summary">
1458 1492 <div class="wp-chatbot-product-table">
1459 1493 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1494 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1495 <div class="price">' . $product->get_price_html() . '</div>';
1462 1496 $html .= ' </div>
1463 1497 </div>
1464 1498 </div></a>
@@ -1468,9 +1502,9 @@
1468 1502 wp_reset_postdata();
1469 1503 $html .= '</ul></div>';
1470 1504 } else {
1471 1505 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1506 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1507 $html .= '</div>';
1474 1508 }
1475 1509 return $html;
1476 1510 }
@@ -1632,12 +1666,11 @@
1632 1666 //Updating the cart items.
1633 1667 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1668 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1669 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1670 //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']));
1671 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1672 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1673 global $wpcommerce;
1641 1674 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 1675 wp_send_json($result);
1643 1676 }
@@ -1644,11 +1677,10 @@
1644 1677 //Show item after removing from cart page.
1645 1678 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1679 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1680 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1681 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1682 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1683 global $wpcommerce;
1652 1684 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 1685 wp_send_json($result);
1654 1686 }
@@ -1685,9 +1717,9 @@
1685 1717 $response = array('status' => $status, 'html' => $html);
1686 1718 wp_send_json($response);
1687 1719 }
1688 1720 //_dynamic_intent
1689 -function qcld_dynamic_intent(){
1721 +function qc_dynamic_intent(){
1690 1722 global $wpdb;
1691 1723 $intents = array();
1692 1724
1693 1725 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1704,10 +1736,9 @@
1704 1736
1705 1737 if(class_exists('Qcformbuilder_Forms_Admin')){
1706 1738
1707 1739
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
1709 -
1740 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1710 1741 if(!empty($results)){
1711 1742
1712 1743 foreach($results as $result){
1713 1744 $form = maybe_unserialize($result->config);
@@ -1725,28 +1756,28 @@
1725 1756
1726 1757 }
1727 1758
1728 1759 //User login on Checkout page.
1729 -// add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1730 -// add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1731 -// function qcld_wb_chatbot_checkout_user_login(){
1732 -// // Nonce is checked, get the POST data and sign user on
1733 -// $info = array();
1734 -// //$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'])));
1737 -// $info['remember'] = true;
1738 -// $user_signon = wp_signon($info, false);
1739 -// // $response=$info;
1740 -// $response = array();
1741 -// if (is_wp_error($user_signon)) {
1742 -// // $response['status'] = "fail";
1743 -// $response = "no";
1744 -// } else {
1745 -// $response = "yes";
1746 -// }
1747 -// wp_send_json($response);
1748 -// }
1760 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1761 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1762 +function qcld_wb_chatbot_checkout_user_login(){
1763 + // Nonce is checked, get the POST data and sign user on
1764 + $info = array();
1765 + //$info['nonce'] = $_POST['nonce_val'];
1766 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1767 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1768 + $info['remember'] = true;
1769 + $user_signon = wp_signon($info, false);
1770 + // $response=$info;
1771 + $response = array();
1772 + if (is_wp_error($user_signon)) {
1773 + // $response['status'] = "fail";
1774 + $response = "no";
1775 + } else {
1776 + $response = "yes";
1777 + }
1778 + wp_send_json($response);
1779 +}
1749 1780 // Load template for App Order Thank You page url
1750 1781 function wp_chatbot_load_app_template($template){
1751 1782 if (is_page('wpwbot-mobile-app')) {
1752 1783 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1775,16 +1806,15 @@
1775 1806 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1807 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1808 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1809 //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() ) {
1810 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1811 //post status and options
1782 1812 $app_page = array(
1783 1813 'comment_status' => 'closed',
1784 1814 'ping_status' => 'closed',
1785 1815 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1816 + 'post_date' => date('Y-m-d H:i:s'),
1787 1817 'post_status' => 'publish',
1788 1818 'post_title' => 'wpwBot Mobile App',
1789 1819 'post_name' => 'wpwbot-mobile-app',
1790 1820 'post_type' => 'page',
@@ -1794,16 +1824,15 @@
1794 1824 //save the id in the database
1795 1825 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1826 }
1797 1827 //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() ) {
1828 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1829 //post status and options
1801 1830 $checkout_page = array(
1802 1831 'comment_status' => 'closed',
1803 1832 'ping_status' => 'closed',
1804 1833 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1834 + 'post_date' => date('Y-m-d H:i:s'),
1806 1835 'post_status' => 'publish',
1807 1836 'post_title' => 'wpwBot App Checkout',
1808 1837 'post_name' => 'wpwbot-app-checkout',
1809 1838 'post_type' => 'page',
@@ -1813,16 +1842,15 @@
1813 1842 //save the id in the database
1814 1843 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1844 }
1816 1845 //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() ) {
1846 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1847 //post status and options
1820 1848 $thankyou_page = array(
1821 1849 'comment_status' => 'closed',
1822 1850 'ping_status' => 'closed',
1823 1851 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1852 + 'post_date' => date('Y-m-d H:i:s'),
1825 1853 'post_status' => 'publish',
1826 1854 'post_title' => 'wpwBot App Order Thank You',
1827 1855 'post_name' => 'wpwbot-app-order-thankyou',
1828 1856 'post_type' => 'page',
@@ -1833,9 +1861,9 @@
1833 1861 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1862 }
1835 1863 }
1836 1864 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1865 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1866 if (!isset($_COOKIE['from_app'])) {
1839 1867 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1868 }
1841 1869 }
@@ -1849,9 +1877,9 @@
1849 1877 global $wp;
1850 1878 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1879 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1880 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1881 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1882 exit;
1855 1883 }
1856 1884 } else {
1857 1885 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1887,9 @@
1859 1887 }
1860 1888 }
1861 1889
1862 1890 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1891 + return $array[array_rand($array)];
1867 1892 }
1868 1893
1869 1894 //User session count
1870 1895 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1895,8 @@
1870 1895 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1896 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1897 function qcld_wb_chatbot_session_count(){
1873 1898 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1899 global $wpdb;
1876 1900 $wpdb->show_errors = true;
1877 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1902 $response = array();
@@ -1877,12 +1901,11 @@
1877 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1902 $response = array();
1879 1903
1880 1904
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
1882 -
1905 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1906 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1907 + $wpdb->insert(
1885 1908 $tableuser,
1886 1909 array(
1887 1910 'session' => 1,
1888 1911 )
@@ -1889,10 +1912,9 @@
1889 1912 );
1890 1913 }else{
1891 1914
1892 1915 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1916 + $wpdb->update(
1895 1917 $tableuser,
1896 1918 array(
1897 1919 'session'=>($session_exists->session+1),
1898 1920 ),
@@ -1901,9 +1923,8 @@
1901 1923 '%d',
1902 1924 ),
1903 1925 array('%d')
1904 1926 );
1905 -
1906 1927 }
1907 1928
1908 1929 wp_send_json($response);
1909 1930 }
@@ -1910,9 +1931,9 @@
1910 1931
1911 1932 /* WPBot Chat History Addon check */
1912 1933 function qcld_wpbot_is_active_chat_history(){
1913 1934
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1935 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1936 return 1;
1916 1937 }else{
1917 1938 return 0;
1918 1939 }
@@ -1918,9 +1939,9 @@
1918 1939 }
1919 1940
1920 1941 }
1921 1942
1922 -function qcld_wpbot_input_validation( $data ) {
1943 +function qc_wpbot_input_validation( $data ) {
1923 1944 $data = html_entity_decode($data);
1924 1945 $data = trim($data);
1925 1946 $data = stripslashes($data);
1926 1947 $data = htmlspecialchars($data);
@@ -1925,23 +1946,16 @@
1925 1946 $data = stripslashes($data);
1926 1947 $data = htmlspecialchars($data);
1927 1948 return $data;
1928 1949 }
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 - }
1950 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1951 +function small_talk_import(){
1934 1952 global $wpdb;
1935 -
1936 1953 $table = $wpdb->prefix.'wpbot_response';
1937 -
1938 1954 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 -
1940 1955 foreach ($csvFile as $line) {
1941 1956 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1957 + $wpdb->insert($table, array(
1944 1958 'query' => $line[0],
1945 1959 'keyword' => $line[1],
1946 1960 'response' => $line[2],
1947 1961 'category'=> $line[3],
@@ -1948,16 +1962,12 @@
1948 1962 'intent'=> '',
1949 1963 //'lang'=> 'en_US',
1950 1964 ));
1951 1965 }
1952 -
1953 1966 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 -
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1967 + $wpdb->insert($table2, array(
1957 1968 'name' => 'smalltalk',
1958 1969 ));
1959 -
1960 1970 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1971
1962 1972 }
1963 1973 function sanitize_array( &$array ) {
@@ -1964,44 +1974,12 @@
1964 1974 if (!empty($array)) {
1965 1975 foreach ($array as &$value) {
1966 1976 if( !is_array($value) )
1967 1977 // sanitize if value is not an array
1968 - $value = sanitize_text_field( esc_html($value) );
1978 + $value = sanitize_text_field( $value );
1969 1979 else
1970 1980 // go inside this function again
1971 - sanitize_array(esc_html($value));
1981 + $this->sanitize_array($value);
1972 1982 }
1973 1983 }
1974 1984 return $array;
1975 -}
1976 -function qcld_wpbot_meta_tags() {
1977 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1978 -}
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 -}
1985 +}