PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 3.2.9
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v3.2.9
8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 8.5.2 All 533 releases
← All changes | functions.php +475 -618 8.7.03.2.9 View file →
@@ -3,129 +3,18 @@
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(){
47 -?>
48 - <script>
49 - jQuery( document ).ready(function() {
50 - 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 - }
57 - }, 500);
58 - });
59 - </script>
60 -<?php
61 -}
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 -}
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
116 8 function wp_chatbot_load_footer_html(){
117 - if ( get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 -
9 + if (get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() == true) {
119 10 ?>
120 11 <style>
121 12 <?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
13 + echo get_option('wp_chatbot_custom_css');
124 14 }
125 15 ?>
126 16 </style>
127 -
128 17 <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
129 18 if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
130 19 $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
131 20 } else {
@@ -133,46 +22,47 @@
133 22 }
134 23 ?>
135 24 <style>
136 25 .wp-chatbot-container {
137 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
26 + background-image: url(<?php echo $qcld_wb_chatbot_board_bg_path;
27 +?>) !important;
138 28 }
139 29 </style>
140 30 <?php }
141 31 $wp_chatbot_enable_rtl = "";
142 - if (get_option('enable_wp_chatbot_rtl') == '1') {
32 + if (get_option('enable_wp_chatbot_rtl')) {
143 33 $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
144 34 }
145 35 $wp_chatbot_enable_mobile_screen = "";
146 - // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
36 + if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 37 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 - // }
38 + }
149 39 ?>
150 - <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>" style="<?php if(get_option('disable_floating_button') == '1'){ echo 'display:none';} ?>">
40 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen; ?>">
151 41 <div id="wp-chatbot-integration-container">
152 42 <div class="wp-chatbot-integration-button-container">
153 43 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 - <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
155 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
44 + <a href="skype:<?php echo get_option('enable_wp_chatbot_skype_id'); ?>?chat"><span
45 + class="inetegration-skype-btn" title="<?php _e('Skype', 'wpchatbot'); ?>"> </span></a>
156 46 <?php } ?>
157 47 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
158 - <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
48 + <a href="<?php echo 'https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num'); ?>"
159 49 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
50 + title="<?php _e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 51 <?php } ?>
162 52 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
163 - <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
53 + <a href="<?php echo 'https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc'); ?>"
164 54 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
55 + title="<?php _e('Viber', 'wpchatbot'); ?>"></span></a>
166 56 <?php } ?>
167 57 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
168 - <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
58 + <a href="tel:<?php echo get_option('qlcd_wp_chatbot_phone'); ?>"><span
169 59 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
60 + title="<?php _e('Phone', 'wpchatbot'); ?>"> </span></a>
171 61 <?php } ?>
172 62 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
173 - <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
174 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
63 + <a href="<?php echo get_option('qlcd_wp_chatbot_weblink'); ?>" target="_blank"><span
64 + class="intergration-weblink" title="<?php _e('Web Link', 'wpchatbot'); ?>"></span></a>
175 65 <?php } ?>
176 66 </div>
177 67 </div>
178 68 <?php
@@ -185,9 +75,9 @@
185 75 }
186 76 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 77 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 78 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
79 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 80 }
191 81 ?>
192 82 <?php
193 83 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -192,13 +82,11 @@
192 82 <?php
193 83 if (get_option('disable_wp_chatbot_notification') != 1) {
194 84 ?>
195 85 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
196 - <div class="wp-chatbot-notification-controller">
197 - <span class="wp-chatbot-notification-close">
198 - <?php esc_html_e('X', 'chatbot'); ?>
199 - </span>
200 - </div>
86 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">
87 + <?php _e('X', 'wpchatbot'); ?>
88 + </span></div>
201 89 <?php
202 90 $testingTip="";
203 91 if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
204 92 $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
@@ -209,18 +97,18 @@
209 97 }
210 98 ?>
211 99 <div class="wp-chatbot-notification-agent-profile">
212 100 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
214 - <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>
101 + src="<?php echo $wp_chatbot_custom_agent_path; ?>" alt=""></div>
102 + <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>
215 103 </div>
216 104 <?php
217 105 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
218 - $notifications = qcld_wb_chatbot_func_str_replace(wp_kses_post(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications'))));
106 + $notifications = qcld_wb_chatbot_func_str_replace(unserialize(get_option('qlcd_wp_chatbot_notifications')));
219 107
220 108 ?>
221 109
222 - <div class="wp-chatbot-notification-message"><?php echo esc_html($notifications[0]); ?></div>
110 + <div class="wp-chatbot-notification-message"><?php echo $notifications[0]; ?></div>
223 111 </div>
224 112 <?php } ?>
225 113 <!--wp-chatbot-board-container-->
226 114 <div id="wp-chatbot-ball" class="">
@@ -227,79 +115,20 @@
227 115 <div class="wp-chatbot-ball">
228 116 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
229 117 <?php
230 118 if (get_option('wp_chatbot_icon') == "custom.png") {
231 - $wp_chatbot_custom_icon_path = (!empty(get_option('wp_chatbot_custom_icon_path'))) ? get_option('wp_chatbot_custom_icon_path') : QCLD_wpCHATBOT_IMG_URL . 'icon-1.png';
232 -
119 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
233 120 } else if (get_option('wp_chatbot_icon') != "custom.png") {
234 121 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 122 } else {
236 123 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 124 }
238 - $_wpbot_icon_video = get_option('wp_chatbot_icon_video', '');
239 - $_wpbot_video_is_youtube = ( strpos( $_wpbot_icon_video, 'youtube.com' ) !== false || strpos( $_wpbot_icon_video, 'youtu.be' ) !== false );
240 - $_wpbot_youtube_embed_src = $_wpbot_video_is_youtube ? qcld_wpbot_youtube_icon_embed_src( $_wpbot_icon_video ) : '';
241 - $_wpbot_video_delay_ms = absint( get_option( 'wp_chatbot_icon_video_delay', 0 ) ) * 1000;
242 -
243 - $wp_chatbot_ball_is_youtube = ($_wpbot_icon_video !== '' && (strpos($_wpbot_icon_video, 'youtube.com') !== false || strpos($_wpbot_icon_video, 'youtu.be') !== false));
244 - $wp_chatbot_ball_is_video = ($_wpbot_icon_video !== '' && !$wp_chatbot_ball_is_youtube);
245 - $wp_chatbot_ball_has_video = ($wp_chatbot_ball_is_youtube || $wp_chatbot_ball_is_video);
246 125 ?>
247 - <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
248 - alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
249 - id="wp-chatbot-ball-icon-img"
250 - <?php if ($wp_chatbot_ball_has_video) { echo 'style="display:none;"'; } ?> >
251 - <?php if ( $_wpbot_icon_video !== '' ) : ?>
252 - <?php if ( $_wpbot_video_is_youtube && $_wpbot_youtube_embed_src !== '' ) : ?>
253 - <iframe class="wpbot-icon-video" src="<?php echo $_wpbot_video_delay_ms > 0 ? 'about:blank' : esc_url( $_wpbot_youtube_embed_src ); ?>" data-wpbot-yt-src="<?php echo esc_url( $_wpbot_youtube_embed_src ); ?>" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture"></iframe>
254 - <?php elseif ( ! $_wpbot_video_is_youtube ) : ?>
255 - <video class="wpbot-icon-video" src="<?php echo esc_url( $_wpbot_icon_video ); ?>" autoplay muted loop playsinline preload="auto"></video>
256 - <?php endif; ?>
257 - <?php endif; ?>
126 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
127 + alt="wpChatIcon">
128 +
258 129 </div>
259 -
260 130 </div>
261 - <?php
262 - if ( $_wpbot_icon_video !== '' ) :
263 - ?>
264 - <script>
265 - (function(){
266 - var wpbotDelay = <?php echo (int) $_wpbot_video_delay_ms; ?>;
267 - function wpbotForcePlay(){
268 - var v = document.querySelector('#wp-chatbot-ball video.wpbot-icon-video');
269 - if( v ){
270 - v.muted = true;
271 - v.volume = 0;
272 - v.loop = true;
273 - var tries = 0, maxTries = 30;
274 - var timer = setInterval(function(){
275 - tries++;
276 - v.play().then(function(){ clearInterval(timer); }).catch(function(){});
277 - if( tries >= maxTries ) clearInterval(timer);
278 - }, 300);
279 - }
280 - var yt = document.querySelector('#wp-chatbot-ball iframe.wpbot-icon-video');
281 - if( yt ){
282 - var ytSrc = yt.getAttribute('data-wpbot-yt-src');
283 - if( ytSrc && ( !yt.getAttribute('src') || yt.getAttribute('src') === 'about:blank' || yt.getAttribute('src').indexOf('autoplay=1') === -1 ) ){
284 - yt.setAttribute('src', ytSrc);
285 - }
286 - }
287 - }
288 - function wpbotDelayedPlay(){
289 - setTimeout(wpbotForcePlay, wpbotDelay);
290 - }
291 - if( document.readyState === 'loading' ){
292 - document.addEventListener('DOMContentLoaded', wpbotDelayedPlay);
293 - } else {
294 - wpbotDelayedPlay();
295 - }
296 - window.addEventListener('load', function(){
297 - setTimeout(wpbotForcePlay, wpbotDelay);
298 - });
299 - })();
300 - </script>
301 - <?php endif; ?>
302 131 <?php
303 132 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 133 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 134 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -308,18 +137,16 @@
308 137 if (get_option('enable_wp_chatbot_messenger') == 1 && get_option('enable_wp_chatbot_messenger_floating_icon') == 1) {
309 138 ?>
310 139 <!-- wp-chatbot-board-container-->
311 140 <script>
312 -
313 141 window.fbAsyncInit = function () {
314 142 FB.init({
315 - appId: '<?php echo esc_js($fb_app_id); ?>',
143 + appId: '<?php echo $fb_app_id;?>',
316 144 autoLogAppEvents: true,
317 145 xfbml: true,
318 146 version: 'v2.12'
319 147 });
320 148 };
321 -
322 149 (function (d, s, id) {
323 150 var js, fjs = d.getElementsByTagName(s)[0];
324 151 if (d.getElementById(id)) return;
325 152 js = d.createElement(s);
@@ -328,13 +155,13 @@
328 155 fjs.parentNode.insertBefore(js, fjs);
329 156 }(document, 'script', 'facebook-jssdk'));
330 157 </script>
331 158 <div class="fb-customerchat"
332 - page_id="<?php echo esc_attr($fb_page_id); ?>"
159 + page_id="<?php echo $fb_page_id; ?>"
333 160 greeting_dialog_display="hide"
334 - theme_color="<?php echo esc_attr($fb_mgs_color); ?>"
335 - logged_in_greeting="<?php echo esc_attr($fb_mgs_in); ?>"
336 - logged_out_greeting="<?php echo esc_attr($fb_mgs_out); ?>"></div>
161 + theme_color="<?php echo $fb_mgs_color; ?>"
162 + logged_in_greeting="<?php echo $fb_mgs_in; ?>"
163 + logged_out_greeting="<?php echo $fb_mgs_out; ?>"></div>
337 164 <?php
338 165 }
339 166 ?>
340 167 <!--container-->
@@ -339,16 +166,15 @@
339 166 ?>
340 167 <!--container-->
341 168 <!--wp-chatbot-ball-wrapper-->
342 169 </div>
343 -
170 + <audio id="wp-chatbot-proactive-audio" <?php if (get_option('enable_wp_chatbot_sound_initial') == 1) {
171 + echo "autoplay";
172 + } ?>>
173 + <source src="<?php echo QCLD_wpCHATBOT_IMG_URL; ?>pro-active.mp3">
174 + </source>
175 + </audio>
344 176 <?php
345 -
346 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
347 - echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
348 - delete_transient( 'qcld_bot_clear_cache' );
349 - }
350 -
351 177 }else{
352 178 ?>
353 179 <script>
354 180 var openingHourIsFn = 1;
@@ -359,28 +185,23 @@
359 185 //wp_chatbot load control handler.
360 186 function wp_chatbot_load_controlling(){
361 187 $wp_chatbot_load = true;
362 188
363 -
189 + if (get_option('wp_chatbot_show_home_page') == 'off' && is_home()) {
190 + $wp_chatbot_load = false;
191 + }
192 + if (get_option('wp_chatbot_show_posts') == 'off' && 'post' == get_post_type()) {
193 + $wp_chatbot_load = false;
194 + }
364 195 if (get_option('wp_chatbot_show_pages') == 'off') {
365 196 $wp_chatbot_select_pages = unserialize(get_option('wp_chatbot_show_pages_list'));
366 197 if (is_page() && !empty($wp_chatbot_select_pages)) {
367 -
368 198 if (in_array(get_the_ID(), $wp_chatbot_select_pages) == true) {
369 -
370 199 $wp_chatbot_load = true;
371 200 } else {
372 201 $wp_chatbot_load = false;
373 202 }
374 -
375 203 }
376 -
377 - if(function_exists('is_shop')){
378 - if (is_shop() || is_cart() || is_checkout() || 'product' == get_post_type()) {
379 - $wp_chatbot_load = false;
380 - }
381 - }
382 -
383 204 }
384 205 if (get_option('wp_chatbot_show_wpcommerce') == 'off') {
385 206
386 207 }
@@ -391,34 +212,26 @@
391 212 if (has_shortcode($page->post_content, 'wpwbot')) {
392 213 $wp_chatbot_load = false;
393 214 }
394 215 }
395 -
396 - $post_list = maybe_unserialize(get_option('wp_chatbot_exclude_post_list'));
397 -
398 - if( is_array( $post_list ) && in_array(get_post_type(), $post_list)){
399 - $wp_chatbot_load = false;
216 + //Opening Hours for wpwBot.
217 + if (get_option('enable_wp_chatbot_opening_hour') == 1) {
218 + if(wp_chatbot_check_opening_hours()==false){
219 + $wp_chatbot_load = false;
220 + }else{
221 + $wp_chatbot_load = true;
222 + }
400 223 }
224 +
401 225 if (wp_chatbot_is_mobile() && get_option('disable_wp_chatbot_on_mobile') == 1) {
402 226 $wp_chatbot_load = false;
403 227 }
404 -
405 - if (get_option('wp_chatbot_show_home_page') == 'off' && is_home()) {
406 - $wp_chatbot_load = false;
407 - }
408 -
409 - if (get_option('wp_chatbot_show_posts') == 'off' && 'post' == get_post_type()) {
410 - $wp_chatbot_load = false;
411 - }
412 -
413 - if(is_admin()){
414 - $wp_chatbot_load = false;
415 - }
228 +
416 229 return $wp_chatbot_load;
417 230 }
418 231 //checking Devices
419 232 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
233 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 234 if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
422 235 return true;
423 236 } else {
424 237 return false;
@@ -425,13 +238,13 @@
425 238 }
426 239 }
427 240 //Checking wpwbot opening hour
428 241 function wp_chatbot_check_opening_hours(){
429 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
430 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
242 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
243 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 244 $is_wpwbot_open =false;
432 245 if(get_option('wpwbot_hours')) {
433 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
246 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
434 247 if (isset($wpwbot_times[$curent_day])) {
435 248 $day_times = $wpwbot_times[$curent_day];
436 249 if (!empty($day_times)) {
437 250 foreach ($day_times as $day_time) {
@@ -443,8 +256,183 @@
443 256 }
444 257 }
445 258 return $is_wpwbot_open;
446 259 }
260 +//wpwBot shortcode.
261 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
262 +function wp_chatbot_short_code($atts = []){
263 + ob_start();
264 + wp_chatbot_shortcode_dom($atts);
265 + $content = ob_get_clean();
266 + return $content;
267 +}
268 +function wp_chatbot_shortcode_dom($atts){
269 + //Defaults & Set Parameters for shortcode
270 + extract(shortcode_atts(
271 + array(
272 + 'template' => '01',
273 + ), $atts
274 + ));
275 + ?>
276 + <style>
277 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
278 + </style>
279 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
280 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
281 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
282 + } else {
283 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
284 + }
285 + ?>
286 + <style>
287 + .wp-chatbot-container {
288 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
289 + }
290 + </style>
291 +<?php }
292 + $wp_chatbot_enable_rtl = "";
293 + if (get_option('enable_wp_chatbot_rtl')) {
294 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
295 + }
296 + ?>
297 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
298 + <?php
299 + //Get wpcommerce cart
300 +
301 + $qcld_wb_chatbot_theme = 'template-' . $template;
302 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
303 + 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');
304 + wp_enqueue_style('qcld-wp-chatbot-style');
305 + }
306 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
307 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
308 + } else {
309 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
310 + }
311 + ?>
312 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
313 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
314 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
315 + <?php
316 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
317 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
318 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
319 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
320 + } else {
321 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
322 + }
323 + ?>
324 + <div class="wp-chatbot-notification-agent-profile">
325 + <div class="wp-chatbot-notification-widget-avatar"><img
326 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
327 + <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>
328 + </div>
329 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
330 + </div>
331 + <!--wp-chatbot-board-container-->
332 + <div id="wp-chatbot-ball" class="">
333 + <div class="wp-chatbot-ball">
334 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
335 + <?php
336 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
337 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
338 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
339 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
340 + } else {
341 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
342 + }
343 + ?>
344 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
345 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
346 + </div>
347 + <!-- wp-chatbot-board-container-->
348 + <?php endif; ?>
349 + <!--container-->
350 + <!--wp-chatbot-ball-wrapper-->
351 + </div>
352 +<?php } ?>
353 +<?php
354 +//Create shortcode for wpwBot for pages.
355 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
356 +function wp_chatbot_page_short_code(){
357 + ob_start();
358 + wp_chatbot_page_dom();
359 + $content = ob_get_clean();
360 + return $content;
361 +}
362 +function wp_chatbot_page_dom(){ ?>
363 + <style>
364 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
365 + </style>
366 + <?php
367 + //Get wpcommerce cart
368 +
369 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
370 + $wp_chatbot_enable_rtl = "";
371 + if (get_option('enable_wp_chatbot_rtl') == 1) {
372 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
373 + }
374 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
375 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
376 + } else {
377 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
378 + }
379 +}
380 +//shortcode for wpWBot mobile app
381 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
382 +function wp_chatbot_mobile_app_short_code(){ ?>
383 + <style>
384 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
385 + </style>
386 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
387 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
388 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
389 + } else {
390 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
391 + }
392 + ?>
393 + <style>
394 + .wp-chatbot-container {
395 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
396 + }
397 + </style>
398 +<?php }
399 + $wp_chatbot_enable_rtl = "";
400 + if (get_option('enable_wp_chatbot_rtl')) {
401 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
402 + }
403 + ?>
404 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
405 + <?php
406 + // keep traking app template.
407 + $template_app = 'yes';
408 + //Get wpcommerce cart
409 +
410 + //Handling shortcode enqeue and remove features part.
411 + define('wpCOMMERCE', true);
412 + wp_enqueue_script('jquery');
413 +
414 +
415 + wp_enqueue_script('wc-address-i18n');
416 + wp_enqueue_script('wc-country-select');
417 +
418 +
419 + // add the action
420 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
421 + if (!isset($_COOKIE['from_app'])) {
422 + setcookie('from_app', 'yes', time() + 3600);
423 + }
424 + }
425 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
426 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
427 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
428 + } else {
429 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
430 + }
431 + ?>
432 + </div>
433 + <?php
434 +}
447 435
448 436 /**
449 437 * wpwBot Search keyword product
450 438 */
@@ -450,20 +438,13 @@
450 438 */
451 439 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 440 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 441 function qcld_wb_chatbot_keyword(){
454 - // Verify nonce for security
455 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
456 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
457 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
458 - wp_die();
459 - }
460 -
461 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
442 + $keyword = sanitize_text_field($_POST['keyword']);
462 443 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 444 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
445 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
446 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
466 447 //Merging all query together.
467 448 $argu_params = array(
468 449 'post_type' => 'product',
469 450 'post_status' => 'publish',
@@ -505,9 +486,9 @@
505 486 endwhile;
506 487 wp_reset_postdata();
507 488 $html .= '</ul>';
508 489 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
509 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($keyword) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
490 + $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>';
510 491 }
511 492 }
512 493 $html .= '</div>';
513 494 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,16 +516,16 @@
535 516 }
536 517 }
537 518 $html .= '</ul>';
538 519 if ($total_product_num > $product_per_page && $product_per_page > 0) {
539 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($more_product_ids) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
520 + $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>';
540 521 }
541 522 }
542 523 $html .= '</div>';
543 524 }
544 525 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
545 - wp_send_json($response);
546 -
526 + echo wp_send_json($response);
527 + wp_die();
547 528 }
548 529 /**
549 530 * wpwBot Categories
550 531 */
@@ -552,22 +533,23 @@
552 533 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 534 function qcld_wb_chatbot_category(){
554 535 $category_type="common";
555 536 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
537 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
538 +
557 539 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
540 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 541 }
560 542 $html = "";
561 543 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
544 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 545 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 546 $category_type="hasChilds";
565 547 }
566 548 $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>';
567 549 }
568 - wp_send_json($html);
569 -
550 + echo wp_send_json($html);
551 + wp_die();
570 552 }
571 553 /**
572 554 * wpwBot Sub categories
573 555 */
@@ -573,16 +555,16 @@
573 555 */
574 556 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 557 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 558 function qcld_wb_chatbot_sub_category(){
577 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
578 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
559 + $parent_id = stripslashes($_POST['parent_id']);
560 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 561 $html = "";
580 562 foreach ($terms as $term) {
581 563 $html .= '<span class="qcld-chatbot-product-category" data-category-type="common" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
582 564 }
583 - wp_send_json($html);
584 -
565 + echo wp_send_json($html);
566 + wp_die();
585 567 }
586 568 /**
587 569 * wpwBot category product
588 570 */
@@ -588,12 +570,12 @@
588 570 */
589 571 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 572 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 573 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
593 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
574 + $category_id = stripslashes($_POST['category']);
575 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
576 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
577 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
596 578 //Merging all query together.
597 579 $argu_params = array(
598 580 'post_type' => 'product',
599 581 'post_status' => 'publish',
@@ -655,9 +637,9 @@
655 637 endwhile;
656 638 wp_reset_postdata();
657 639 $html .= '</ul>';
658 640 if ($total_product_num > $product_per_page && $product_per_page >0) {
659 - $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>';
641 + $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>';
660 642 }
661 643 $html .= '</div>';
662 644 } else {
663 645 $html = '';
@@ -662,9 +644,10 @@
662 644 } else {
663 645 $html = '';
664 646 }
665 647 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
666 - wp_send_json($response);
648 + echo wp_send_json($response);
649 + wp_die();
667 650 }
668 651 /**
669 652 * wpwBot latest, featured, recent product
670 653 */
@@ -670,11 +653,11 @@
670 653 */
671 654 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
672 655 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
673 656 function qcld_wb_chatbot_featured_products(){
674 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
675 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
676 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
657 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
658 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
659 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
677 660 //get featured products query.
678 661 $argu_params = array('post_status' => 'publish',
679 662 'posts_per_page' => $product_per_page,
680 663 'post_type' => 'product',
@@ -718,14 +701,15 @@
718 701 endwhile;
719 702 wp_reset_postdata();
720 703 $html .= '</ul>';
721 704 if ($total_product_num > $product_per_page) {
722 - $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>';
705 + $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>';
723 706 }
724 707 }
725 708 $html .= '</div>';
726 709 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
727 - wp_send_json($response);
710 + echo wp_send_json($response);
711 + wp_die();
728 712 }
729 713 //Product display controll
730 714 function wp_chatbot_product_controlling($product_id){
731 715 $display_product = true;
@@ -740,11 +724,11 @@
740 724 //Get Sale products
741 725 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
742 726 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
743 727 function qcld_wb_chatbot_sale_products(){
744 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
745 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
746 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
728 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
729 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
730 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
747 731 //get sale products query.
748 732 $argu_params = array(
749 733 'post_type' => 'product',
750 734 'post_status' => 'publish',
@@ -816,25 +800,26 @@
816 800 endwhile;
817 801 wp_reset_postdata();
818 802 $html .= '</ul>';
819 803 if ($total_product_num > $product_per_page) {
820 - $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>';
804 + $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>';
821 805 }
822 806 }
823 807 $html .= '</div>';
824 808 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
825 - wp_send_json($response);
809 + echo wp_send_json($response);
810 + wp_die();
826 811 }
827 812 //load more
828 813 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 814 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 815 function qcld_wb_chatbot_load_more(){
831 - $offset = intval( wp_unslash( $_POST['offset'] ) );
832 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
833 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
834 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
816 + $offset = stripslashes($_POST['offset']);
817 + $search_type = stripslashes($_POST['search_type']);
818 + $search_term = stripslashes($_POST['search_term']);
819 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
820 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
821 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
837 822 $next_offset = intval($product_per_page + $offset);
838 823 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
839 824 //if have multiple ids then explode else have single need to array push
840 825 if (strpos($search_term, ',') !== false) {
@@ -956,15 +941,16 @@
956 941 $html .= '';
957 942 }
958 943 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
959 944 }
960 - wp_send_json($response);
945 + echo wp_send_json($response);
946 + wp_die();
961 947 }
962 948 //product details
963 949 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 950 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 951 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
952 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 953 //Tracking product view from chat board
968 954 wp_chatbot_view_track_product_by_id($product_id);
969 955 //wpcommerce product factory
970 956 $wc_pf = new WC_Product_Factory();
@@ -992,9 +978,9 @@
992 978 }
993 979 }
994 980 $product_image .= '</ul></div>';
995 981 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
996 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
982 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 983 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 984 //Handle variable product start
999 985 $variations = "";
1000 986 $add_cart_button = "";
@@ -1035,13 +1021,12 @@
1035 1021 } else {
1036 1022 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1037 1023 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1024 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 - $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1025 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1040 1026 foreach ($values as $value) {
1041 - $attr_key = 'attribute_' . sanitize_title( $name );
1042 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
1043 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
1027 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1028 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1029 } else {
1045 1030 $selected_value = '';
1046 1031 }
1047 1032 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1048,29 +1033,30 @@
1048 1033 }
1049 1034 $variations .= '</select></div>';
1050 1035 }
1051 1036 }
1052 - $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="" />';
1037 + $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="" />';
1053 1038 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1054 1039 } else {
1055 - $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')))) . '" />';
1040 + $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'))) . '" />';
1056 1041 }
1057 1042 //Handle variable product end.
1058 - $product_quantity .= '<label for="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</label>
1043 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1059 1044 <input type="number" id="vPQuantity" value="1" />';
1060 1045 }
1061 1046 //$response=$full_size_image;
1062 1047 $response = array('title' => $product_title, 'description' => $product_desc, 'image' => $product_image, 'price' => $product_price, 'sku' => $product_sku, 'quantity' => $product_quantity, 'buttton' => $add_cart_button, 'variation' => $variations, 'type' => $product_type, 'debug' => $debug);
1063 - wp_send_json($response);
1048 + echo wp_send_json($response);
1049 + wp_die();
1064 1050 }
1065 1051 //Add to cart for variable product.
1066 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1067 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1068 -function qcld_variable_add_to_cart(){
1069 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
1070 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
1071 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
1072 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
1052 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1053 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1054 +function qcld_wb_chatbot_variable_add_to_cart(){
1055 + $product_id = stripslashes($_POST['p_id']);
1056 + $quantity = stripslashes($_POST['quantity']);
1057 + $variations_id = stripslashes($_POST['variations_id']);
1058 + $attrs = stripslashes($_POST['attributes']);
1073 1059 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1060 $attributes = array();
1075 1061 foreach ($attrs as $attr) {
1076 1062 $single = explode("#", $attr);
@@ -1081,68 +1067,60 @@
1081 1067 }
1082 1068 global $wpcommerce;
1083 1069 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1084 1070 if ($result != false) {
1085 - wp_send_json('variable');
1071 + echo wp_send_json('variable');
1086 1072 } else {
1087 - wp_send_json('error');
1073 + echo wp_send_json('error');
1088 1074 }
1075 + wp_die();
1089 1076 }
1090 1077 //Add to cart for simple product.
1091 1078 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1079 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1080 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1081 + $product_id = stripslashes($_POST['product_id']);
1082 + $product_quantity = stripslashes($_POST['quantity']);
1096 1083 global $wpcommerce;
1097 1084 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1085 if ($result != false) {
1099 - wp_send_json('simple');
1086 + echo wp_send_json('simple');
1100 1087 } else {
1101 - wp_send_json('error');
1088 + echo wp_send_json('error');
1102 1089 }
1090 + wp_die();
1103 1091 }
1104 1092 //Support part
1105 1093 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1094 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1095 function qcld_wb_chatbot_support_email(){
1108 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1109 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
1110 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
1111 - }
1112 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1113 - $email = sanitize_email(wp_unslash($_POST['email']));
1114 - $message = sanitize_text_field(wp_unslash($_POST['message']));
1115 - $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1096 + $name = trim(sanitize_text_field($_POST['name']));
1097 + $email = sanitize_email($_POST['email']);
1098 + $message = sanitize_text_field($_POST['message']);
1099 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1116 1100 //Extract Domain
1117 1101 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1102 + $url = parse_url($url);
1119 1103 $domain = $url['host'];
1120 1104 //$admin_email = "admin@" . $domain;
1121 - $admin_email = sanitize_email(get_option('admin_email'));
1122 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1123 -
1124 -
1125 - if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1126 - $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 - }else{
1128 - $fromEmail = "wordpress@" . $domain;
1129 - }
1105 + $admin_email = get_option('admin_email');
1106 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1107 + $fromEmail = "wordpress@" . $domain;
1130 1108 //Starting messaging and status.
1131 1109 $response['status'] = 'fail';
1132 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1110 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1133 1111 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
1134 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email'))));
1112 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1135 1113 $response['status'] = 'fail';
1136 1114 } else {
1137 1115 //build email body
1138 1116 $bodyContent = "";
1139 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1140 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1141 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1142 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1143 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1144 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1117 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1118 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1119 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1120 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1121 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1122 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 1123 $to = $toEmail;
1146 1124 $body = $bodyContent;
1147 1125 $headers = array();
1148 1126 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1150,13 +1128,13 @@
1150 1128 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1151 1129 $result = wp_mail($to, $subject, $body, $headers);
1152 1130 if ($result) {
1153 1131 $response['status'] = 'success';
1154 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1132 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1155 1133 }
1156 -
1157 1134 }
1158 - echo wp_json_encode($response);
1135 + ob_clean();
1136 + echo json_encode($response);
1159 1137 die();
1160 1138 }
1161 1139 //Support Phone
1162 1140 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,37 +1139,30 @@
1161 1139 //Support Phone
1162 1140 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1141 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1142 function qcld_wb_chatbot_support_phone(){
1165 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1166 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1167 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1143 + $name = trim(sanitize_text_field($_POST['name']));
1144 + $phone =sanitize_text_field($_POST['phone']);
1168 1145 $subject = 'WPBot Support Mail Request for Call Back';
1169 1146 //Extract Domain
1170 1147 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1148 + $url = parse_url($url);
1172 1149 $domain = $url['host'];
1173 1150 //$admin_email = "admin@" . $domain;
1174 1151 $admin_email = get_option('admin_email');
1175 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1176 -
1177 -
1178 - if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1179 - $fromEmail = sanitize_email(get_option('qlcd_wp_chatbot_from_email'));
1180 - }else{
1181 - $fromEmail = "wordpress@" . $domain;
1182 - }
1152 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1153 + $fromEmail = "wordpress@" . $domain;
1183 1154 //Starting messaging and status.
1184 1155 $response['status'] = 'fail';
1185 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1156 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1186 1157 //build email body
1187 1158 $bodyContent = "";
1188 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1189 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1190 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1191 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1192 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1193 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1159 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1160 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1161 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1162 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1163 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1164 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1165 $to = $toEmail;
1195 1166 $body = $bodyContent;
1196 1167 $headers = array();
1197 1168 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1199,17 +1170,39 @@
1199 1170 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1200 1171 $result = wp_mail($to, $subject, $body, $headers);
1201 1172 if ($result) {
1202 1173 $response['status'] = 'success';
1203 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1174 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1204 1175 }
1205 - echo wp_json_encode($response);
1176 + ob_clean();
1177 + echo json_encode($response);
1206 1178 die();
1207 1179 }
1208 -// Order Status part. removed
1209 -
1180 +// Order Status part.
1181 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1182 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1183 +function qcld_wb_chatbot_check_user(){
1184 + global $wpcommerce;
1185 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1186 + $response = array();
1187 + $response['message'] = "";
1188 + if (username_exists($user_name)) {
1189 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1190 + $response['status'] = "success";
1191 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1192 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1193 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1194 + $response = get_order_by_username($user_name);
1195 + }
1196 + } else {
1197 + $response['status'] = "fail";
1198 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1199 + }
1200 + echo wp_send_json($response);
1201 + die();
1202 +}
1210 1203 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1204 + return $items[rand(0, count($items) - 1)];
1212 1205 }
1213 1206 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1207 $refined_mesgses = array();
1215 1208 foreach ($messages as $message) {
@@ -1224,21 +1217,22 @@
1224 1217 // First check the nonce, if it fails the function will break
1225 1218 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1219 // Nonce is checked, get the POST data and sign user on
1227 1220 $info = array();
1228 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1229 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1221 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1222 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1223 $info['remember'] = true;
1231 1224 $user_signon = wp_signon($info, false);
1232 1225 $response = array();
1233 1226 if (is_wp_error($user_signon)) {
1234 1227 $response['status'] = "fail";
1235 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1228 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1236 1229 } else {
1237 1230 $response = get_order_by_username($info['user_login']);
1238 1231 $response['status'] = "success";
1239 1232 }
1240 - wp_send_json($response);
1233 + echo wp_send_json($response);
1234 + die();
1241 1235 }
1242 1236 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1243 1237 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1244 1238 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1244,9 +1238,10 @@
1244 1238 function qcld_wb_chatbot_loged_in_user_orders(){
1245 1239 $current_user = wp_get_current_user();
1246 1240 $user_name = $current_user->user_login;
1247 1241 $response = get_order_by_username($user_name);
1248 - wp_send_json($response);
1242 + echo wp_send_json($response);
1243 + die();
1249 1244 }
1250 1245 function get_order_by_username($user_name){
1251 1246 global $post;
1252 1247 $response = array();
@@ -1264,28 +1259,28 @@
1264 1259 ));
1265 1260 $response['order_num'] = count($customer_orders);
1266 1261 $order_html = '';
1267 1262 if ($response['order_num'] > 0) {
1268 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1263 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1269 1264 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1265 <div class="wp-chatbot-orders-header">
1271 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1272 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1273 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1274 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1266 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1267 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1268 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1269 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1270 </div>';
1276 1271 foreach ($customer_orders as $order) {
1277 1272 //Formatting order summery
1278 1273 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1279 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1274 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1280 1275 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1281 1276 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1282 1277 } else {
1283 - $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1278 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1284 1279 }
1285 1280 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1281 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1282 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1283 <div class="order-items">';
1289 1284 $singleOrder = new WC_Order($order->ID);
1290 1285 $items = $singleOrder->get_items();
1291 1286 foreach ($items as $item) {
@@ -1298,9 +1293,9 @@
1298 1293 }
1299 1294 $order_html .= '</div>';
1300 1295 } else {
1301 1296 $response['message'] .= get_option('qlcd_wp_chatbot_sorry') . '! <strong>' . $user_name . '</strong>';
1302 - $order_html .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found')))) . '</p>';
1297 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1303 1298 }
1304 1299 $response['html'] = $order_html;
1305 1300 return $response;
1306 1301 }
@@ -1324,11 +1319,9 @@
1324 1319 if (sizeof($viewed_products) > 15) {
1325 1320 array_shift($viewed_products);
1326 1321 }
1327 1322 // Store for session only
1328 - if( function_exists( 'wc_setcookie' ) ){
1329 - wc_setcookie('wp_chatbot_wpcommerce_recently_viewed', implode('|', $viewed_products));
1330 - }
1323 + wc_setcookie('wp_chatbot_wpcommerce_recently_viewed', implode('|', $viewed_products));
1331 1324 }
1332 1325 add_action('template_redirect', 'wp_chatbot_track_product_view', 20);
1333 1326 //recent view product ajax
1334 1327 add_action('wp_ajax_qcld_wb_chatbot_recently_viewed_products', 'qcld_wb_chatbot_recently_viewed_products');
@@ -1336,10 +1329,10 @@
1336 1329 function qcld_wb_chatbot_recently_viewed_products(){
1337 1330 // Get wpCommerce Global
1338 1331 $_pf = new WC_Product_Factory();
1339 1332 //show post per page.
1340 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1341 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1333 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1334 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1342 1335 // Get recently viewed product cookies data
1343 1336 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1344 1337 $viewed_products = array_filter(array_map('absint', $viewed_products));
1345 1338 //get featured products if has.
@@ -1345,9 +1338,9 @@
1345 1338 //get featured products if has.
1346 1339 $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'))));
1347 1340 //Getting recently vieew products.
1348 1341 if (!empty($viewed_products)) {
1349 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1342 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1350 1343 $product_query = new WP_Query(array(
1351 1344 'posts_per_page' => $product_per_page,
1352 1345 'no_found_rows' => 1,
1353 1346 'post_status' => 'publish',
@@ -1355,15 +1348,16 @@
1355 1348 'post__in' => $viewed_products,
1356 1349 ));
1357 1350 //Getting featured products
1358 1351 } else if ($featured_products->post_count > 0) {
1359 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1352 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1360 1353 $product_query = $featured_products;
1361 1354 } else {
1362 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1355 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1363 1356 //Getting recent products
1364 1357 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1365 1358 }
1359 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1366 1360 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1367 1361 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1368 1362 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1369 1363 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1370,10 +1364,10 @@
1370 1364 } else {
1371 1365 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1372 1366 }
1373 1367 $html = '<div class="wp-chatbot-agent-profile">
1374 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1375 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1368 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1369 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1376 1370 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1377 1371 </div>';
1378 1372 if ($product_query->post_count > 0) {
1379 1373 $html .= '<div class="wp-chatbot-products-area">';
@@ -1385,9 +1379,9 @@
1385 1379 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1380 <div class="wp-chatbot-product-summary">
1387 1381 <div class="wp-chatbot-product-table">
1388 1382 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1383 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1384 <div class="price">' . $product->get_price_html() . '</div>';
1391 1385 $html .= ' </div>
1392 1386 </div>
1393 1387 </div></a>
@@ -1400,9 +1394,10 @@
1400 1394 $html .= '<div class="wp-chatbot-products-area">';
1401 1395 $html .= '<p style="text-align: center">You have no products !';
1402 1396 $html .= '</div>';
1403 1397 }
1404 - wp_send_json($html);
1398 + echo wp_send_json($html);
1399 + die();
1405 1400 }
1406 1401 //Recently viewed product shortcode
1407 1402 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1403 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1407,10 +1402,10 @@
1407 1402 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1403 function qcld_wb_chatbot_recently_viewed_shortcode(){
1409 1404 // Get wpCommerce Global
1410 1405 $_pf = new WC_Product_Factory();
1411 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1412 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1406 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1407 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1413 1408 // Get recently viewed product cookies data
1414 1409 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1415 1410 $viewed_products = array_filter(array_map('absint', $viewed_products));
1416 1411 //get featured products if has.
@@ -1416,9 +1411,9 @@
1416 1411 //get featured products if has.
1417 1412 $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'))));
1418 1413 //Getting recently vieew products.
1419 1414 if (!empty($viewed_products)) {
1420 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1415 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1421 1416 $product_query = new WP_Query(array(
1422 1417 'posts_per_page' => $product_per_page,
1423 1418 'no_found_rows' => 1,
1424 1419 'post_status' => 'publish',
@@ -1426,15 +1421,16 @@
1426 1421 'post__in' => $viewed_products,
1427 1422 ));
1428 1423 //implementing featured products
1429 1424 } else if ($featured_products->post_count > 0) {
1430 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1425 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1431 1426 $product_query = $featured_products;
1432 1427 } else {
1433 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1428 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1434 1429 //Getting recent products
1435 1430 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1436 1431 }
1432 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1437 1433 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1438 1434 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1439 1435 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1440 1436 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1441,11 +1437,11 @@
1441 1437 } else {
1442 1438 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1443 1439 }
1444 1440 $html = '<div class="wp-chatbot-agent-profile">
1445 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1446 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1447 - <div class="wp-chatbot-bubble">' . esc_html($wp_chatbot_product_title) . '</div>
1441 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1442 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1443 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1448 1444 </div>';
1449 1445 if ($product_query->post_count > 0) {
1450 1446 $html .= '<div class="wp-chatbot-products-area">';
1451 1447 $html .= '<ul class="wp-chatbot-products">';
@@ -1456,9 +1452,9 @@
1456 1452 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1453 <div class="wp-chatbot-product-summary">
1458 1454 <div class="wp-chatbot-product-table">
1459 1455 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1456 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1457 <div class="price">' . $product->get_price_html() . '</div>';
1462 1458 $html .= ' </div>
1463 1459 </div>
1464 1460 </div></a>
@@ -1468,9 +1464,9 @@
1468 1464 wp_reset_postdata();
1469 1465 $html .= '</ul></div>';
1470 1466 } else {
1471 1467 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1468 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1469 $html .= '</div>';
1474 1470 }
1475 1471 return $html;
1476 1472 }
@@ -1484,10 +1480,11 @@
1484 1480 $checkout_url = wc_get_checkout_url();
1485 1481 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1486 1482 $items = $wpcommerce->cart->get_cart();
1487 1483 $itemCount = $wpcommerce->cart->cart_contents_count;
1488 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1489 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1484 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1485 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1486 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1490 1487 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1491 1488 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1492 1489 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1493 1490 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1494,15 +1491,15 @@
1494 1491 } else {
1495 1492 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1496 1493 }
1497 1494 $html = '<div class="wp-chatbot-agent-profile">
1498 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1499 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1500 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1495 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1496 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1497 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1501 1498 </div>';
1502 1499 if ($itemCount >= 1) {
1503 1500 $html .= '<div class ="wp-chatbot-cart-container">';
1504 - $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>';
1501 + $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>';
1505 1502 $html .= '<div class ="wp-chatbot-cart-body">';
1506 1503 foreach ($items as $item => $values) {
1507 1504 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1508 1505 //product image
@@ -1520,9 +1517,9 @@
1520 1517 <div class="qcld-wp-chatbot-cell"></div>
1521 1518 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1522 1519 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1523 1520 </div>';
1524 - $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>';
1521 + $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>';
1525 1522 $html .= ' </div>';
1526 1523 } else {
1527 1524 $html .= '<div class="wp-chatbot-cart-container">';
1528 1525 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1528,9 +1525,10 @@
1528 1525 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1529 1526 $html .= '</div>';
1530 1527 }
1531 1528 $response = array('html' => $html, 'items' => $itemCount);
1532 - wp_send_json($response);
1529 + echo wp_send_json($response);
1530 + wp_die();
1533 1531 }
1534 1532 //cart onley for wp chatbot
1535 1533 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1536 1534 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1541,14 +1539,14 @@
1541 1539 $checkout_url = wc_get_checkout_url();
1542 1540 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1543 1541 $items = $wpcommerce->cart->get_cart();
1544 1542 $itemCount = $wpcommerce->cart->cart_contents_count;
1545 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1543 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1546 1544
1547 1545 $html = '';
1548 1546 if ($itemCount >= 1) {
1549 1547 $html .= '<div class ="wp-chatbot-cart-container">';
1550 - $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>';
1551 1549 $html .= '<div class ="wp-chatbot-cart-body">';
1552 1550 foreach ($items as $item => $values) {
1553 1551 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1554 1552 //product image
@@ -1566,17 +1564,18 @@
1566 1564 <div class="qcld-wp-chatbot-cell"></div>
1567 1565 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1568 1566 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1569 1567 </div>';
1570 - $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>';
1571 1569 $html .= ' </div>';
1572 1570 } else {
1573 1571 $html .= '<div class="wp-chatbot-cart-container">';
1574 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1572 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1575 1573 $html .= '</div>';
1576 1574 }
1577 1575 $response = array('html' => $html, 'items' => $itemCount);
1578 - wp_send_json($response);
1576 + echo wp_send_json($response);
1577 + wp_die();
1579 1578 }
1580 1579 //Cart show Shortcode
1581 1580 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1582 1581 function qcld_wb_chatbot_cart_shortcode(){
@@ -1582,10 +1581,11 @@
1582 1581 function qcld_wb_chatbot_cart_shortcode(){
1583 1582 global $wpcommerce;
1584 1583 $items = $wpcommerce->cart->get_cart();
1585 1584 $itemCount = $wpcommerce->cart->cart_contents_count;
1586 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1587 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1585 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1586 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1587 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1588 1588 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1589 1589 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1590 1590 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1591 1591 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1592,15 +1592,15 @@
1592 1592 } else {
1593 1593 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1594 1594 }
1595 1595 $html = '<div class="wp-chatbot-agent-profile">
1596 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1597 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1598 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1596 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1597 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1598 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1599 1599 </div>';
1600 1600 if ($itemCount >= 1) {
1601 1601 $html .= '<div class ="wp-chatbot-cart-container">';
1602 - $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>';
1602 + $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>';
1603 1603 $html .= '<div class ="wp-chatbot-cart-body">';
1604 1604 foreach ($items as $item => $values) {
1605 1605 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1606 1606 //product image
@@ -1618,9 +1618,9 @@
1618 1618 <div class="qcld-wp-chatbot-cell"></div>
1619 1619 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1620 1620 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1621 1621 </div>';
1622 - $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>';
1622 + $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>';
1623 1623 $html .= ' </div>';
1624 1624 } else {
1625 1625 $html .= '<div class="wp-chatbot-cart-container">';
1626 1626 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1632,26 +1632,26 @@
1632 1632 //Updating the cart items.
1633 1633 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1634 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1635 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1636 //getting cart items n
1638 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1639 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1637 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1638 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1639 global $wpcommerce;
1641 1640 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 - wp_send_json($result);
1641 + echo wp_send_json($result);
1642 + wp_die();
1643 1643 }
1644 1644 //Show item after removing from cart page.
1645 1645 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1646 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1647 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1648 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1649 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1650 global $wpcommerce;
1652 1651 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 - wp_send_json($result);
1652 + echo wp_send_json($result);
1653 + wp_die();
1654 1654 }
1655 1655 //Show cart page by shortcode.
1656 1656 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1657 1657 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1659,13 +1659,14 @@
1659 1659 global $wpcommerce;
1660 1660 $itemCount = $wpcommerce->cart->cart_contents_count;
1661 1661 $html = "";
1662 1662 if ($itemCount < 0) {
1663 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1663 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1664 1664 } else {
1665 1665 $html .= do_shortcode("[wpcommerce_cart]");
1666 1666 }
1667 - wp_send_json($html);
1667 + echo wp_send_json($html);
1668 + wp_die();
1668 1669 }
1669 1670 //Show checkout page by shortcode.
1670 1671 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1671 1672 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1674,9 +1675,9 @@
1674 1675 $itemCount = $wpcommerce->cart->cart_contents_count;
1675 1676 $html = "";
1676 1677 if ($itemCount < 0) {
1677 1678 $status = 'no';
1678 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1679 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1679 1680 } else {
1680 1681 $status = 'yes';
1681 1682 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1682 1683 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1682,71 +1683,34 @@
1682 1683 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1683 1684 $html .= $checkout_parmanlink;
1684 1685 }
1685 1686 $response = array('status' => $status, 'html' => $html);
1686 - wp_send_json($response);
1687 + echo wp_send_json($response);
1688 + wp_die();
1687 1689 }
1688 -//_dynamic_intent
1689 -function qcld_dynamic_intent(){
1690 - global $wpdb;
1691 - $intents = array();
1692 -
1693 - $ai_df = get_option('enable_wp_chatbot_dailogflow');
1694 - $custom_intent_labels = maybe_unserialize( get_option('qlcd_wp_custon_intent_label'));
1695 - if($ai_df==1 && isset($custom_intent_labels[0]) && trim($custom_intent_labels[0])!=''):
1696 -
1697 - foreach($custom_intent_labels as $custom_intent_label):
1698 - $intents[] = $custom_intent_label;
1699 - endforeach;
1700 -
1701 - endif;
1702 -
1703 -
1704 -
1705 - if(class_exists('Qcformbuilder_Forms_Admin')){
1706 -
1707 -
1708 - $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1709 -
1710 - if(!empty($results)){
1711 -
1712 - foreach($results as $result){
1713 - $form = maybe_unserialize($result->config);
1714 - $intents[] = $form['name'];
1715 - }
1716 -
1717 - }
1690 +//User login on Checkout page.
1691 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1692 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1693 +function qcld_wb_chatbot_checkout_user_login(){
1694 + // Nonce is checked, get the POST data and sign user on
1695 + $info = array();
1696 + //$info['nonce'] = $_POST['nonce_val'];
1697 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1698 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1699 + $info['remember'] = true;
1700 + $user_signon = wp_signon($info, false);
1701 + // $response=$info;
1702 + $response = array();
1703 + if (is_wp_error($user_signon)) {
1704 + // $response['status'] = "fail";
1705 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1706 + $response = "no";
1707 + } else {
1708 + $response = "yes";
1718 1709 }
1719 -
1720 - if(!empty($intents)){
1721 - return implode(", ", $intents);
1722 - }else{
1723 - return '';
1724 - }
1725 -
1710 + echo wp_send_json($response);
1711 + die();
1726 1712 }
1727 -
1728 -//User login on Checkout page.
1729 -// add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1730 -// add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1731 -// function qcld_wb_chatbot_checkout_user_login(){
1732 -// // Nonce is checked, get the POST data and sign user on
1733 -// $info = array();
1734 -// //$info['nonce'] = $_POST['nonce_val'];
1735 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1736 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1737 -// $info['remember'] = true;
1738 -// $user_signon = wp_signon($info, false);
1739 -// // $response=$info;
1740 -// $response = array();
1741 -// if (is_wp_error($user_signon)) {
1742 -// // $response['status'] = "fail";
1743 -// $response = "no";
1744 -// } else {
1745 -// $response = "yes";
1746 -// }
1747 -// wp_send_json($response);
1748 -// }
1749 1713 // Load template for App Order Thank You page url
1750 1714 function wp_chatbot_load_app_template($template){
1751 1715 if (is_page('wpwbot-mobile-app')) {
1752 1716 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1775,16 +1739,15 @@
1775 1739 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1740 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1741 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1742 //Mobile App page create
1779 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1780 - if ( ! $existing_app->have_posts() ) {
1743 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1744 //post status and options
1782 1745 $app_page = array(
1783 1746 'comment_status' => 'closed',
1784 1747 'ping_status' => 'closed',
1785 1748 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1749 + 'post_date' => date('Y-m-d H:i:s'),
1787 1750 'post_status' => 'publish',
1788 1751 'post_title' => 'wpwBot Mobile App',
1789 1752 'post_name' => 'wpwbot-mobile-app',
1790 1753 'post_type' => 'page',
@@ -1794,16 +1757,15 @@
1794 1757 //save the id in the database
1795 1758 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1759 }
1797 1760 //App checkout page create
1798 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1799 - if ( ! $existing_checkout->have_posts() ) {
1761 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1762 //post status and options
1801 1763 $checkout_page = array(
1802 1764 'comment_status' => 'closed',
1803 1765 'ping_status' => 'closed',
1804 1766 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1767 + 'post_date' => date('Y-m-d H:i:s'),
1806 1768 'post_status' => 'publish',
1807 1769 'post_title' => 'wpwBot App Checkout',
1808 1770 'post_name' => 'wpwbot-app-checkout',
1809 1771 'post_type' => 'page',
@@ -1813,16 +1775,15 @@
1813 1775 //save the id in the database
1814 1776 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1777 }
1816 1778 //App Order thank you page create
1817 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1818 - if ( ! $existing_thankyou->have_posts() ) {
1779 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1780 //post status and options
1820 1781 $thankyou_page = array(
1821 1782 'comment_status' => 'closed',
1822 1783 'ping_status' => 'closed',
1823 1784 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1785 + 'post_date' => date('Y-m-d H:i:s'),
1825 1786 'post_status' => 'publish',
1826 1787 'post_title' => 'wpwBot App Order Thank You',
1827 1788 'post_name' => 'wpwbot-app-order-thankyou',
1828 1789 'post_type' => 'page',
@@ -1833,9 +1794,9 @@
1833 1794 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1795 }
1835 1796 }
1836 1797 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1798 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1799 if (!isset($_COOKIE['from_app'])) {
1839 1800 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1801 }
1841 1802 }
@@ -1849,9 +1810,9 @@
1849 1810 global $wp;
1850 1811 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1812 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1813 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1814 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1815 exit;
1855 1816 }
1856 1817 } else {
1857 1818 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1820,9 @@
1859 1820 }
1860 1821 }
1861 1822
1862 1823 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1824 + return $array[array_rand($array)];
1867 1825 }
1868 1826
1869 1827 //User session count
1870 1828 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1828,8 @@
1870 1828 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1829 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1830 function qcld_wb_chatbot_session_count(){
1873 1831 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1832 global $wpdb;
1876 1833 $wpdb->show_errors = true;
1877 1834 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1835 $response = array();
@@ -1877,12 +1834,11 @@
1877 1834 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1835 $response = array();
1879 1836
1880 1837
1881 - $session_exists = $wpdb->get_row($wpdb->prepare("select * from {$tableuser} where 1 and id = %d",1)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
1882 -
1838 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1839 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1840 + $wpdb->insert(
1885 1841 $tableuser,
1886 1842 array(
1887 1843 'session' => 1,
1888 1844 )
@@ -1889,10 +1845,9 @@
1889 1845 );
1890 1846 }else{
1891 1847
1892 1848 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1849 + $wpdb->update(
1895 1850 $tableuser,
1896 1851 array(
1897 1852 'session'=>($session_exists->session+1),
1898 1853 ),
@@ -1901,107 +1856,9 @@
1901 1856 '%d',
1902 1857 ),
1903 1858 array('%d')
1904 1859 );
1905 -
1906 1860 }
1907 1861
1908 - wp_send_json($response);
1909 -}
1910 -
1911 -/* WPBot Chat History Addon check */
1912 -function qcld_wpbot_is_active_chat_history(){
1913 -
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 - return 1;
1916 - }else{
1917 - return 0;
1918 - }
1919 -
1920 -}
1921 -
1922 -function qcld_wpbot_input_validation( $data ) {
1923 - $data = html_entity_decode($data);
1924 - $data = trim($data);
1925 - $data = stripslashes($data);
1926 - $data = htmlspecialchars($data);
1927 - return $data;
1928 -}
1929 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1930 -function qcld_small_talk_import(){
1931 - if ( ! current_user_can( 'manage_options' ) ) {
1932 - wp_die();
1933 - }
1934 - global $wpdb;
1935 -
1936 - $table = $wpdb->prefix.'wpbot_response';
1937 -
1938 - $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 -
1940 - foreach ($csvFile as $line) {
1941 - $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1944 - 'query' => $line[0],
1945 - 'keyword' => $line[1],
1946 - 'response' => $line[2],
1947 - 'category'=> $line[3],
1948 - 'intent'=> '',
1949 - //'lang'=> 'en_US',
1950 - ));
1951 - }
1952 -
1953 - $table2 = $wpdb->prefix.'wpbot_response_category';
1954 -
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1957 - 'name' => 'smalltalk',
1958 - ));
1959 -
1960 - update_option( 'qcld_small_talk_imported', 'yes' );
1961 -
1962 -}
1963 -function sanitize_array( &$array ) {
1964 - if (!empty($array)) {
1965 - foreach ($array as &$value) {
1966 - if( !is_array($value) )
1967 - // sanitize if value is not an array
1968 - $value = sanitize_text_field( esc_html($value) );
1969 - else
1970 - // go inside this function again
1971 - sanitize_array(esc_html($value));
1972 - }
1973 - }
1974 - return $array;
1975 -}
1976 -function qcld_wpbot_meta_tags() {
1977 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1978 -}
1979 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1980 -
1981 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1982 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1983 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1984 - function qcld_change_language_from_center() {
1985 - if ( ! current_user_can( 'manage_options' ) ) {
1986 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1987 - }
1988 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1989 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1990 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1991 - }
1992 - $plugin_path = plugin_dir_path( __FILE__ );
1993 - include $plugin_path . 'includes/admin/settings-fields.php';
1994 - $json_file_path = $plugin_path . 'includes/language-center.json';
1995 -
1996 - $json_string = file_get_contents( $json_file_path );
1997 - if ( isset( $_POST['language'] ) ) {
1998 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1999 - $language_array= json_decode($json_string)->$language;
2000 - update_option( 'wp_chatbot_language_center_language', $language );
2001 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
2002 - } else {
2003 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
2004 -
2005 - }
2006 - }
2007 -}
1862 + echo wp_send_json($response);
1863 + die();
1864 +}