PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 3.2.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v3.2.2
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
← All changes | functions.php +477 -622 8.7.13.2.2 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;
@@ -358,29 +184,26 @@
358 184 }
359 185 //wp_chatbot load control handler.
360 186 function wp_chatbot_load_controlling(){
361 187 $wp_chatbot_load = true;
362 -
363 -
188 + if (wp_chatbot_is_mobile() && get_option('disable_wp_chatbot_on_mobile') == 1) {
189 + $wp_chatbot_load = false;
190 + }
191 + if (get_option('wp_chatbot_show_home_page') == 'off' && is_home()) {
192 + $wp_chatbot_load = false;
193 + }
194 + if (get_option('wp_chatbot_show_posts') == 'off' && 'post' == get_post_type()) {
195 + $wp_chatbot_load = false;
196 + }
364 197 if (get_option('wp_chatbot_show_pages') == 'off') {
365 198 $wp_chatbot_select_pages = unserialize(get_option('wp_chatbot_show_pages_list'));
366 199 if (is_page() && !empty($wp_chatbot_select_pages)) {
367 -
368 200 if (in_array(get_the_ID(), $wp_chatbot_select_pages) == true) {
369 -
370 201 $wp_chatbot_load = true;
371 202 } else {
372 203 $wp_chatbot_load = false;
373 204 }
374 -
375 205 }
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 206 }
384 207 if (get_option('wp_chatbot_show_wpcommerce') == 'off') {
385 208
386 209 }
@@ -391,34 +214,22 @@
391 214 if (has_shortcode($page->post_content, 'wpwbot')) {
392 215 $wp_chatbot_load = false;
393 216 }
394 217 }
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;
218 + //Opening Hours for wpwBot.
219 + if (get_option('enable_wp_chatbot_opening_hour') == 1) {
220 + if(wp_chatbot_check_opening_hours()==false){
221 + $wp_chatbot_load = false;
222 + }else{
223 + $wp_chatbot_load = true;
224 + }
400 225 }
401 - if (wp_chatbot_is_mobile() && get_option('disable_wp_chatbot_on_mobile') == 1) {
402 - $wp_chatbot_load = false;
403 - }
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 - }
226 +
416 227 return $wp_chatbot_load;
417 228 }
418 229 //checking Devices
419 230 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
231 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 232 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 233 return true;
423 234 } else {
424 235 return false;
@@ -425,13 +236,13 @@
425 236 }
426 237 }
427 238 //Checking wpwbot opening hour
428 239 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')));
240 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
241 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 242 $is_wpwbot_open =false;
432 243 if(get_option('wpwbot_hours')) {
433 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
244 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
434 245 if (isset($wpwbot_times[$curent_day])) {
435 246 $day_times = $wpwbot_times[$curent_day];
436 247 if (!empty($day_times)) {
437 248 foreach ($day_times as $day_time) {
@@ -443,8 +254,183 @@
443 254 }
444 255 }
445 256 return $is_wpwbot_open;
446 257 }
258 +//wpwBot shortcode.
259 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
260 +function wp_chatbot_short_code($atts = []){
261 + ob_start();
262 + wp_chatbot_shortcode_dom($atts);
263 + $content = ob_get_clean();
264 + return $content;
265 +}
266 +function wp_chatbot_shortcode_dom($atts){
267 + //Defaults & Set Parameters for shortcode
268 + extract(shortcode_atts(
269 + array(
270 + 'template' => '01',
271 + ), $atts
272 + ));
273 + ?>
274 + <style>
275 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
276 + </style>
277 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
278 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
279 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
280 + } else {
281 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
282 + }
283 + ?>
284 + <style>
285 + .wp-chatbot-container {
286 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
287 + }
288 + </style>
289 +<?php }
290 + $wp_chatbot_enable_rtl = "";
291 + if (get_option('enable_wp_chatbot_rtl')) {
292 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
293 + }
294 + ?>
295 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
296 + <?php
297 + //Get wpcommerce cart
298 +
299 + $qcld_wb_chatbot_theme = 'template-' . $template;
300 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
301 + 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');
302 + wp_enqueue_style('qcld-wp-chatbot-style');
303 + }
304 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
305 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
306 + } else {
307 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
308 + }
309 + ?>
310 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
311 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
312 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
313 + <?php
314 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
315 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
316 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
317 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
318 + } else {
319 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
320 + }
321 + ?>
322 + <div class="wp-chatbot-notification-agent-profile">
323 + <div class="wp-chatbot-notification-widget-avatar"><img
324 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
325 + <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>
326 + </div>
327 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
328 + </div>
329 + <!--wp-chatbot-board-container-->
330 + <div id="wp-chatbot-ball" class="">
331 + <div class="wp-chatbot-ball">
332 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
333 + <?php
334 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
335 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
336 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
337 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
338 + } else {
339 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
340 + }
341 + ?>
342 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
343 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
344 + </div>
345 + <!-- wp-chatbot-board-container-->
346 + <?php endif; ?>
347 + <!--container-->
348 + <!--wp-chatbot-ball-wrapper-->
349 + </div>
350 +<?php } ?>
351 +<?php
352 +//Create shortcode for wpwBot for pages.
353 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
354 +function wp_chatbot_page_short_code(){
355 + ob_start();
356 + wp_chatbot_page_dom();
357 + $content = ob_get_clean();
358 + return $content;
359 +}
360 +function wp_chatbot_page_dom(){ ?>
361 + <style>
362 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
363 + </style>
364 + <?php
365 + //Get wpcommerce cart
366 +
367 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
368 + $wp_chatbot_enable_rtl = "";
369 + if (get_option('enable_wp_chatbot_rtl') == 1) {
370 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
371 + }
372 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
373 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
374 + } else {
375 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
376 + }
377 +}
378 +//shortcode for wpWBot mobile app
379 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
380 +function wp_chatbot_mobile_app_short_code(){ ?>
381 + <style>
382 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
383 + </style>
384 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
385 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
386 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
387 + } else {
388 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
389 + }
390 + ?>
391 + <style>
392 + .wp-chatbot-container {
393 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
394 + }
395 + </style>
396 +<?php }
397 + $wp_chatbot_enable_rtl = "";
398 + if (get_option('enable_wp_chatbot_rtl')) {
399 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
400 + }
401 + ?>
402 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
403 + <?php
404 + // keep traking app template.
405 + $template_app = 'yes';
406 + //Get wpcommerce cart
407 +
408 + //Handling shortcode enqeue and remove features part.
409 + define('wpCOMMERCE', true);
410 + wp_enqueue_script('jquery');
411 +
412 +
413 + wp_enqueue_script('wc-address-i18n');
414 + wp_enqueue_script('wc-country-select');
415 +
416 +
417 + // add the action
418 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
419 + if (!isset($_COOKIE['from_app'])) {
420 + setcookie('from_app', 'yes', time() + 3600);
421 + }
422 + }
423 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
424 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
425 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
426 + } else {
427 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
428 + }
429 + ?>
430 + </div>
431 + <?php
432 +}
447 433
448 434 /**
449 435 * wpwBot Search keyword product
450 436 */
@@ -450,20 +436,13 @@
450 436 */
451 437 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 438 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 439 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']));
440 + $keyword = sanitize_text_field($_POST['keyword']);
462 441 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 442 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');
443 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
444 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
466 445 //Merging all query together.
467 446 $argu_params = array(
468 447 'post_type' => 'product',
469 448 'post_status' => 'publish',
@@ -505,9 +484,9 @@
505 484 endwhile;
506 485 wp_reset_postdata();
507 486 $html .= '</ul>';
508 487 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>';
488 + $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 489 }
511 490 }
512 491 $html .= '</div>';
513 492 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,16 +514,16 @@
535 514 }
536 515 }
537 516 $html .= '</ul>';
538 517 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>';
518 + $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 519 }
541 520 }
542 521 $html .= '</div>';
543 522 }
544 523 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
545 - wp_send_json($response);
546 -
524 + echo wp_send_json($response);
525 + wp_die();
547 526 }
548 527 /**
549 528 * wpwBot Categories
550 529 */
@@ -552,22 +531,23 @@
552 531 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 532 function qcld_wb_chatbot_category(){
554 533 $category_type="common";
555 534 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
535 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
536 +
557 537 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
538 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 539 }
560 540 $html = "";
561 541 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
542 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 543 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 544 $category_type="hasChilds";
565 545 }
566 546 $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 547 }
568 - wp_send_json($html);
569 -
548 + echo wp_send_json($html);
549 + wp_die();
570 550 }
571 551 /**
572 552 * wpwBot Sub categories
573 553 */
@@ -573,16 +553,16 @@
573 553 */
574 554 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 555 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 556 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' ) );
557 + $parent_id = stripslashes($_POST['parent_id']);
558 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 559 $html = "";
580 560 foreach ($terms as $term) {
581 561 $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 562 }
583 - wp_send_json($html);
584 -
563 + echo wp_send_json($html);
564 + wp_die();
585 565 }
586 566 /**
587 567 * wpwBot category product
588 568 */
@@ -588,12 +568,12 @@
588 568 */
589 569 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 570 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 571 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');
572 + $category_id = stripslashes($_POST['category']);
573 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
574 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
575 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
596 576 //Merging all query together.
597 577 $argu_params = array(
598 578 'post_type' => 'product',
599 579 'post_status' => 'publish',
@@ -655,9 +635,9 @@
655 635 endwhile;
656 636 wp_reset_postdata();
657 637 $html .= '</ul>';
658 638 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>';
639 + $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 640 }
661 641 $html .= '</div>';
662 642 } else {
663 643 $html = '';
@@ -662,9 +642,10 @@
662 642 } else {
663 643 $html = '';
664 644 }
665 645 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
666 - wp_send_json($response);
646 + echo wp_send_json($response);
647 + wp_die();
667 648 }
668 649 /**
669 650 * wpwBot latest, featured, recent product
670 651 */
@@ -670,11 +651,11 @@
670 651 */
671 652 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
672 653 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
673 654 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');
655 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
656 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
657 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
677 658 //get featured products query.
678 659 $argu_params = array('post_status' => 'publish',
679 660 'posts_per_page' => $product_per_page,
680 661 'post_type' => 'product',
@@ -718,14 +699,15 @@
718 699 endwhile;
719 700 wp_reset_postdata();
720 701 $html .= '</ul>';
721 702 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>';
703 + $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 704 }
724 705 }
725 706 $html .= '</div>';
726 707 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
727 - wp_send_json($response);
708 + echo wp_send_json($response);
709 + wp_die();
728 710 }
729 711 //Product display controll
730 712 function wp_chatbot_product_controlling($product_id){
731 713 $display_product = true;
@@ -740,11 +722,11 @@
740 722 //Get Sale products
741 723 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
742 724 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
743 725 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');
726 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
727 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
728 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
747 729 //get sale products query.
748 730 $argu_params = array(
749 731 'post_type' => 'product',
750 732 'post_status' => 'publish',
@@ -816,25 +798,26 @@
816 798 endwhile;
817 799 wp_reset_postdata();
818 800 $html .= '</ul>';
819 801 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>';
802 + $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 803 }
822 804 }
823 805 $html .= '</div>';
824 806 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
825 - wp_send_json($response);
807 + echo wp_send_json($response);
808 + wp_die();
826 809 }
827 810 //load more
828 811 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 812 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 813 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');
814 + $offset = stripslashes($_POST['offset']);
815 + $search_type = stripslashes($_POST['search_type']);
816 + $search_term = stripslashes($_POST['search_term']);
817 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
818 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
819 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
837 820 $next_offset = intval($product_per_page + $offset);
838 821 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
839 822 //if have multiple ids then explode else have single need to array push
840 823 if (strpos($search_term, ',') !== false) {
@@ -956,15 +939,16 @@
956 939 $html .= '';
957 940 }
958 941 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
959 942 }
960 - wp_send_json($response);
943 + echo wp_send_json($response);
944 + wp_die();
961 945 }
962 946 //product details
963 947 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 948 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 949 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
950 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 951 //Tracking product view from chat board
968 952 wp_chatbot_view_track_product_by_id($product_id);
969 953 //wpcommerce product factory
970 954 $wc_pf = new WC_Product_Factory();
@@ -992,9 +976,9 @@
992 976 }
993 977 }
994 978 $product_image .= '</ul></div>';
995 979 $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>';
980 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 981 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 982 //Handle variable product start
999 983 $variations = "";
1000 984 $add_cart_button = "";
@@ -1035,13 +1019,12 @@
1035 1019 } else {
1036 1020 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1037 1021 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1022 $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>';
1023 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1040 1024 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 ] ) );
1025 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1026 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1027 } else {
1045 1028 $selected_value = '';
1046 1029 }
1047 1030 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1048,29 +1031,30 @@
1048 1031 }
1049 1032 $variations .= '</select></div>';
1050 1033 }
1051 1034 }
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="" />';
1035 + $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 1036 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1054 1037 } 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')))) . '" />';
1038 + $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 1039 }
1057 1040 //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>
1041 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1059 1042 <input type="number" id="vPQuantity" value="1" />';
1060 1043 }
1061 1044 //$response=$full_size_image;
1062 1045 $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);
1046 + echo wp_send_json($response);
1047 + wp_die();
1064 1048 }
1065 1049 //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();
1050 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1051 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1052 +function qcld_wb_chatbot_variable_add_to_cart(){
1053 + $product_id = stripslashes($_POST['p_id']);
1054 + $quantity = stripslashes($_POST['quantity']);
1055 + $variations_id = stripslashes($_POST['variations_id']);
1056 + $attrs = stripslashes($_POST['attributes']);
1073 1057 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1058 $attributes = array();
1075 1059 foreach ($attrs as $attr) {
1076 1060 $single = explode("#", $attr);
@@ -1081,68 +1065,60 @@
1081 1065 }
1082 1066 global $wpcommerce;
1083 1067 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1084 1068 if ($result != false) {
1085 - wp_send_json('variable');
1069 + echo wp_send_json('variable');
1086 1070 } else {
1087 - wp_send_json('error');
1071 + echo wp_send_json('error');
1088 1072 }
1073 + wp_die();
1089 1074 }
1090 1075 //Add to cart for simple product.
1091 1076 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1077 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1078 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1079 + $product_id = stripslashes($_POST['product_id']);
1080 + $product_quantity = stripslashes($_POST['quantity']);
1096 1081 global $wpcommerce;
1097 1082 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1083 if ($result != false) {
1099 - wp_send_json('simple');
1084 + echo wp_send_json('simple');
1100 1085 } else {
1101 - wp_send_json('error');
1086 + echo wp_send_json('error');
1102 1087 }
1088 + wp_die();
1103 1089 }
1104 1090 //Support part
1105 1091 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1092 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1093 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');
1094 + $name = trim(sanitize_text_field($_POST['name']));
1095 + $email = sanitize_email($_POST['email']);
1096 + $message = sanitize_text_field($_POST['message']);
1097 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1116 1098 //Extract Domain
1117 1099 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1100 + $url = parse_url($url);
1119 1101 $domain = $url['host'];
1120 1102 //$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 - }
1103 + $admin_email = get_option('admin_email');
1104 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1105 + $fromEmail = "wordpress@" . $domain;
1130 1106 //Starting messaging and status.
1131 1107 $response['status'] = 'fail';
1132 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1108 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1133 1109 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'))));
1110 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1135 1111 $response['status'] = 'fail';
1136 1112 } else {
1137 1113 //build email body
1138 1114 $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>';
1115 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1116 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1117 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1118 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1119 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1120 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . date('F j, Y, g:i a') . '</p>';
1145 1121 $to = $toEmail;
1146 1122 $body = $bodyContent;
1147 1123 $headers = array();
1148 1124 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1150,13 +1126,13 @@
1150 1126 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1151 1127 $result = wp_mail($to, $subject, $body, $headers);
1152 1128 if ($result) {
1153 1129 $response['status'] = 'success';
1154 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1130 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1155 1131 }
1156 -
1157 1132 }
1158 - echo wp_json_encode($response);
1133 + ob_clean();
1134 + echo json_encode($response);
1159 1135 die();
1160 1136 }
1161 1137 //Support Phone
1162 1138 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,37 +1137,30 @@
1161 1137 //Support Phone
1162 1138 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1139 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1140 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']));
1141 + $name = trim(sanitize_text_field($_POST['name']));
1142 + $phone =sanitize_text_field($_POST['phone']);
1168 1143 $subject = 'WPBot Support Mail Request for Call Back';
1169 1144 //Extract Domain
1170 1145 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1146 + $url = parse_url($url);
1172 1147 $domain = $url['host'];
1173 1148 //$admin_email = "admin@" . $domain;
1174 1149 $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 - }
1150 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1151 + $fromEmail = "wordpress@" . $domain;
1183 1152 //Starting messaging and status.
1184 1153 $response['status'] = 'fail';
1185 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1154 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1186 1155 //build email body
1187 1156 $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>';
1157 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1158 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1159 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1160 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1161 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1162 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . date('F j, Y, g:i a') . '</p>';
1194 1163 $to = $toEmail;
1195 1164 $body = $bodyContent;
1196 1165 $headers = array();
1197 1166 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1199,17 +1168,39 @@
1199 1168 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1200 1169 $result = wp_mail($to, $subject, $body, $headers);
1201 1170 if ($result) {
1202 1171 $response['status'] = 'success';
1203 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1172 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1204 1173 }
1205 - echo wp_json_encode($response);
1174 + ob_clean();
1175 + echo json_encode($response);
1206 1176 die();
1207 1177 }
1208 -// Order Status part. removed
1209 -
1178 +// Order Status part.
1179 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1180 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1181 +function qcld_wb_chatbot_check_user(){
1182 + global $wpcommerce;
1183 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1184 + $response = array();
1185 + $response['message'] = "";
1186 + if (username_exists($user_name)) {
1187 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1188 + $response['status'] = "success";
1189 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1190 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1191 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1192 + $response = get_order_by_username($user_name);
1193 + }
1194 + } else {
1195 + $response['status'] = "fail";
1196 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1197 + }
1198 + echo wp_send_json($response);
1199 + die();
1200 +}
1210 1201 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1202 + return $items[rand(0, count($items) - 1)];
1212 1203 }
1213 1204 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1205 $refined_mesgses = array();
1215 1206 foreach ($messages as $message) {
@@ -1224,21 +1215,22 @@
1224 1215 // First check the nonce, if it fails the function will break
1225 1216 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1217 // Nonce is checked, get the POST data and sign user on
1227 1218 $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'])));
1219 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1220 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1221 $info['remember'] = true;
1231 1222 $user_signon = wp_signon($info, false);
1232 1223 $response = array();
1233 1224 if (is_wp_error($user_signon)) {
1234 1225 $response['status'] = "fail";
1235 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1226 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1236 1227 } else {
1237 1228 $response = get_order_by_username($info['user_login']);
1238 1229 $response['status'] = "success";
1239 1230 }
1240 - wp_send_json($response);
1231 + echo wp_send_json($response);
1232 + die();
1241 1233 }
1242 1234 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1243 1235 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1244 1236 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1244,9 +1236,10 @@
1244 1236 function qcld_wb_chatbot_loged_in_user_orders(){
1245 1237 $current_user = wp_get_current_user();
1246 1238 $user_name = $current_user->user_login;
1247 1239 $response = get_order_by_username($user_name);
1248 - wp_send_json($response);
1240 + echo wp_send_json($response);
1241 + die();
1249 1242 }
1250 1243 function get_order_by_username($user_name){
1251 1244 global $post;
1252 1245 $response = array();
@@ -1264,28 +1257,28 @@
1264 1257 ));
1265 1258 $response['order_num'] = count($customer_orders);
1266 1259 $order_html = '';
1267 1260 if ($response['order_num'] > 0) {
1268 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1261 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1269 1262 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1263 <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>
1264 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1265 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1266 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1267 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1268 </div>';
1276 1269 foreach ($customer_orders as $order) {
1277 1270 //Formatting order summery
1278 1271 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1279 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1272 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1280 1273 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1281 1274 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1282 1275 } 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>';
1276 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1284 1277 }
1285 1278 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1279 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1280 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1281 <div class="order-items">';
1289 1282 $singleOrder = new WC_Order($order->ID);
1290 1283 $items = $singleOrder->get_items();
1291 1284 foreach ($items as $item) {
@@ -1298,9 +1291,9 @@
1298 1291 }
1299 1292 $order_html .= '</div>';
1300 1293 } else {
1301 1294 $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>';
1295 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1303 1296 }
1304 1297 $response['html'] = $order_html;
1305 1298 return $response;
1306 1299 }
@@ -1324,11 +1317,9 @@
1324 1317 if (sizeof($viewed_products) > 15) {
1325 1318 array_shift($viewed_products);
1326 1319 }
1327 1320 // Store for session only
1328 - if( function_exists( 'wc_setcookie' ) ){
1329 - wc_setcookie('wp_chatbot_wpcommerce_recently_viewed', implode('|', $viewed_products));
1330 - }
1321 + wc_setcookie('wp_chatbot_wpcommerce_recently_viewed', implode('|', $viewed_products));
1331 1322 }
1332 1323 add_action('template_redirect', 'wp_chatbot_track_product_view', 20);
1333 1324 //recent view product ajax
1334 1325 add_action('wp_ajax_qcld_wb_chatbot_recently_viewed_products', 'qcld_wb_chatbot_recently_viewed_products');
@@ -1336,10 +1327,10 @@
1336 1327 function qcld_wb_chatbot_recently_viewed_products(){
1337 1328 // Get wpCommerce Global
1338 1329 $_pf = new WC_Product_Factory();
1339 1330 //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'))));
1331 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1332 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1342 1333 // Get recently viewed product cookies data
1343 1334 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1344 1335 $viewed_products = array_filter(array_map('absint', $viewed_products));
1345 1336 //get featured products if has.
@@ -1345,9 +1336,9 @@
1345 1336 //get featured products if has.
1346 1337 $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 1338 //Getting recently vieew products.
1348 1339 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'))));
1340 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1350 1341 $product_query = new WP_Query(array(
1351 1342 'posts_per_page' => $product_per_page,
1352 1343 'no_found_rows' => 1,
1353 1344 'post_status' => 'publish',
@@ -1355,15 +1346,16 @@
1355 1346 'post__in' => $viewed_products,
1356 1347 ));
1357 1348 //Getting featured products
1358 1349 } 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'))));
1350 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1360 1351 $product_query = $featured_products;
1361 1352 } else {
1362 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1353 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1363 1354 //Getting recent products
1364 1355 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1365 1356 }
1357 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1366 1358 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1367 1359 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1368 1360 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1369 1361 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1370,10 +1362,10 @@
1370 1362 } else {
1371 1363 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1372 1364 }
1373 1365 $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>
1366 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1367 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1376 1368 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1377 1369 </div>';
1378 1370 if ($product_query->post_count > 0) {
1379 1371 $html .= '<div class="wp-chatbot-products-area">';
@@ -1385,9 +1377,9 @@
1385 1377 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1378 <div class="wp-chatbot-product-summary">
1387 1379 <div class="wp-chatbot-product-table">
1388 1380 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1381 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1382 <div class="price">' . $product->get_price_html() . '</div>';
1391 1383 $html .= ' </div>
1392 1384 </div>
1393 1385 </div></a>
@@ -1400,9 +1392,10 @@
1400 1392 $html .= '<div class="wp-chatbot-products-area">';
1401 1393 $html .= '<p style="text-align: center">You have no products !';
1402 1394 $html .= '</div>';
1403 1395 }
1404 - wp_send_json($html);
1396 + echo wp_send_json($html);
1397 + die();
1405 1398 }
1406 1399 //Recently viewed product shortcode
1407 1400 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1401 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1407,10 +1400,10 @@
1407 1400 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1401 function qcld_wb_chatbot_recently_viewed_shortcode(){
1409 1402 // Get wpCommerce Global
1410 1403 $_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'))));
1404 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1405 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1413 1406 // Get recently viewed product cookies data
1414 1407 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1415 1408 $viewed_products = array_filter(array_map('absint', $viewed_products));
1416 1409 //get featured products if has.
@@ -1416,9 +1409,9 @@
1416 1409 //get featured products if has.
1417 1410 $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 1411 //Getting recently vieew products.
1419 1412 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'))));
1413 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1421 1414 $product_query = new WP_Query(array(
1422 1415 'posts_per_page' => $product_per_page,
1423 1416 'no_found_rows' => 1,
1424 1417 'post_status' => 'publish',
@@ -1426,15 +1419,16 @@
1426 1419 'post__in' => $viewed_products,
1427 1420 ));
1428 1421 //implementing featured products
1429 1422 } 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'))));
1423 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1431 1424 $product_query = $featured_products;
1432 1425 } else {
1433 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1426 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1434 1427 //Getting recent products
1435 1428 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1436 1429 }
1430 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1437 1431 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1438 1432 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1439 1433 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1440 1434 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1441,11 +1435,11 @@
1441 1435 } else {
1442 1436 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1443 1437 }
1444 1438 $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>
1439 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1440 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1441 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1448 1442 </div>';
1449 1443 if ($product_query->post_count > 0) {
1450 1444 $html .= '<div class="wp-chatbot-products-area">';
1451 1445 $html .= '<ul class="wp-chatbot-products">';
@@ -1456,9 +1450,9 @@
1456 1450 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1451 <div class="wp-chatbot-product-summary">
1458 1452 <div class="wp-chatbot-product-table">
1459 1453 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1454 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1455 <div class="price">' . $product->get_price_html() . '</div>';
1462 1456 $html .= ' </div>
1463 1457 </div>
1464 1458 </div></a>
@@ -1468,9 +1462,9 @@
1468 1462 wp_reset_postdata();
1469 1463 $html .= '</ul></div>';
1470 1464 } else {
1471 1465 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1466 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1467 $html .= '</div>';
1474 1468 }
1475 1469 return $html;
1476 1470 }
@@ -1484,10 +1478,11 @@
1484 1478 $checkout_url = wc_get_checkout_url();
1485 1479 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1486 1480 $items = $wpcommerce->cart->get_cart();
1487 1481 $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'))));
1482 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1483 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1484 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1490 1485 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1491 1486 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1492 1487 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1493 1488 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1494,15 +1489,15 @@
1494 1489 } else {
1495 1490 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1496 1491 }
1497 1492 $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>
1493 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1494 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1495 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1501 1496 </div>';
1502 1497 if ($itemCount >= 1) {
1503 1498 $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>';
1499 + $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 1500 $html .= '<div class ="wp-chatbot-cart-body">';
1506 1501 foreach ($items as $item => $values) {
1507 1502 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1508 1503 //product image
@@ -1520,9 +1515,9 @@
1520 1515 <div class="qcld-wp-chatbot-cell"></div>
1521 1516 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1522 1517 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1523 1518 </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>';
1519 + $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 1520 $html .= ' </div>';
1526 1521 } else {
1527 1522 $html .= '<div class="wp-chatbot-cart-container">';
1528 1523 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1528,9 +1523,10 @@
1528 1523 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1529 1524 $html .= '</div>';
1530 1525 }
1531 1526 $response = array('html' => $html, 'items' => $itemCount);
1532 - wp_send_json($response);
1527 + echo wp_send_json($response);
1528 + wp_die();
1533 1529 }
1534 1530 //cart onley for wp chatbot
1535 1531 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1536 1532 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1541,14 +1537,14 @@
1541 1537 $checkout_url = wc_get_checkout_url();
1542 1538 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1543 1539 $items = $wpcommerce->cart->get_cart();
1544 1540 $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'))));
1541 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1546 1542
1547 1543 $html = '';
1548 1544 if ($itemCount >= 1) {
1549 1545 $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>';
1546 + $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 1547 $html .= '<div class ="wp-chatbot-cart-body">';
1552 1548 foreach ($items as $item => $values) {
1553 1549 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1554 1550 //product image
@@ -1566,17 +1562,18 @@
1566 1562 <div class="qcld-wp-chatbot-cell"></div>
1567 1563 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1568 1564 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1569 1565 </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>';
1566 + $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 1567 $html .= ' </div>';
1572 1568 } else {
1573 1569 $html .= '<div class="wp-chatbot-cart-container">';
1574 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1570 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1575 1571 $html .= '</div>';
1576 1572 }
1577 1573 $response = array('html' => $html, 'items' => $itemCount);
1578 - wp_send_json($response);
1574 + echo wp_send_json($response);
1575 + wp_die();
1579 1576 }
1580 1577 //Cart show Shortcode
1581 1578 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1582 1579 function qcld_wb_chatbot_cart_shortcode(){
@@ -1582,10 +1579,11 @@
1582 1579 function qcld_wb_chatbot_cart_shortcode(){
1583 1580 global $wpcommerce;
1584 1581 $items = $wpcommerce->cart->get_cart();
1585 1582 $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'))));
1583 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1584 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1585 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1588 1586 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1589 1587 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1590 1588 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1591 1589 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1592,15 +1590,15 @@
1592 1590 } else {
1593 1591 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1594 1592 }
1595 1593 $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>
1594 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1595 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1596 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1599 1597 </div>';
1600 1598 if ($itemCount >= 1) {
1601 1599 $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>';
1600 + $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 1601 $html .= '<div class ="wp-chatbot-cart-body">';
1604 1602 foreach ($items as $item => $values) {
1605 1603 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1606 1604 //product image
@@ -1618,9 +1616,9 @@
1618 1616 <div class="qcld-wp-chatbot-cell"></div>
1619 1617 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1620 1618 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1621 1619 </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>';
1620 + $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 1621 $html .= ' </div>';
1624 1622 } else {
1625 1623 $html .= '<div class="wp-chatbot-cart-container">';
1626 1624 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1632,26 +1630,26 @@
1632 1630 //Updating the cart items.
1633 1631 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1632 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1633 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1634 //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']));
1635 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1636 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1637 global $wpcommerce;
1641 1638 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 - wp_send_json($result);
1639 + echo wp_send_json($result);
1640 + wp_die();
1643 1641 }
1644 1642 //Show item after removing from cart page.
1645 1643 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1644 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1645 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1646 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1647 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1648 global $wpcommerce;
1652 1649 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 - wp_send_json($result);
1650 + echo wp_send_json($result);
1651 + wp_die();
1654 1652 }
1655 1653 //Show cart page by shortcode.
1656 1654 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1657 1655 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1659,13 +1657,14 @@
1659 1657 global $wpcommerce;
1660 1658 $itemCount = $wpcommerce->cart->cart_contents_count;
1661 1659 $html = "";
1662 1660 if ($itemCount < 0) {
1663 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1661 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1664 1662 } else {
1665 1663 $html .= do_shortcode("[wpcommerce_cart]");
1666 1664 }
1667 - wp_send_json($html);
1665 + echo wp_send_json($html);
1666 + wp_die();
1668 1667 }
1669 1668 //Show checkout page by shortcode.
1670 1669 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1671 1670 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1674,9 +1673,9 @@
1674 1673 $itemCount = $wpcommerce->cart->cart_contents_count;
1675 1674 $html = "";
1676 1675 if ($itemCount < 0) {
1677 1676 $status = 'no';
1678 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1677 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1679 1678 } else {
1680 1679 $status = 'yes';
1681 1680 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1682 1681 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1682,71 +1681,34 @@
1682 1681 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1683 1682 $html .= $checkout_parmanlink;
1684 1683 }
1685 1684 $response = array('status' => $status, 'html' => $html);
1686 - wp_send_json($response);
1685 + echo wp_send_json($response);
1686 + wp_die();
1687 1687 }
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 - }
1688 +//User login on Checkout page.
1689 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1690 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1691 +function qcld_wb_chatbot_checkout_user_login(){
1692 + // Nonce is checked, get the POST data and sign user on
1693 + $info = array();
1694 + //$info['nonce'] = $_POST['nonce_val'];
1695 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1696 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1697 + $info['remember'] = true;
1698 + $user_signon = wp_signon($info, false);
1699 + // $response=$info;
1700 + $response = array();
1701 + if (is_wp_error($user_signon)) {
1702 + // $response['status'] = "fail";
1703 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1704 + $response = "no";
1705 + } else {
1706 + $response = "yes";
1718 1707 }
1719 -
1720 - if(!empty($intents)){
1721 - return implode(", ", $intents);
1722 - }else{
1723 - return '';
1724 - }
1725 -
1708 + echo wp_send_json($response);
1709 + die();
1726 1710 }
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 1711 // Load template for App Order Thank You page url
1750 1712 function wp_chatbot_load_app_template($template){
1751 1713 if (is_page('wpwbot-mobile-app')) {
1752 1714 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1775,16 +1737,15 @@
1775 1737 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1738 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1739 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1740 //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() ) {
1741 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1742 //post status and options
1782 1743 $app_page = array(
1783 1744 'comment_status' => 'closed',
1784 1745 'ping_status' => 'closed',
1785 1746 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1747 + 'post_date' => date('Y-m-d H:i:s'),
1787 1748 'post_status' => 'publish',
1788 1749 'post_title' => 'wpwBot Mobile App',
1789 1750 'post_name' => 'wpwbot-mobile-app',
1790 1751 'post_type' => 'page',
@@ -1794,16 +1755,15 @@
1794 1755 //save the id in the database
1795 1756 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1757 }
1797 1758 //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() ) {
1759 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1760 //post status and options
1801 1761 $checkout_page = array(
1802 1762 'comment_status' => 'closed',
1803 1763 'ping_status' => 'closed',
1804 1764 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1765 + 'post_date' => date('Y-m-d H:i:s'),
1806 1766 'post_status' => 'publish',
1807 1767 'post_title' => 'wpwBot App Checkout',
1808 1768 'post_name' => 'wpwbot-app-checkout',
1809 1769 'post_type' => 'page',
@@ -1813,16 +1773,15 @@
1813 1773 //save the id in the database
1814 1774 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1775 }
1816 1776 //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() ) {
1777 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1778 //post status and options
1820 1779 $thankyou_page = array(
1821 1780 'comment_status' => 'closed',
1822 1781 'ping_status' => 'closed',
1823 1782 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1783 + 'post_date' => date('Y-m-d H:i:s'),
1825 1784 'post_status' => 'publish',
1826 1785 'post_title' => 'wpwBot App Order Thank You',
1827 1786 'post_name' => 'wpwbot-app-order-thankyou',
1828 1787 'post_type' => 'page',
@@ -1833,9 +1792,9 @@
1833 1792 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1793 }
1835 1794 }
1836 1795 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1796 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1797 if (!isset($_COOKIE['from_app'])) {
1839 1798 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1799 }
1841 1800 }
@@ -1849,9 +1808,9 @@
1849 1808 global $wp;
1850 1809 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1810 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1811 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1812 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1813 exit;
1855 1814 }
1856 1815 } else {
1857 1816 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1818,9 @@
1859 1818 }
1860 1819 }
1861 1820
1862 1821 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1822 + return $array[array_rand($array)];
1867 1823 }
1868 1824
1869 1825 //User session count
1870 1826 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1826,8 @@
1870 1826 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1827 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1828 function qcld_wb_chatbot_session_count(){
1873 1829 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1830 global $wpdb;
1876 1831 $wpdb->show_errors = true;
1877 1832 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1833 $response = array();
@@ -1877,12 +1832,11 @@
1877 1832 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1833 $response = array();
1879 1834
1880 1835
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 -
1836 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1837 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1838 + $wpdb->insert(
1885 1839 $tableuser,
1886 1840 array(
1887 1841 'session' => 1,
1888 1842 )
@@ -1889,10 +1843,9 @@
1889 1843 );
1890 1844 }else{
1891 1845
1892 1846 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1847 + $wpdb->update(
1895 1848 $tableuser,
1896 1849 array(
1897 1850 'session'=>($session_exists->session+1),
1898 1851 ),
@@ -1901,107 +1854,9 @@
1901 1854 '%d',
1902 1855 ),
1903 1856 array('%d')
1904 1857 );
1905 -
1906 1858 }
1907 1859
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 -}
1860 + echo wp_send_json($response);
1861 + die();
1862 +}