PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.3.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.3.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 +463 -498 8.7.34.3.8 View file →
@@ -3,117 +3,23 @@
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(){
51 - if(document.querySelector('.wp-block-legacy-widget__edit-preview-iframe')){
52 - document.querySelector('.wp-block-legacy-widget__edit-preview-iframe').addEventListener("load", ev => {
53 - jQuery('.wp-block-legacy-widget__edit-preview-iframe').contents().find('#wp-chatbot-chat-container').hide();
54 - });
55 -
56 - }
14 + document.querySelector('.wp-block-legacy-widget__edit-preview-iframe').addEventListener("load", ev => {
15 + jQuery('.wp-block-legacy-widget__edit-preview-iframe').contents().find('#wp-chatbot-chat-container').hide();
16 + });
57 17 }, 500);
58 18 });
59 19 </script>
60 20 <?php
61 21 }
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 22 function wp_chatbot_load_footer_html(){
117 23 if ( get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 24
119 25 ?>
@@ -118,10 +24,9 @@
118 24
119 25 ?>
120 26 <style>
121 27 <?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
28 + echo get_option('wp_chatbot_custom_css');
124 29 }
125 30 ?>
126 31 </style>
127 32
@@ -133,63 +38,46 @@
133 38 }
134 39 ?>
135 40 <style>
136 41 .wp-chatbot-container {
137 - background-color: #eceef3 !important;
138 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
139 - background-size: cover !important;
140 - background-position: center !important;
141 - background-repeat: no-repeat !important;
42 + background-image: url(<?php echo $qcld_wb_chatbot_board_bg_path; ?>) !important;
142 43 }
143 - .wp-chatbot-template-01 #wp-chatbot-board-container,
144 - .wp-chatbot-template-01 .wp-chatbot-board-container {
145 - background-color: #eceef3 !important;
146 - background-image: none !important;
147 - }
148 - .wp-chatbot-template-01 #wp-chatbot-board-container::before,
149 - .wp-chatbot-template-01 .wp-chatbot-board-container::before {
150 - background-color: #eceef3 !important;
151 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
152 - background-size: cover !important;
153 - background-position: center !important;
154 - background-repeat: no-repeat !important;
155 - }
156 44 </style>
157 45 <?php }
158 46 $wp_chatbot_enable_rtl = "";
159 - if (get_option('enable_wp_chatbot_rtl') == '1') {
47 + if (get_option('enable_wp_chatbot_rtl')) {
160 48 $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
161 49 }
162 50 $wp_chatbot_enable_mobile_screen = "";
163 - // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
51 + if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
164 52 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
165 - // }
53 + }
166 54 ?>
167 - <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';} ?>">
55 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen; ?>">
168 56 <div id="wp-chatbot-integration-container">
169 57 <div class="wp-chatbot-integration-button-container">
170 58 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
171 - <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
172 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
59 + <a href="skype:<?php echo get_option('enable_wp_chatbot_skype_id'); ?>?chat"><span
60 + class="inetegration-skype-btn" title="<?php esc_html_e('Skype', 'wpchatbot'); ?>"> </span></a>
173 61 <?php } ?>
174 62 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
175 - <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
63 + <a href="<?php echo 'https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num'); ?>"
176 64 target="_blank"><span class="intergration-whats"
177 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
65 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
178 66 <?php } ?>
179 67 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
180 - <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
68 + <a href="<?php echo 'https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc'); ?>"
181 69 target="_blank"><span class="intergration-viber"
182 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
70 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
183 71 <?php } ?>
184 72 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
185 - <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
73 + <a href="tel:<?php echo get_option('qlcd_wp_chatbot_phone'); ?>"><span
186 74 class="intergration-phone"
187 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
75 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
188 76 <?php } ?>
189 77 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
190 - <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
191 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
78 + <a href="<?php echo get_option('qlcd_wp_chatbot_weblink'); ?>" target="_blank"><span
79 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
192 80 <?php } ?>
193 81 </div>
194 82 </div>
195 83 <?php
@@ -202,9 +90,9 @@
202 90 }
203 91 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
204 92 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
205 93 } else {
206 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
94 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
207 95 }
208 96 ?>
209 97 <?php
210 98 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -211,9 +99,9 @@
211 99 ?>
212 100 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
213 101 <div class="wp-chatbot-notification-controller">
214 102 <span class="wp-chatbot-notification-close">
215 - <?php esc_html_e('X', 'chatbot'); ?>
103 + <?php esc_html_e('X', 'wpchatbot'); ?>
216 104 </span>
217 105 </div>
218 106 <?php
219 107 $testingTip="";
@@ -226,18 +114,18 @@
226 114 }
227 115 ?>
228 116 <div class="wp-chatbot-notification-agent-profile">
229 117 <div class="wp-chatbot-notification-widget-avatar" ><img
230 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
231 - <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>
118 + src="<?php echo $wp_chatbot_custom_agent_path; ?>" alt=""></div>
119 + <div class="wp-chatbot-notification-welcome"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_welcome'))) . ' <strong>' . get_option('qlcd_wp_chatbot_host') . '</strong>'; ?></div>
232 120 </div>
233 121 <?php
234 122 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
235 - $notifications = qcld_wb_chatbot_func_str_replace(wp_kses_post(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications'))));
123 + $notifications = qcld_wb_chatbot_func_str_replace(unserialize(get_option('qlcd_wp_chatbot_notifications')));
236 124
237 125 ?>
238 126
239 - <div class="wp-chatbot-notification-message"><?php echo esc_html($notifications[0]); ?></div>
127 + <div class="wp-chatbot-notification-message"><?php echo $notifications[0]; ?></div>
240 128 </div>
241 129 <?php } ?>
242 130 <!--wp-chatbot-board-container-->
243 131 <div id="wp-chatbot-ball" class="">
@@ -244,79 +132,20 @@
244 132 <div class="wp-chatbot-ball">
245 133 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
246 134 <?php
247 135 if (get_option('wp_chatbot_icon') == "custom.png") {
248 - $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';
249 -
136 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
250 137 } else if (get_option('wp_chatbot_icon') != "custom.png") {
251 138 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
252 139 } else {
253 140 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
254 141 }
255 - $_wpbot_icon_video = get_option('wp_chatbot_icon_video', '');
256 - $_wpbot_video_is_youtube = ( strpos( $_wpbot_icon_video, 'youtube.com' ) !== false || strpos( $_wpbot_icon_video, 'youtu.be' ) !== false );
257 - $_wpbot_youtube_embed_src = $_wpbot_video_is_youtube ? qcld_wpbot_youtube_icon_embed_src( $_wpbot_icon_video ) : '';
258 - $_wpbot_video_delay_ms = absint( get_option( 'wp_chatbot_icon_video_delay', 0 ) ) * 1000;
259 -
260 - $wp_chatbot_ball_is_youtube = ($_wpbot_icon_video !== '' && (strpos($_wpbot_icon_video, 'youtube.com') !== false || strpos($_wpbot_icon_video, 'youtu.be') !== false));
261 - $wp_chatbot_ball_is_video = ($_wpbot_icon_video !== '' && !$wp_chatbot_ball_is_youtube);
262 - $wp_chatbot_ball_has_video = ($wp_chatbot_ball_is_youtube || $wp_chatbot_ball_is_video);
263 142 ?>
264 - <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
265 - alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
266 - id="wp-chatbot-ball-icon-img"
267 - <?php if ($wp_chatbot_ball_has_video) { echo 'style="display:none;"'; } ?> >
268 - <?php if ( $_wpbot_icon_video !== '' ) : ?>
269 - <?php if ( $_wpbot_video_is_youtube && $_wpbot_youtube_embed_src !== '' ) : ?>
270 - <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>
271 - <?php elseif ( ! $_wpbot_video_is_youtube ) : ?>
272 - <video class="wpbot-icon-video" src="<?php echo esc_url( $_wpbot_icon_video ); ?>" autoplay muted loop playsinline preload="auto"></video>
273 - <?php endif; ?>
274 - <?php endif; ?>
143 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
144 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
145 +
275 146 </div>
276 -
277 147 </div>
278 - <?php
279 - if ( $_wpbot_icon_video !== '' ) :
280 - ?>
281 - <script>
282 - (function(){
283 - var wpbotDelay = <?php echo (int) $_wpbot_video_delay_ms; ?>;
284 - function wpbotForcePlay(){
285 - var v = document.querySelector('#wp-chatbot-ball video.wpbot-icon-video');
286 - if( v ){
287 - v.muted = true;
288 - v.volume = 0;
289 - v.loop = true;
290 - var tries = 0, maxTries = 30;
291 - var timer = setInterval(function(){
292 - tries++;
293 - v.play().then(function(){ clearInterval(timer); }).catch(function(){});
294 - if( tries >= maxTries ) clearInterval(timer);
295 - }, 300);
296 - }
297 - var yt = document.querySelector('#wp-chatbot-ball iframe.wpbot-icon-video');
298 - if( yt ){
299 - var ytSrc = yt.getAttribute('data-wpbot-yt-src');
300 - if( ytSrc && ( !yt.getAttribute('src') || yt.getAttribute('src') === 'about:blank' || yt.getAttribute('src').indexOf('autoplay=1') === -1 ) ){
301 - yt.setAttribute('src', ytSrc);
302 - }
303 - }
304 - }
305 - function wpbotDelayedPlay(){
306 - setTimeout(wpbotForcePlay, wpbotDelay);
307 - }
308 - if( document.readyState === 'loading' ){
309 - document.addEventListener('DOMContentLoaded', wpbotDelayedPlay);
310 - } else {
311 - wpbotDelayedPlay();
312 - }
313 - window.addEventListener('load', function(){
314 - setTimeout(wpbotForcePlay, wpbotDelay);
315 - });
316 - })();
317 - </script>
318 - <?php endif; ?>
319 148 <?php
320 149 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
321 150 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
322 151 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -328,9 +157,9 @@
328 157 <script>
329 158
330 159 window.fbAsyncInit = function () {
331 160 FB.init({
332 - appId: '<?php echo esc_js($fb_app_id); ?>',
161 + appId: '<?php echo $fb_app_id;?>',
333 162 autoLogAppEvents: true,
334 163 xfbml: true,
335 164 version: 'v2.12'
336 165 });
@@ -345,13 +174,13 @@
345 174 fjs.parentNode.insertBefore(js, fjs);
346 175 }(document, 'script', 'facebook-jssdk'));
347 176 </script>
348 177 <div class="fb-customerchat"
349 - page_id="<?php echo esc_attr($fb_page_id); ?>"
178 + page_id="<?php echo $fb_page_id; ?>"
350 179 greeting_dialog_display="hide"
351 - theme_color="<?php echo esc_attr($fb_mgs_color); ?>"
352 - logged_in_greeting="<?php echo esc_attr($fb_mgs_in); ?>"
353 - logged_out_greeting="<?php echo esc_attr($fb_mgs_out); ?>"></div>
180 + theme_color="<?php echo $fb_mgs_color; ?>"
181 + logged_in_greeting="<?php echo $fb_mgs_in; ?>"
182 + logged_out_greeting="<?php echo $fb_mgs_out; ?>"></div>
354 183 <?php
355 184 }
356 185 ?>
357 186 <!--container-->
@@ -359,11 +188,11 @@
359 188 </div>
360 189
361 190 <?php
362 191
363 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
192 + if ( get_transient( 'bot_clear_cache' ) ) {
364 193 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
365 - delete_transient( 'qcld_bot_clear_cache' );
194 + delete_transient( 'bot_clear_cache' );
366 195 }
367 196
368 197 }else{
369 198 ?>
@@ -433,9 +262,9 @@
433 262 return $wp_chatbot_load;
434 263 }
435 264 //checking Devices
436 265 function wp_chatbot_is_mobile(){
437 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
266 + $useragent = $_SERVER['HTTP_USER_AGENT'];
438 267 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))) {
439 268 return true;
440 269 } else {
441 270 return false;
@@ -442,13 +271,13 @@
442 271 }
443 272 }
444 273 //Checking wpwbot opening hour
445 274 function wp_chatbot_check_opening_hours(){
446 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
447 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
275 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
276 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
448 277 $is_wpwbot_open =false;
449 278 if(get_option('wpwbot_hours')) {
450 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
279 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
451 280 if (isset($wpwbot_times[$curent_day])) {
452 281 $day_times = $wpwbot_times[$curent_day];
453 282 if (!empty($day_times)) {
454 283 foreach ($day_times as $day_time) {
@@ -460,8 +289,183 @@
460 289 }
461 290 }
462 291 return $is_wpwbot_open;
463 292 }
293 +//wpwBot shortcode.
294 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
295 +function wp_chatbot_short_code($atts = []){
296 + ob_start();
297 + wp_chatbot_shortcode_dom($atts);
298 + $content = ob_get_clean();
299 + return $content;
300 +}
301 +function wp_chatbot_shortcode_dom($atts){
302 + //Defaults & Set Parameters for shortcode
303 + extract(shortcode_atts(
304 + array(
305 + 'template' => '01',
306 + ), $atts
307 + ));
308 + ?>
309 + <style>
310 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
311 + </style>
312 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
313 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
314 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
315 + } else {
316 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
317 + }
318 + ?>
319 + <style>
320 + .wp-chatbot-container {
321 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
322 + }
323 + </style>
324 +<?php }
325 + $wp_chatbot_enable_rtl = "";
326 + if (get_option('enable_wp_chatbot_rtl')) {
327 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
328 + }
329 + ?>
330 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
331 + <?php
332 + //Get wpcommerce cart
333 +
334 + $qcld_wb_chatbot_theme = 'template-' . $template;
335 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
336 + 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');
337 + wp_enqueue_style('qcld-wp-chatbot-style');
338 + }
339 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
340 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
341 + } else {
342 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
343 + }
344 + ?>
345 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
346 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
347 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
348 + <?php
349 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
350 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
351 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
352 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
353 + } else {
354 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
355 + }
356 + ?>
357 + <div class="wp-chatbot-notification-agent-profile">
358 + <div class="wp-chatbot-notification-widget-avatar"><img
359 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
360 + <div class="wp-chatbot-notification-welcome"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_welcome'))) . ' <strong>' . get_option('qlcd_wp_chatbot_host') . '</strong>'; ?></div>
361 + </div>
362 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
363 + </div>
364 + <!--wp-chatbot-board-container-->
365 + <div id="wp-chatbot-ball" class="">
366 + <div class="wp-chatbot-ball">
367 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
368 + <?php
369 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
370 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
371 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
372 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
373 + } else {
374 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
375 + }
376 + ?>
377 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
378 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
379 + </div>
380 + <!-- wp-chatbot-board-container-->
381 + <?php endif; ?>
382 + <!--container-->
383 + <!--wp-chatbot-ball-wrapper-->
384 + </div>
385 +<?php } ?>
386 +<?php
387 +//Create shortcode for wpwBot for pages.
388 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
389 +function wp_chatbot_page_short_code(){
390 + ob_start();
391 + wp_chatbot_page_dom();
392 + $content = ob_get_clean();
393 + return $content;
394 +}
395 +function wp_chatbot_page_dom(){ ?>
396 + <style>
397 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
398 + </style>
399 + <?php
400 + //Get wpcommerce cart
401 +
402 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
403 + $wp_chatbot_enable_rtl = "";
404 + if (get_option('enable_wp_chatbot_rtl') == 1) {
405 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
406 + }
407 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
408 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
409 + } else {
410 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
411 + }
412 +}
413 +//shortcode for wpWBot mobile app
414 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
415 +function wp_chatbot_mobile_app_short_code(){ ?>
416 + <style>
417 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
418 + </style>
419 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
420 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
421 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
422 + } else {
423 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
424 + }
425 + ?>
426 + <style>
427 + .wp-chatbot-container {
428 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
429 + }
430 + </style>
431 +<?php }
432 + $wp_chatbot_enable_rtl = "";
433 + if (get_option('enable_wp_chatbot_rtl')) {
434 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
435 + }
436 + ?>
437 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
438 + <?php
439 + // keep traking app template.
440 + $template_app = 'yes';
441 + //Get wpcommerce cart
442 +
443 + //Handling shortcode enqeue and remove features part.
444 + define('wpCOMMERCE', true);
445 + wp_enqueue_script('jquery');
446 +
447 +
448 + wp_enqueue_script('wc-address-i18n');
449 + wp_enqueue_script('wc-country-select');
450 +
451 +
452 + // add the action
453 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
454 + if (!isset($_COOKIE['from_app'])) {
455 + setcookie('from_app', 'yes', time() + 3600);
456 + }
457 + }
458 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
459 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
460 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
461 + } else {
462 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
463 + }
464 + ?>
465 + </div>
466 + <?php
467 +}
464 468
465 469 /**
466 470 * wpwBot Search keyword product
467 471 */
@@ -467,20 +471,13 @@
467 471 */
468 472 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
469 473 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
470 474 function qcld_wb_chatbot_keyword(){
471 - // Verify nonce for security
472 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
473 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
474 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
475 - wp_die();
476 - }
477 -
478 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
475 + $keyword = sanitize_text_field($_POST['keyword']);
479 476 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
480 477 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
481 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
482 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
478 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
479 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
483 480 //Merging all query together.
484 481 $argu_params = array(
485 482 'post_type' => 'product',
486 483 'post_status' => 'publish',
@@ -522,9 +519,9 @@
522 519 endwhile;
523 520 wp_reset_postdata();
524 521 $html .= '</ul>';
525 522 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
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="' . 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>';
523 + $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 . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
527 524 }
528 525 }
529 526 $html .= '</div>';
530 527 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -552,16 +549,16 @@
552 549 }
553 550 }
554 551 $html .= '</ul>';
555 552 if ($total_product_num > $product_per_page && $product_per_page > 0) {
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="' . 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>';
553 + $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 . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
557 554 }
558 555 }
559 556 $html .= '</div>';
560 557 }
561 558 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
562 - wp_send_json($response);
563 -
559 + echo wp_send_json($response);
560 + wp_die();
564 561 }
565 562 /**
566 563 * wpwBot Categories
567 564 */
@@ -569,22 +566,23 @@
569 566 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
570 567 function qcld_wb_chatbot_category(){
571 568 $category_type="common";
572 569 if (get_option('wp_chatbot_show_parent_category') != "") {
573 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
570 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
571 +
574 572 } else {
575 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
573 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
576 574 }
577 575 $html = "";
578 576 foreach ($terms as $term) {
579 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
577 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
580 578 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
581 579 $category_type="hasChilds";
582 580 }
583 581 $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>';
584 582 }
585 - wp_send_json($html);
586 -
583 + echo wp_send_json($html);
584 + wp_die();
587 585 }
588 586 /**
589 587 * wpwBot Sub categories
590 588 */
@@ -590,16 +588,16 @@
590 588 */
591 589 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
592 590 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
593 591 function qcld_wb_chatbot_sub_category(){
594 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
595 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
592 + $parent_id = stripslashes($_POST['parent_id']);
593 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
596 594 $html = "";
597 595 foreach ($terms as $term) {
598 596 $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>';
599 597 }
600 - wp_send_json($html);
601 -
598 + echo wp_send_json($html);
599 + wp_die();
602 600 }
603 601 /**
604 602 * wpwBot category product
605 603 */
@@ -605,12 +603,12 @@
605 603 */
606 604 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
607 605 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
608 606 function qcld_wb_chatbot_category_products(){
609 - $category_id = intval( wp_unslash( $_POST['category'] ) );
610 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
611 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
612 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
607 + $category_id = stripslashes($_POST['category']);
608 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
609 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
610 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
613 611 //Merging all query together.
614 612 $argu_params = array(
615 613 'post_type' => 'product',
616 614 'post_status' => 'publish',
@@ -672,9 +670,9 @@
672 670 endwhile;
673 671 wp_reset_postdata();
674 672 $html .= '</ul>';
675 673 if ($total_product_num > $product_per_page && $product_per_page >0) {
676 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="category" data-search-term="' . $category_id . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
674 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="category" data-search-term="' . $category_id . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
677 675 }
678 676 $html .= '</div>';
679 677 } else {
680 678 $html = '';
@@ -679,9 +677,10 @@
679 677 } else {
680 678 $html = '';
681 679 }
682 680 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
683 - wp_send_json($response);
681 + echo wp_send_json($response);
682 + wp_die();
684 683 }
685 684 /**
686 685 * wpwBot latest, featured, recent product
687 686 */
@@ -687,11 +686,11 @@
687 686 */
688 687 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
689 688 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
690 689 function qcld_wb_chatbot_featured_products(){
691 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
692 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
693 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
690 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
691 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
692 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
694 693 //get featured products query.
695 694 $argu_params = array('post_status' => 'publish',
696 695 'posts_per_page' => $product_per_page,
697 696 'post_type' => 'product',
@@ -735,14 +734,15 @@
735 734 endwhile;
736 735 wp_reset_postdata();
737 736 $html .= '</ul>';
738 737 if ($total_product_num > $product_per_page) {
739 - $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="featured" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
738 + $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="featured" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
740 739 }
741 740 }
742 741 $html .= '</div>';
743 742 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
744 - wp_send_json($response);
743 + echo wp_send_json($response);
744 + wp_die();
745 745 }
746 746 //Product display controll
747 747 function wp_chatbot_product_controlling($product_id){
748 748 $display_product = true;
@@ -757,11 +757,11 @@
757 757 //Get Sale products
758 758 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
759 759 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
760 760 function qcld_wb_chatbot_sale_products(){
761 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
762 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
763 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
761 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
762 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
763 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
764 764 //get sale products query.
765 765 $argu_params = array(
766 766 'post_type' => 'product',
767 767 'post_status' => 'publish',
@@ -833,25 +833,26 @@
833 833 endwhile;
834 834 wp_reset_postdata();
835 835 $html .= '</ul>';
836 836 if ($total_product_num > $product_per_page) {
837 - $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="sale" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
837 + $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="sale" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
838 838 }
839 839 }
840 840 $html .= '</div>';
841 841 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
842 - wp_send_json($response);
842 + echo wp_send_json($response);
843 + wp_die();
843 844 }
844 845 //load more
845 846 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
846 847 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
847 848 function qcld_wb_chatbot_load_more(){
848 - $offset = intval( wp_unslash( $_POST['offset'] ) );
849 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
850 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
851 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
852 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
853 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
849 + $offset = stripslashes($_POST['offset']);
850 + $search_type = stripslashes($_POST['search_type']);
851 + $search_term = stripslashes($_POST['search_term']);
852 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
853 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
854 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
854 855 $next_offset = intval($product_per_page + $offset);
855 856 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
856 857 //if have multiple ids then explode else have single need to array push
857 858 if (strpos($search_term, ',') !== false) {
@@ -973,15 +974,16 @@
973 974 $html .= '';
974 975 }
975 976 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
976 977 }
977 - wp_send_json($response);
978 + echo wp_send_json($response);
979 + wp_die();
978 980 }
979 981 //product details
980 982 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
981 983 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
982 984 function qcld_wb_chatbot_product_details(){
983 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
985 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
984 986 //Tracking product view from chat board
985 987 wp_chatbot_view_track_product_by_id($product_id);
986 988 //wpcommerce product factory
987 989 $wc_pf = new WC_Product_Factory();
@@ -1009,9 +1011,9 @@
1009 1011 }
1010 1012 }
1011 1013 $product_image .= '</ul></div>';
1012 1014 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
1013 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
1015 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
1014 1016 //if ( $product->is_in_stock() || $product->is_purchasable() )
1015 1017 //Handle variable product start
1016 1018 $variations = "";
1017 1019 $add_cart_button = "";
@@ -1052,13 +1054,12 @@
1052 1054 } else {
1053 1055 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1054 1056 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1055 1057 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1056 - $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1058 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1057 1059 foreach ($values as $value) {
1058 - $attr_key = 'attribute_' . sanitize_title( $name );
1059 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
1060 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
1060 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1061 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1061 1062 } else {
1062 1063 $selected_value = '';
1063 1064 }
1064 1065 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1065,29 +1066,30 @@
1065 1066 }
1066 1067 $variations .= '</select></div>';
1067 1068 }
1068 1069 }
1069 - $add_cart_button .= '<input type="button" id="wp-chatbot-variation-add-to-cart" wp-chatbot-product-id="' . $product_id . '" value="' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart')))) . '" variation_id="" />';
1070 + $add_cart_button .= '<input type="button" id="wp-chatbot-variation-add-to-cart" wp-chatbot-product-id="' . $product_id . '" value="' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart'))) . '" variation_id="" />';
1070 1071 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1071 1072 } else {
1072 - $add_cart_button .= '<input type="button" id="wp-chatbot-add-cart-button" wp-chatbot-product-id="' . $product_id . '" value="' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart')))) . '" />';
1073 + $add_cart_button .= '<input type="button" id="wp-chatbot-add-cart-button" wp-chatbot-product-id="' . $product_id . '" value="' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart'))) . '" />';
1073 1074 }
1074 1075 //Handle variable product end.
1075 - $product_quantity .= '<label for="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</label>
1076 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1076 1077 <input type="number" id="vPQuantity" value="1" />';
1077 1078 }
1078 1079 //$response=$full_size_image;
1079 1080 $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);
1080 - wp_send_json($response);
1081 + echo wp_send_json($response);
1082 + wp_die();
1081 1083 }
1082 1084 //Add to cart for variable product.
1083 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1084 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1085 -function qcld_variable_add_to_cart(){
1086 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
1087 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
1088 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
1089 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
1085 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1086 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1087 +function qcld_wb_chatbot_variable_add_to_cart(){
1088 + $product_id = stripslashes($_POST['p_id']);
1089 + $quantity = stripslashes($_POST['quantity']);
1090 + $variations_id = stripslashes($_POST['variations_id']);
1091 + $attrs = stripslashes($_POST['attributes']);
1090 1092 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1091 1093 $attributes = array();
1092 1094 foreach ($attrs as $attr) {
1093 1095 $single = explode("#", $attr);
@@ -1098,46 +1100,44 @@
1098 1100 }
1099 1101 global $wpcommerce;
1100 1102 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1101 1103 if ($result != false) {
1102 - wp_send_json('variable');
1104 + echo wp_send_json('variable');
1103 1105 } else {
1104 - wp_send_json('error');
1106 + echo wp_send_json('error');
1105 1107 }
1108 + wp_die();
1106 1109 }
1107 1110 //Add to cart for simple product.
1108 1111 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1109 1112 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1110 1113 function qcld_wb_chatbot_add_to_cart(){
1111 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1112 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1114 + $product_id = stripslashes($_POST['product_id']);
1115 + $product_quantity = stripslashes($_POST['quantity']);
1113 1116 global $wpcommerce;
1114 1117 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1115 1118 if ($result != false) {
1116 - wp_send_json('simple');
1119 + echo wp_send_json('simple');
1117 1120 } else {
1118 - wp_send_json('error');
1121 + echo wp_send_json('error');
1119 1122 }
1123 + wp_die();
1120 1124 }
1121 1125 //Support part
1122 1126 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1123 1127 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1124 1128 function qcld_wb_chatbot_support_email(){
1125 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1126 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
1127 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
1128 - }
1129 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1130 - $email = sanitize_email(wp_unslash($_POST['email']));
1131 - $message = sanitize_text_field(wp_unslash($_POST['message']));
1132 - $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1129 + $name = trim(sanitize_text_field($_POST['name']));
1130 + $email = sanitize_email($_POST['email']);
1131 + $message = sanitize_text_field($_POST['message']);
1132 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1133 1133 //Extract Domain
1134 1134 $url = get_site_url();
1135 - $url = wp_parse_url($url);
1135 + $url = parse_url($url);
1136 1136 $domain = $url['host'];
1137 1137 //$admin_email = "admin@" . $domain;
1138 - $admin_email = sanitize_email(get_option('admin_email'));
1139 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1138 + $admin_email = get_option('admin_email');
1139 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1140 1140
1141 1141
1142 1142 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1143 1143 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
@@ -1143,23 +1143,24 @@
1143 1143 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1144 1144 }else{
1145 1145 $fromEmail = "wordpress@" . $domain;
1146 1146 }
1147 +
1147 1148 //Starting messaging and status.
1148 1149 $response['status'] = 'fail';
1149 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1150 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1150 1151 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
1151 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email'))));
1152 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1152 1153 $response['status'] = 'fail';
1153 1154 } else {
1154 1155 //build email body
1155 1156 $bodyContent = "";
1156 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1157 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1158 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1159 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1160 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1161 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1157 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1158 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1159 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1160 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1161 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1162 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1162 1163 $to = $toEmail;
1163 1164 $body = $bodyContent;
1164 1165 $headers = array();
1165 1166 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1167,13 +1168,13 @@
1167 1168 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1168 1169 $result = wp_mail($to, $subject, $body, $headers);
1169 1170 if ($result) {
1170 1171 $response['status'] = 'success';
1171 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1172 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1172 1173 }
1173 1174
1174 1175 }
1175 - echo wp_json_encode($response);
1176 + echo json_encode($response);
1176 1177 die();
1177 1178 }
1178 1179 //Support Phone
1179 1180 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1178,37 +1179,36 @@
1178 1179 //Support Phone
1179 1180 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1180 1181 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1181 1182 function qcld_wb_chatbot_support_phone(){
1182 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1183 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1184 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1183 + $name = trim(sanitize_text_field($_POST['name']));
1184 + $phone =sanitize_text_field($_POST['phone']);
1185 1185 $subject = 'WPBot Support Mail Request for Call Back';
1186 1186 //Extract Domain
1187 1187 $url = get_site_url();
1188 - $url = wp_parse_url($url);
1188 + $url = parse_url($url);
1189 1189 $domain = $url['host'];
1190 1190 //$admin_email = "admin@" . $domain;
1191 1191 $admin_email = get_option('admin_email');
1192 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1192 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1193 1193
1194 1194
1195 1195 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1196 - $fromEmail = sanitize_email(get_option('qlcd_wp_chatbot_from_email'));
1196 + $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1197 1197 }else{
1198 1198 $fromEmail = "wordpress@" . $domain;
1199 1199 }
1200 1200 //Starting messaging and status.
1201 1201 $response['status'] = 'fail';
1202 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1202 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1203 1203 //build email body
1204 1204 $bodyContent = "";
1205 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1206 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1207 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1208 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1209 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1210 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1205 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1206 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1207 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1208 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1209 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1210 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1211 1211 $to = $toEmail;
1212 1212 $body = $bodyContent;
1213 1213 $headers = array();
1214 1214 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1216,17 +1216,38 @@
1216 1216 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1217 1217 $result = wp_mail($to, $subject, $body, $headers);
1218 1218 if ($result) {
1219 1219 $response['status'] = 'success';
1220 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1220 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1221 1221 }
1222 - echo wp_json_encode($response);
1222 + echo json_encode($response);
1223 1223 die();
1224 1224 }
1225 -// Order Status part. removed
1226 -
1225 +// Order Status part.
1226 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1227 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1228 +function qcld_wb_chatbot_check_user(){
1229 + global $wpcommerce;
1230 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1231 + $response = array();
1232 + $response['message'] = "";
1233 + if (username_exists($user_name)) {
1234 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1235 + $response['status'] = "success";
1236 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1237 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1238 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1239 + $response = get_order_by_username($user_name);
1240 + }
1241 + } else {
1242 + $response['status'] = "fail";
1243 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1244 + }
1245 + echo wp_send_json($response);
1246 + die();
1247 +}
1227 1248 function wpb_randmom_message_handle($items){
1228 - return $items[wp_rand(0, count($items) - 1)];
1249 + return $items[rand(0, count($items) - 1)];
1229 1250 }
1230 1251 function qcld_wb_chatbot_func_str_replace($messages = array()){
1231 1252 $refined_mesgses = array();
1232 1253 foreach ($messages as $message) {
@@ -1241,21 +1262,22 @@
1241 1262 // First check the nonce, if it fails the function will break
1242 1263 check_ajax_referer('wpwbot-order-nonce', 'security');
1243 1264 // Nonce is checked, get the POST data and sign user on
1244 1265 $info = array();
1245 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1246 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1266 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1267 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1247 1268 $info['remember'] = true;
1248 1269 $user_signon = wp_signon($info, false);
1249 1270 $response = array();
1250 1271 if (is_wp_error($user_signon)) {
1251 1272 $response['status'] = "fail";
1252 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1273 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1253 1274 } else {
1254 1275 $response = get_order_by_username($info['user_login']);
1255 1276 $response['status'] = "success";
1256 1277 }
1257 - wp_send_json($response);
1278 + echo wp_send_json($response);
1279 + die();
1258 1280 }
1259 1281 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1260 1282 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1261 1283 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1261,9 +1283,10 @@
1261 1283 function qcld_wb_chatbot_loged_in_user_orders(){
1262 1284 $current_user = wp_get_current_user();
1263 1285 $user_name = $current_user->user_login;
1264 1286 $response = get_order_by_username($user_name);
1265 - wp_send_json($response);
1287 + echo wp_send_json($response);
1288 + die();
1266 1289 }
1267 1290 function get_order_by_username($user_name){
1268 1291 global $post;
1269 1292 $response = array();
@@ -1281,28 +1304,28 @@
1281 1304 ));
1282 1305 $response['order_num'] = count($customer_orders);
1283 1306 $order_html = '';
1284 1307 if ($response['order_num'] > 0) {
1285 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1308 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1286 1309 $order_html .= '<div class="wp-chatbot-orders-container">
1287 1310 <div class="wp-chatbot-orders-header">
1288 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1289 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1290 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1291 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1311 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1312 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1313 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1314 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1292 1315 </div>';
1293 1316 foreach ($customer_orders as $order) {
1294 1317 //Formatting order summery
1295 1318 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1296 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1319 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1297 1320 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1298 1321 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1299 1322 } else {
1300 - $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1323 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1301 1324 }
1302 1325 $order_html .= '<div class="wp-chatbot-orders-single">
1303 1326 <div class="order-id"> ' . $order_url . '</div>
1304 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1327 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1305 1328 <div class="order-items">';
1306 1329 $singleOrder = new WC_Order($order->ID);
1307 1330 $items = $singleOrder->get_items();
1308 1331 foreach ($items as $item) {
@@ -1315,9 +1338,9 @@
1315 1338 }
1316 1339 $order_html .= '</div>';
1317 1340 } else {
1318 1341 $response['message'] .= get_option('qlcd_wp_chatbot_sorry') . '! <strong>' . $user_name . '</strong>';
1319 - $order_html .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found')))) . '</p>';
1342 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1320 1343 }
1321 1344 $response['html'] = $order_html;
1322 1345 return $response;
1323 1346 }
@@ -1353,10 +1376,10 @@
1353 1376 function qcld_wb_chatbot_recently_viewed_products(){
1354 1377 // Get wpCommerce Global
1355 1378 $_pf = new WC_Product_Factory();
1356 1379 //show post per page.
1357 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1358 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1380 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1381 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1359 1382 // Get recently viewed product cookies data
1360 1383 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1361 1384 $viewed_products = array_filter(array_map('absint', $viewed_products));
1362 1385 //get featured products if has.
@@ -1362,9 +1385,9 @@
1362 1385 //get featured products if has.
1363 1386 $featured_products = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'tax_query' => array(array('taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured'))));
1364 1387 //Getting recently vieew products.
1365 1388 if (!empty($viewed_products)) {
1366 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1389 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1367 1390 $product_query = new WP_Query(array(
1368 1391 'posts_per_page' => $product_per_page,
1369 1392 'no_found_rows' => 1,
1370 1393 'post_status' => 'publish',
@@ -1372,15 +1395,16 @@
1372 1395 'post__in' => $viewed_products,
1373 1396 ));
1374 1397 //Getting featured products
1375 1398 } else if ($featured_products->post_count > 0) {
1376 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1399 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1377 1400 $product_query = $featured_products;
1378 1401 } else {
1379 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1402 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1380 1403 //Getting recent products
1381 1404 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1382 1405 }
1406 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1383 1407 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1384 1408 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1385 1409 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1386 1410 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1387,10 +1411,10 @@
1387 1411 } else {
1388 1412 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1389 1413 }
1390 1414 $html = '<div class="wp-chatbot-agent-profile">
1391 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1392 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1415 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1416 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1393 1417 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1394 1418 </div>';
1395 1419 if ($product_query->post_count > 0) {
1396 1420 $html .= '<div class="wp-chatbot-products-area">';
@@ -1402,9 +1426,9 @@
1402 1426 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1403 1427 <div class="wp-chatbot-product-summary">
1404 1428 <div class="wp-chatbot-product-table">
1405 1429 <div class="wp-chatbot-product-table-cell">
1406 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1430 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1407 1431 <div class="price">' . $product->get_price_html() . '</div>';
1408 1432 $html .= ' </div>
1409 1433 </div>
1410 1434 </div></a>
@@ -1417,9 +1441,10 @@
1417 1441 $html .= '<div class="wp-chatbot-products-area">';
1418 1442 $html .= '<p style="text-align: center">You have no products !';
1419 1443 $html .= '</div>';
1420 1444 }
1421 - wp_send_json($html);
1445 + echo wp_send_json($html);
1446 + die();
1422 1447 }
1423 1448 //Recently viewed product shortcode
1424 1449 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1450 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1424,10 +1449,10 @@
1424 1449 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1450 function qcld_wb_chatbot_recently_viewed_shortcode(){
1426 1451 // Get wpCommerce Global
1427 1452 $_pf = new WC_Product_Factory();
1428 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1429 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1453 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1454 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1430 1455 // Get recently viewed product cookies data
1431 1456 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1432 1457 $viewed_products = array_filter(array_map('absint', $viewed_products));
1433 1458 //get featured products if has.
@@ -1433,9 +1458,9 @@
1433 1458 //get featured products if has.
1434 1459 $featured_products = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'tax_query' => array(array('taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured'))));
1435 1460 //Getting recently vieew products.
1436 1461 if (!empty($viewed_products)) {
1437 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1462 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1438 1463 $product_query = new WP_Query(array(
1439 1464 'posts_per_page' => $product_per_page,
1440 1465 'no_found_rows' => 1,
1441 1466 'post_status' => 'publish',
@@ -1443,15 +1468,16 @@
1443 1468 'post__in' => $viewed_products,
1444 1469 ));
1445 1470 //implementing featured products
1446 1471 } else if ($featured_products->post_count > 0) {
1447 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1472 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1448 1473 $product_query = $featured_products;
1449 1474 } else {
1450 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1475 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1451 1476 //Getting recent products
1452 1477 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1453 1478 }
1479 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1454 1480 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1455 1481 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1456 1482 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1457 1483 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1458,11 +1484,11 @@
1458 1484 } else {
1459 1485 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1460 1486 }
1461 1487 $html = '<div class="wp-chatbot-agent-profile">
1462 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1463 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1464 - <div class="wp-chatbot-bubble">' . esc_html($wp_chatbot_product_title) . '</div>
1488 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1489 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1490 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1465 1491 </div>';
1466 1492 if ($product_query->post_count > 0) {
1467 1493 $html .= '<div class="wp-chatbot-products-area">';
1468 1494 $html .= '<ul class="wp-chatbot-products">';
@@ -1473,9 +1499,9 @@
1473 1499 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1474 1500 <div class="wp-chatbot-product-summary">
1475 1501 <div class="wp-chatbot-product-table">
1476 1502 <div class="wp-chatbot-product-table-cell">
1477 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1503 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1478 1504 <div class="price">' . $product->get_price_html() . '</div>';
1479 1505 $html .= ' </div>
1480 1506 </div>
1481 1507 </div></a>
@@ -1485,9 +1511,9 @@
1485 1511 wp_reset_postdata();
1486 1512 $html .= '</ul></div>';
1487 1513 } else {
1488 1514 $html .= '<div class="wp-chatbot-products-area">';
1489 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1515 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1490 1516 $html .= '</div>';
1491 1517 }
1492 1518 return $html;
1493 1519 }
@@ -1501,10 +1527,11 @@
1501 1527 $checkout_url = wc_get_checkout_url();
1502 1528 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1503 1529 $items = $wpcommerce->cart->get_cart();
1504 1530 $itemCount = $wpcommerce->cart->cart_contents_count;
1505 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1506 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1531 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1532 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1533 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1507 1534 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1508 1535 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1509 1536 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1510 1537 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1511,15 +1538,15 @@
1511 1538 } else {
1512 1539 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1513 1540 }
1514 1541 $html = '<div class="wp-chatbot-agent-profile">
1515 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1516 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1517 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1542 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1543 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1544 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1518 1545 </div>';
1519 1546 if ($itemCount >= 1) {
1520 1547 $html .= '<div class ="wp-chatbot-cart-container">';
1521 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1548 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1522 1549 $html .= '<div class ="wp-chatbot-cart-body">';
1523 1550 foreach ($items as $item => $values) {
1524 1551 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1525 1552 //product image
@@ -1537,9 +1564,9 @@
1537 1564 <div class="qcld-wp-chatbot-cell"></div>
1538 1565 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1539 1566 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1540 1567 </div>';
1541 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1568 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1542 1569 $html .= ' </div>';
1543 1570 } else {
1544 1571 $html .= '<div class="wp-chatbot-cart-container">';
1545 1572 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1545,9 +1572,10 @@
1545 1572 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1546 1573 $html .= '</div>';
1547 1574 }
1548 1575 $response = array('html' => $html, 'items' => $itemCount);
1549 - wp_send_json($response);
1576 + echo wp_send_json($response);
1577 + wp_die();
1550 1578 }
1551 1579 //cart onley for wp chatbot
1552 1580 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1553 1581 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1558,14 +1586,14 @@
1558 1586 $checkout_url = wc_get_checkout_url();
1559 1587 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1560 1588 $items = $wpcommerce->cart->get_cart();
1561 1589 $itemCount = $wpcommerce->cart->cart_contents_count;
1562 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1590 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1563 1591
1564 1592 $html = '';
1565 1593 if ($itemCount >= 1) {
1566 1594 $html .= '<div class ="wp-chatbot-cart-container">';
1567 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1595 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1568 1596 $html .= '<div class ="wp-chatbot-cart-body">';
1569 1597 foreach ($items as $item => $values) {
1570 1598 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1571 1599 //product image
@@ -1583,17 +1611,18 @@
1583 1611 <div class="qcld-wp-chatbot-cell"></div>
1584 1612 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1585 1613 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1586 1614 </div>';
1587 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1615 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1588 1616 $html .= ' </div>';
1589 1617 } else {
1590 1618 $html .= '<div class="wp-chatbot-cart-container">';
1591 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1619 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1592 1620 $html .= '</div>';
1593 1621 }
1594 1622 $response = array('html' => $html, 'items' => $itemCount);
1595 - wp_send_json($response);
1623 + echo wp_send_json($response);
1624 + wp_die();
1596 1625 }
1597 1626 //Cart show Shortcode
1598 1627 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1599 1628 function qcld_wb_chatbot_cart_shortcode(){
@@ -1599,10 +1628,11 @@
1599 1628 function qcld_wb_chatbot_cart_shortcode(){
1600 1629 global $wpcommerce;
1601 1630 $items = $wpcommerce->cart->get_cart();
1602 1631 $itemCount = $wpcommerce->cart->cart_contents_count;
1603 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1604 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1632 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1633 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1634 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1605 1635 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1606 1636 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1607 1637 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1608 1638 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1609,15 +1639,15 @@
1609 1639 } else {
1610 1640 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1611 1641 }
1612 1642 $html = '<div class="wp-chatbot-agent-profile">
1613 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1614 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1615 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1643 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1644 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1645 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1616 1646 </div>';
1617 1647 if ($itemCount >= 1) {
1618 1648 $html .= '<div class ="wp-chatbot-cart-container">';
1619 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div> <div class="qcld-wp-chatbot-cell"></div> </div>';
1649 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div> <div class="qcld-wp-chatbot-cell"></div> </div>';
1620 1650 $html .= '<div class ="wp-chatbot-cart-body">';
1621 1651 foreach ($items as $item => $values) {
1622 1652 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1623 1653 //product image
@@ -1635,9 +1665,9 @@
1635 1665 <div class="qcld-wp-chatbot-cell"></div>
1636 1666 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1637 1667 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1638 1668 </div>';
1639 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a href="' . site_url() . '/cart" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a href="' . site_url() . '/checkout" target="_blank">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1669 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a href="' . site_url() . '/cart" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a href="' . site_url() . '/checkout" target="_blank">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1640 1670 $html .= ' </div>';
1641 1671 } else {
1642 1672 $html .= '<div class="wp-chatbot-cart-container">';
1643 1673 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1649,26 +1679,26 @@
1649 1679 //Updating the cart items.
1650 1680 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1651 1681 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1652 1682 function qcld_wb_chatbot_update_cart_item_number(){
1653 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1654 1683 //getting cart items n
1655 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1656 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1684 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1685 + $qnty = sanitize_text_field($_POST['qnty']);
1657 1686 global $wpcommerce;
1658 1687 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1659 - wp_send_json($result);
1688 + echo wp_send_json($result);
1689 + wp_die();
1660 1690 }
1661 1691 //Show item after removing from cart page.
1662 1692 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1663 1693 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1664 1694 function qcld_wb_chatbot_cart_item_remove(){
1665 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1666 1695 //getting cart items n
1667 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1696 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1668 1697 global $wpcommerce;
1669 1698 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1670 - wp_send_json($result);
1699 + echo wp_send_json($result);
1700 + wp_die();
1671 1701 }
1672 1702 //Show cart page by shortcode.
1673 1703 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1674 1704 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1676,13 +1706,14 @@
1676 1706 global $wpcommerce;
1677 1707 $itemCount = $wpcommerce->cart->cart_contents_count;
1678 1708 $html = "";
1679 1709 if ($itemCount < 0) {
1680 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1710 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1681 1711 } else {
1682 1712 $html .= do_shortcode("[wpcommerce_cart]");
1683 1713 }
1684 - wp_send_json($html);
1714 + echo wp_send_json($html);
1715 + wp_die();
1685 1716 }
1686 1717 //Show checkout page by shortcode.
1687 1718 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1688 1719 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1691,9 +1722,9 @@
1691 1722 $itemCount = $wpcommerce->cart->cart_contents_count;
1692 1723 $html = "";
1693 1724 if ($itemCount < 0) {
1694 1725 $status = 'no';
1695 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1726 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1696 1727 } else {
1697 1728 $status = 'yes';
1698 1729 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1699 1730 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1699,12 +1730,13 @@
1699 1730 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1700 1731 $html .= $checkout_parmanlink;
1701 1732 }
1702 1733 $response = array('status' => $status, 'html' => $html);
1703 - wp_send_json($response);
1734 + echo wp_send_json($response);
1735 + wp_die();
1704 1736 }
1705 1737 //_dynamic_intent
1706 -function qcld_dynamic_intent(){
1738 +function qc_dynamic_intent(){
1707 1739 global $wpdb;
1708 1740 $intents = array();
1709 1741
1710 1742 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1721,10 +1753,9 @@
1721 1753
1722 1754 if(class_exists('Qcformbuilder_Forms_Admin')){
1723 1755
1724 1756
1725 - $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
1726 -
1757 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1727 1758 if(!empty($results)){
1728 1759
1729 1760 foreach($results as $result){
1730 1761 $form = maybe_unserialize($result->config);
@@ -1742,28 +1773,30 @@
1742 1773
1743 1774 }
1744 1775
1745 1776 //User login on Checkout page.
1746 -// add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1747 -// add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1748 -// function qcld_wb_chatbot_checkout_user_login(){
1749 -// // Nonce is checked, get the POST data and sign user on
1750 -// $info = array();
1751 -// //$info['nonce'] = $_POST['nonce_val'];
1752 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1753 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1754 -// $info['remember'] = true;
1755 -// $user_signon = wp_signon($info, false);
1756 -// // $response=$info;
1757 -// $response = array();
1758 -// if (is_wp_error($user_signon)) {
1759 -// // $response['status'] = "fail";
1760 -// $response = "no";
1761 -// } else {
1762 -// $response = "yes";
1763 -// }
1764 -// wp_send_json($response);
1765 -// }
1777 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1778 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1779 +function qcld_wb_chatbot_checkout_user_login(){
1780 + // Nonce is checked, get the POST data and sign user on
1781 + $info = array();
1782 + //$info['nonce'] = $_POST['nonce_val'];
1783 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1784 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1785 + $info['remember'] = true;
1786 + $user_signon = wp_signon($info, false);
1787 + // $response=$info;
1788 + $response = array();
1789 + if (is_wp_error($user_signon)) {
1790 + // $response['status'] = "fail";
1791 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1792 + $response = "no";
1793 + } else {
1794 + $response = "yes";
1795 + }
1796 + echo wp_send_json($response);
1797 + die();
1798 +}
1766 1799 // Load template for App Order Thank You page url
1767 1800 function wp_chatbot_load_app_template($template){
1768 1801 if (is_page('wpwbot-mobile-app')) {
1769 1802 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1792,16 +1825,15 @@
1792 1825 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1793 1826 function wp_chatbot_create_app_checkout_thankyou_page(){
1794 1827 if (get_option('wp_chatbot_app_pages') == 1) {
1795 1828 //Mobile App page create
1796 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1797 - if ( ! $existing_app->have_posts() ) {
1829 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1798 1830 //post status and options
1799 1831 $app_page = array(
1800 1832 'comment_status' => 'closed',
1801 1833 'ping_status' => 'closed',
1802 1834 'post_author' => get_current_user_id(),
1803 - 'post_date' => gmdate('Y-m-d H:i:s'),
1835 + 'post_date' => date('Y-m-d H:i:s'),
1804 1836 'post_status' => 'publish',
1805 1837 'post_title' => 'wpwBot Mobile App',
1806 1838 'post_name' => 'wpwbot-mobile-app',
1807 1839 'post_type' => 'page',
@@ -1811,16 +1843,15 @@
1811 1843 //save the id in the database
1812 1844 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1813 1845 }
1814 1846 //App checkout page create
1815 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1816 - if ( ! $existing_checkout->have_posts() ) {
1847 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1817 1848 //post status and options
1818 1849 $checkout_page = array(
1819 1850 'comment_status' => 'closed',
1820 1851 'ping_status' => 'closed',
1821 1852 'post_author' => get_current_user_id(),
1822 - 'post_date' => gmdate('Y-m-d H:i:s'),
1853 + 'post_date' => date('Y-m-d H:i:s'),
1823 1854 'post_status' => 'publish',
1824 1855 'post_title' => 'wpwBot App Checkout',
1825 1856 'post_name' => 'wpwbot-app-checkout',
1826 1857 'post_type' => 'page',
@@ -1830,16 +1861,15 @@
1830 1861 //save the id in the database
1831 1862 update_option('wp_chatbot_app_checkout', $app_checkout);
1832 1863 }
1833 1864 //App Order thank you page create
1834 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1835 - if ( ! $existing_thankyou->have_posts() ) {
1865 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1836 1866 //post status and options
1837 1867 $thankyou_page = array(
1838 1868 'comment_status' => 'closed',
1839 1869 'ping_status' => 'closed',
1840 1870 'post_author' => get_current_user_id(),
1841 - 'post_date' => gmdate('Y-m-d H:i:s'),
1871 + 'post_date' => date('Y-m-d H:i:s'),
1842 1872 'post_status' => 'publish',
1843 1873 'post_title' => 'wpwBot App Order Thank You',
1844 1874 'post_name' => 'wpwbot-app-order-thankyou',
1845 1875 'post_type' => 'page',
@@ -1850,9 +1880,9 @@
1850 1880 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1851 1881 }
1852 1882 }
1853 1883 //Keep tracking from App by cookies
1854 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1884 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1855 1885 if (!isset($_COOKIE['from_app'])) {
1856 1886 setcookie('from_app', 'yes', (time() + 3600), '/');
1857 1887 }
1858 1888 }
@@ -1866,9 +1896,9 @@
1866 1896 global $wp;
1867 1897 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1868 1898 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1869 1899 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1870 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1900 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1871 1901 exit;
1872 1902 }
1873 1903 } else {
1874 1904 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1876,12 +1906,9 @@
1876 1906 }
1877 1907 }
1878 1908
1879 1909 function qcld_choose_random($array){
1880 - if (is_array($array) && !empty($array)) {
1881 - return $array[array_rand($array)];
1882 - }
1883 - return $array;
1910 + return $array[array_rand($array)];
1884 1911 }
1885 1912
1886 1913 //User session count
1887 1914 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1887,9 +1914,8 @@
1887 1914 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1888 1915 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1889 1916 function qcld_wb_chatbot_session_count(){
1890 1917 // Nonce is checked, get the POST data and sign user on
1891 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1892 1918 global $wpdb;
1893 1919 $wpdb->show_errors = true;
1894 1920 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1921 $response = array();
@@ -1894,12 +1920,11 @@
1894 1920 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1921 $response = array();
1896 1922
1897 1923
1898 - $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
1899 -
1924 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1900 1925 if(empty($session_exists)){
1901 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1926 + $wpdb->insert(
1902 1927 $tableuser,
1903 1928 array(
1904 1929 'session' => 1,
1905 1930 )
@@ -1906,10 +1931,9 @@
1906 1931 );
1907 1932 }else{
1908 1933
1909 1934 $session_id = $session_exists->id;
1910 -
1911 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1935 + $wpdb->update(
1912 1936 $tableuser,
1913 1937 array(
1914 1938 'session'=>($session_exists->session+1),
1915 1939 ),
@@ -1918,18 +1942,18 @@
1918 1942 '%d',
1919 1943 ),
1920 1944 array('%d')
1921 1945 );
1922 -
1923 1946 }
1924 1947
1925 - wp_send_json($response);
1948 + echo wp_send_json($response);
1949 + die();
1926 1950 }
1927 1951
1928 1952 /* WPBot Chat History Addon check */
1929 1953 function qcld_wpbot_is_active_chat_history(){
1930 1954
1931 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1955 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1932 1956 return 1;
1933 1957 }else{
1934 1958 return 0;
1935 1959 }
@@ -1935,9 +1959,9 @@
1935 1959 }
1936 1960
1937 1961 }
1938 1962
1939 -function qcld_wpbot_input_validation( $data ) {
1963 +function qc_wpbot_input_validation( $data ) {
1940 1964 $data = html_entity_decode($data);
1941 1965 $data = trim($data);
1942 1966 $data = stripslashes($data);
1943 1967 $data = htmlspecialchars($data);
@@ -1942,23 +1966,16 @@
1942 1966 $data = stripslashes($data);
1943 1967 $data = htmlspecialchars($data);
1944 1968 return $data;
1945 1969 }
1946 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1947 -function qcld_small_talk_import(){
1948 - if ( ! current_user_can( 'manage_options' ) ) {
1949 - wp_die();
1950 - }
1970 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1971 +function small_talk_import(){
1951 1972 global $wpdb;
1952 -
1953 1973 $table = $wpdb->prefix.'wpbot_response';
1954 -
1955 1974 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1956 -
1957 1975 foreach ($csvFile as $line) {
1958 1976 $line = str_getcsv($line, ',', '"');
1959 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1960 - $table, array(
1977 + $wpdb->insert($table, array(
1961 1978 'query' => $line[0],
1962 1979 'keyword' => $line[1],
1963 1980 'response' => $line[2],
1964 1981 'category'=> $line[3],
@@ -1965,63 +1982,11 @@
1965 1982 'intent'=> '',
1966 1983 //'lang'=> 'en_US',
1967 1984 ));
1968 1985 }
1969 -
1970 1986 $table2 = $wpdb->prefix.'wpbot_response_category';
1971 -
1972 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1973 - $table2, array(
1987 + $wpdb->insert($table2, array(
1974 1988 'name' => 'smalltalk',
1975 1989 ));
1976 -
1977 1990 update_option( 'qcld_small_talk_imported', 'yes' );
1978 1991
1979 -}
1980 -function sanitize_array( &$array ) {
1981 - if (!empty($array)) {
1982 - foreach ($array as &$value) {
1983 - if( !is_array($value) )
1984 - // sanitize if value is not an array
1985 - $value = sanitize_text_field( esc_html($value) );
1986 - else
1987 - // go inside this function again
1988 - sanitize_array(esc_html($value));
1989 - }
1990 - }
1991 - return $array;
1992 -}
1993 -function qcld_wpbot_meta_tags() {
1994 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1995 -}
1996 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1997 -
1998 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1999 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
2000 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
2001 - function qcld_change_language_from_center() {
2002 - if ( ! current_user_can( 'manage_options' ) ) {
2003 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
2004 - }
2005 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
2006 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
2007 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
2008 - }
2009 - $plugin_path = plugin_dir_path( __FILE__ );
2010 - include $plugin_path . 'includes/admin/settings-fields.php';
2011 - $json_file_path = $plugin_path . 'includes/language-center.json';
2012 -
2013 - $json_string = file_get_contents( $json_file_path );
2014 - if ( isset( $_POST['language'] ) ) {
2015 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
2016 - $language_array= json_decode($json_string)->$language;
2017 - update_option( 'wp_chatbot_language_center_language', $language );
2018 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
2019 - } else {
2020 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
2021 -
2022 - }
2023 - }
2024 -}
2025 -
2026 -// AI Actions Chat Preview
2027 -
1992 +}