PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 3.8.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v3.8.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 +457 -579 8.7.03.8.2 View file →
@@ -3,129 +3,20 @@
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) {
9 +
10 + if (get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 11
119 12 ?>
120 13 <style>
121 14 <?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
15 + echo get_option('wp_chatbot_custom_css');
124 16 }
125 17 ?>
126 18 </style>
127 -
128 19 <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
129 20 if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
130 21 $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
131 22 } else {
@@ -133,46 +24,47 @@
133 24 }
134 25 ?>
135 26 <style>
136 27 .wp-chatbot-container {
137 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
28 + background-image: url(<?php echo $qcld_wb_chatbot_board_bg_path;
29 +?>) !important;
138 30 }
139 31 </style>
140 32 <?php }
141 33 $wp_chatbot_enable_rtl = "";
142 - if (get_option('enable_wp_chatbot_rtl') == '1') {
34 + if (get_option('enable_wp_chatbot_rtl')) {
143 35 $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
144 36 }
145 37 $wp_chatbot_enable_mobile_screen = "";
146 - // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
38 + if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 39 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 - // }
40 + }
149 41 ?>
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';} ?>">
42 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen; ?>">
151 43 <div id="wp-chatbot-integration-container">
152 44 <div class="wp-chatbot-integration-button-container">
153 45 <?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>
46 + <a href="skype:<?php echo get_option('enable_wp_chatbot_skype_id'); ?>?chat"><span
47 + class="inetegration-skype-btn" title="<?php esc_html_e('Skype', 'wpchatbot'); ?>"> </span></a>
156 48 <?php } ?>
157 49 <?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')); ?>"
50 + <a href="<?php echo 'https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num'); ?>"
159 51 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
52 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 53 <?php } ?>
162 54 <?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')); ?>"
55 + <a href="<?php echo 'https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc'); ?>"
164 56 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
57 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
166 58 <?php } ?>
167 59 <?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
60 + <a href="tel:<?php echo get_option('qlcd_wp_chatbot_phone'); ?>"><span
169 61 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
62 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
171 63 <?php } ?>
172 64 <?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>
65 + <a href="<?php echo get_option('qlcd_wp_chatbot_weblink'); ?>" target="_blank"><span
66 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
175 67 <?php } ?>
176 68 </div>
177 69 </div>
178 70 <?php
@@ -185,9 +77,9 @@
185 77 }
186 78 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 79 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 80 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
81 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 82 }
191 83 ?>
192 84 <?php
193 85 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -192,13 +84,11 @@
192 84 <?php
193 85 if (get_option('disable_wp_chatbot_notification') != 1) {
194 86 ?>
195 87 <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>
88 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">
89 + <?php esc_html_e('X', 'wpchatbot'); ?>
90 + </span></div>
201 91 <?php
202 92 $testingTip="";
203 93 if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
204 94 $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
@@ -209,18 +99,18 @@
209 99 }
210 100 ?>
211 101 <div class="wp-chatbot-notification-agent-profile">
212 102 <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>
103 + src="<?php echo $wp_chatbot_custom_agent_path; ?>" alt=""></div>
104 + <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 105 </div>
216 106 <?php
217 107 //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'))));
108 + $notifications = qcld_wb_chatbot_func_str_replace(unserialize(get_option('qlcd_wp_chatbot_notifications')));
219 109
220 110 ?>
221 111
222 - <div class="wp-chatbot-notification-message"><?php echo esc_html($notifications[0]); ?></div>
112 + <div class="wp-chatbot-notification-message"><?php echo $notifications[0]; ?></div>
223 113 </div>
224 114 <?php } ?>
225 115 <!--wp-chatbot-board-container-->
226 116 <div id="wp-chatbot-ball" class="">
@@ -227,79 +117,20 @@
227 117 <div class="wp-chatbot-ball">
228 118 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
229 119 <?php
230 120 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 -
121 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
233 122 } else if (get_option('wp_chatbot_icon') != "custom.png") {
234 123 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 124 } else {
236 125 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 126 }
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 127 ?>
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; ?>
128 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
129 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
130 +
258 131 </div>
259 -
260 132 </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 133 <?php
303 134 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 135 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 136 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -308,18 +139,16 @@
308 139 if (get_option('enable_wp_chatbot_messenger') == 1 && get_option('enable_wp_chatbot_messenger_floating_icon') == 1) {
309 140 ?>
310 141 <!-- wp-chatbot-board-container-->
311 142 <script>
312 -
313 143 window.fbAsyncInit = function () {
314 144 FB.init({
315 - appId: '<?php echo esc_js($fb_app_id); ?>',
145 + appId: '<?php echo $fb_app_id;?>',
316 146 autoLogAppEvents: true,
317 147 xfbml: true,
318 148 version: 'v2.12'
319 149 });
320 150 };
321 -
322 151 (function (d, s, id) {
323 152 var js, fjs = d.getElementsByTagName(s)[0];
324 153 if (d.getElementById(id)) return;
325 154 js = d.createElement(s);
@@ -328,13 +157,13 @@
328 157 fjs.parentNode.insertBefore(js, fjs);
329 158 }(document, 'script', 'facebook-jssdk'));
330 159 </script>
331 160 <div class="fb-customerchat"
332 - page_id="<?php echo esc_attr($fb_page_id); ?>"
161 + page_id="<?php echo $fb_page_id; ?>"
333 162 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>
163 + theme_color="<?php echo $fb_mgs_color; ?>"
164 + logged_in_greeting="<?php echo $fb_mgs_in; ?>"
165 + logged_out_greeting="<?php echo $fb_mgs_out; ?>"></div>
337 166 <?php
338 167 }
339 168 ?>
340 169 <!--container-->
@@ -341,14 +170,8 @@
341 170 <!--wp-chatbot-ball-wrapper-->
342 171 </div>
343 172
344 173 <?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 174 }else{
352 175 ?>
353 176 <script>
354 177 var openingHourIsFn = 1;
@@ -362,17 +185,17 @@
362 185
363 186
364 187 if (get_option('wp_chatbot_show_pages') == 'off') {
365 188 $wp_chatbot_select_pages = unserialize(get_option('wp_chatbot_show_pages_list'));
189 +
366 190 if (is_page() && !empty($wp_chatbot_select_pages)) {
367 -
191 +
368 192 if (in_array(get_the_ID(), $wp_chatbot_select_pages) == true) {
369 -
193 +
370 194 $wp_chatbot_load = true;
371 195 } else {
372 196 $wp_chatbot_load = false;
373 197 }
374 -
375 198 }
376 199
377 200 if(function_exists('is_shop')){
378 201 if (is_shop() || is_cart() || is_checkout() || 'product' == get_post_type()) {
@@ -392,13 +215,9 @@
392 215 $wp_chatbot_load = false;
393 216 }
394 217 }
395 218
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;
400 - }
219 +
401 220 if (wp_chatbot_is_mobile() && get_option('disable_wp_chatbot_on_mobile') == 1) {
402 221 $wp_chatbot_load = false;
403 222 }
404 223
@@ -412,13 +231,14 @@
412 231
413 232 if(is_admin()){
414 233 $wp_chatbot_load = false;
415 234 }
235 +
416 236 return $wp_chatbot_load;
417 237 }
418 238 //checking Devices
419 239 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
240 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 241 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 242 return true;
423 243 } else {
424 244 return false;
@@ -425,13 +245,13 @@
425 245 }
426 246 }
427 247 //Checking wpwbot opening hour
428 248 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')));
249 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
250 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 251 $is_wpwbot_open =false;
432 252 if(get_option('wpwbot_hours')) {
433 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
253 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
434 254 if (isset($wpwbot_times[$curent_day])) {
435 255 $day_times = $wpwbot_times[$curent_day];
436 256 if (!empty($day_times)) {
437 257 foreach ($day_times as $day_time) {
@@ -443,8 +263,183 @@
443 263 }
444 264 }
445 265 return $is_wpwbot_open;
446 266 }
267 +//wpwBot shortcode.
268 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
269 +function wp_chatbot_short_code($atts = []){
270 + ob_start();
271 + wp_chatbot_shortcode_dom($atts);
272 + $content = ob_get_clean();
273 + return $content;
274 +}
275 +function wp_chatbot_shortcode_dom($atts){
276 + //Defaults & Set Parameters for shortcode
277 + extract(shortcode_atts(
278 + array(
279 + 'template' => '01',
280 + ), $atts
281 + ));
282 + ?>
283 + <style>
284 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
285 + </style>
286 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
287 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
288 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
289 + } else {
290 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
291 + }
292 + ?>
293 + <style>
294 + .wp-chatbot-container {
295 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
296 + }
297 + </style>
298 +<?php }
299 + $wp_chatbot_enable_rtl = "";
300 + if (get_option('enable_wp_chatbot_rtl')) {
301 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
302 + }
303 + ?>
304 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
305 + <?php
306 + //Get wpcommerce cart
307 +
308 + $qcld_wb_chatbot_theme = 'template-' . $template;
309 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
310 + 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');
311 + wp_enqueue_style('qcld-wp-chatbot-style');
312 + }
313 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
314 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
315 + } else {
316 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
317 + }
318 + ?>
319 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
320 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
321 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
322 + <?php
323 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
324 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
325 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
326 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
327 + } else {
328 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
329 + }
330 + ?>
331 + <div class="wp-chatbot-notification-agent-profile">
332 + <div class="wp-chatbot-notification-widget-avatar"><img
333 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
334 + <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>
335 + </div>
336 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
337 + </div>
338 + <!--wp-chatbot-board-container-->
339 + <div id="wp-chatbot-ball" class="">
340 + <div class="wp-chatbot-ball">
341 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
342 + <?php
343 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
344 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
345 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
346 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
347 + } else {
348 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
349 + }
350 + ?>
351 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
352 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
353 + </div>
354 + <!-- wp-chatbot-board-container-->
355 + <?php endif; ?>
356 + <!--container-->
357 + <!--wp-chatbot-ball-wrapper-->
358 + </div>
359 +<?php } ?>
360 +<?php
361 +//Create shortcode for wpwBot for pages.
362 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
363 +function wp_chatbot_page_short_code(){
364 + ob_start();
365 + wp_chatbot_page_dom();
366 + $content = ob_get_clean();
367 + return $content;
368 +}
369 +function wp_chatbot_page_dom(){ ?>
370 + <style>
371 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
372 + </style>
373 + <?php
374 + //Get wpcommerce cart
375 +
376 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
377 + $wp_chatbot_enable_rtl = "";
378 + if (get_option('enable_wp_chatbot_rtl') == 1) {
379 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
380 + }
381 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
382 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
383 + } else {
384 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
385 + }
386 +}
387 +//shortcode for wpWBot mobile app
388 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
389 +function wp_chatbot_mobile_app_short_code(){ ?>
390 + <style>
391 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
392 + </style>
393 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
394 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
395 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
396 + } else {
397 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
398 + }
399 + ?>
400 + <style>
401 + .wp-chatbot-container {
402 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
403 + }
404 + </style>
405 +<?php }
406 + $wp_chatbot_enable_rtl = "";
407 + if (get_option('enable_wp_chatbot_rtl')) {
408 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
409 + }
410 + ?>
411 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
412 + <?php
413 + // keep traking app template.
414 + $template_app = 'yes';
415 + //Get wpcommerce cart
416 +
417 + //Handling shortcode enqeue and remove features part.
418 + define('wpCOMMERCE', true);
419 + wp_enqueue_script('jquery');
420 +
421 +
422 + wp_enqueue_script('wc-address-i18n');
423 + wp_enqueue_script('wc-country-select');
424 +
425 +
426 + // add the action
427 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
428 + if (!isset($_COOKIE['from_app'])) {
429 + setcookie('from_app', 'yes', time() + 3600);
430 + }
431 + }
432 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
433 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
434 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
435 + } else {
436 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
437 + }
438 + ?>
439 + </div>
440 + <?php
441 +}
447 442
448 443 /**
449 444 * wpwBot Search keyword product
450 445 */
@@ -450,20 +445,13 @@
450 445 */
451 446 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 447 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 448 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']));
449 + $keyword = sanitize_text_field($_POST['keyword']);
462 450 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 451 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');
452 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
453 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
466 454 //Merging all query together.
467 455 $argu_params = array(
468 456 'post_type' => 'product',
469 457 'post_status' => 'publish',
@@ -505,9 +493,9 @@
505 493 endwhile;
506 494 wp_reset_postdata();
507 495 $html .= '</ul>';
508 496 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>';
497 + $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 498 }
511 499 }
512 500 $html .= '</div>';
513 501 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,16 +523,16 @@
535 523 }
536 524 }
537 525 $html .= '</ul>';
538 526 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>';
527 + $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 528 }
541 529 }
542 530 $html .= '</div>';
543 531 }
544 532 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
545 - wp_send_json($response);
546 -
533 + echo wp_send_json($response);
534 + wp_die();
547 535 }
548 536 /**
549 537 * wpwBot Categories
550 538 */
@@ -552,22 +540,23 @@
552 540 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 541 function qcld_wb_chatbot_category(){
554 542 $category_type="common";
555 543 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
544 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
545 +
557 546 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
547 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 548 }
560 549 $html = "";
561 550 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
551 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 552 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 553 $category_type="hasChilds";
565 554 }
566 555 $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 556 }
568 - wp_send_json($html);
569 -
557 + echo wp_send_json($html);
558 + wp_die();
570 559 }
571 560 /**
572 561 * wpwBot Sub categories
573 562 */
@@ -573,16 +562,16 @@
573 562 */
574 563 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 564 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 565 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' ) );
566 + $parent_id = stripslashes($_POST['parent_id']);
567 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 568 $html = "";
580 569 foreach ($terms as $term) {
581 570 $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 571 }
583 - wp_send_json($html);
584 -
572 + echo wp_send_json($html);
573 + wp_die();
585 574 }
586 575 /**
587 576 * wpwBot category product
588 577 */
@@ -588,12 +577,12 @@
588 577 */
589 578 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 579 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 580 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');
581 + $category_id = stripslashes($_POST['category']);
582 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
583 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
584 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
596 585 //Merging all query together.
597 586 $argu_params = array(
598 587 'post_type' => 'product',
599 588 'post_status' => 'publish',
@@ -655,9 +644,9 @@
655 644 endwhile;
656 645 wp_reset_postdata();
657 646 $html .= '</ul>';
658 647 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>';
648 + $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 649 }
661 650 $html .= '</div>';
662 651 } else {
663 652 $html = '';
@@ -662,9 +651,10 @@
662 651 } else {
663 652 $html = '';
664 653 }
665 654 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
666 - wp_send_json($response);
655 + echo wp_send_json($response);
656 + wp_die();
667 657 }
668 658 /**
669 659 * wpwBot latest, featured, recent product
670 660 */
@@ -670,11 +660,11 @@
670 660 */
671 661 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
672 662 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
673 663 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');
664 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
665 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
666 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
677 667 //get featured products query.
678 668 $argu_params = array('post_status' => 'publish',
679 669 'posts_per_page' => $product_per_page,
680 670 'post_type' => 'product',
@@ -718,14 +708,15 @@
718 708 endwhile;
719 709 wp_reset_postdata();
720 710 $html .= '</ul>';
721 711 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>';
712 + $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 713 }
724 714 }
725 715 $html .= '</div>';
726 716 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
727 - wp_send_json($response);
717 + echo wp_send_json($response);
718 + wp_die();
728 719 }
729 720 //Product display controll
730 721 function wp_chatbot_product_controlling($product_id){
731 722 $display_product = true;
@@ -740,11 +731,11 @@
740 731 //Get Sale products
741 732 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
742 733 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
743 734 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');
735 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
736 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
737 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
747 738 //get sale products query.
748 739 $argu_params = array(
749 740 'post_type' => 'product',
750 741 'post_status' => 'publish',
@@ -816,25 +807,26 @@
816 807 endwhile;
817 808 wp_reset_postdata();
818 809 $html .= '</ul>';
819 810 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>';
811 + $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 812 }
822 813 }
823 814 $html .= '</div>';
824 815 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
825 - wp_send_json($response);
816 + echo wp_send_json($response);
817 + wp_die();
826 818 }
827 819 //load more
828 820 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 821 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 822 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');
823 + $offset = stripslashes($_POST['offset']);
824 + $search_type = stripslashes($_POST['search_type']);
825 + $search_term = stripslashes($_POST['search_term']);
826 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
827 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
828 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
837 829 $next_offset = intval($product_per_page + $offset);
838 830 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
839 831 //if have multiple ids then explode else have single need to array push
840 832 if (strpos($search_term, ',') !== false) {
@@ -956,15 +948,16 @@
956 948 $html .= '';
957 949 }
958 950 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
959 951 }
960 - wp_send_json($response);
952 + echo wp_send_json($response);
953 + wp_die();
961 954 }
962 955 //product details
963 956 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 957 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 958 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
959 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 960 //Tracking product view from chat board
968 961 wp_chatbot_view_track_product_by_id($product_id);
969 962 //wpcommerce product factory
970 963 $wc_pf = new WC_Product_Factory();
@@ -992,9 +985,9 @@
992 985 }
993 986 }
994 987 $product_image .= '</ul></div>';
995 988 $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>';
989 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 990 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 991 //Handle variable product start
999 992 $variations = "";
1000 993 $add_cart_button = "";
@@ -1035,13 +1028,12 @@
1035 1028 } else {
1036 1029 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1037 1030 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1031 $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>';
1032 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1040 1033 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 ] ) );
1034 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1035 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1036 } else {
1045 1037 $selected_value = '';
1046 1038 }
1047 1039 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1048,29 +1040,30 @@
1048 1040 }
1049 1041 $variations .= '</select></div>';
1050 1042 }
1051 1043 }
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="" />';
1044 + $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 1045 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1054 1046 } 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')))) . '" />';
1047 + $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 1048 }
1057 1049 //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>
1050 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1059 1051 <input type="number" id="vPQuantity" value="1" />';
1060 1052 }
1061 1053 //$response=$full_size_image;
1062 1054 $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);
1055 + echo wp_send_json($response);
1056 + wp_die();
1064 1057 }
1065 1058 //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();
1059 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1060 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1061 +function qcld_wb_chatbot_variable_add_to_cart(){
1062 + $product_id = stripslashes($_POST['p_id']);
1063 + $quantity = stripslashes($_POST['quantity']);
1064 + $variations_id = stripslashes($_POST['variations_id']);
1065 + $attrs = stripslashes($_POST['attributes']);
1073 1066 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1067 $attributes = array();
1075 1068 foreach ($attrs as $attr) {
1076 1069 $single = explode("#", $attr);
@@ -1081,46 +1074,44 @@
1081 1074 }
1082 1075 global $wpcommerce;
1083 1076 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1084 1077 if ($result != false) {
1085 - wp_send_json('variable');
1078 + echo wp_send_json('variable');
1086 1079 } else {
1087 - wp_send_json('error');
1080 + echo wp_send_json('error');
1088 1081 }
1082 + wp_die();
1089 1083 }
1090 1084 //Add to cart for simple product.
1091 1085 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1086 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1087 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1088 + $product_id = stripslashes($_POST['product_id']);
1089 + $product_quantity = stripslashes($_POST['quantity']);
1096 1090 global $wpcommerce;
1097 1091 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1092 if ($result != false) {
1099 - wp_send_json('simple');
1093 + echo wp_send_json('simple');
1100 1094 } else {
1101 - wp_send_json('error');
1095 + echo wp_send_json('error');
1102 1096 }
1097 + wp_die();
1103 1098 }
1104 1099 //Support part
1105 1100 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1101 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1102 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');
1103 + $name = trim(sanitize_text_field($_POST['name']));
1104 + $email = sanitize_email($_POST['email']);
1105 + $message = sanitize_text_field($_POST['message']);
1106 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1116 1107 //Extract Domain
1117 1108 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1109 + $url = parse_url($url);
1119 1110 $domain = $url['host'];
1120 1111 //$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);
1112 + $admin_email = get_option('admin_email');
1113 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1123 1114
1124 1115
1125 1116 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1126 1117 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
@@ -1126,23 +1117,24 @@
1126 1117 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 1118 }else{
1128 1119 $fromEmail = "wordpress@" . $domain;
1129 1120 }
1121 +
1130 1122 //Starting messaging and status.
1131 1123 $response['status'] = 'fail';
1132 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1124 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1133 1125 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'))));
1126 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1135 1127 $response['status'] = 'fail';
1136 1128 } else {
1137 1129 //build email body
1138 1130 $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>';
1131 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1132 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1133 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1134 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1135 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1136 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 1137 $to = $toEmail;
1146 1138 $body = $bodyContent;
1147 1139 $headers = array();
1148 1140 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1150,13 +1142,13 @@
1150 1142 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1151 1143 $result = wp_mail($to, $subject, $body, $headers);
1152 1144 if ($result) {
1153 1145 $response['status'] = 'success';
1154 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1146 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1155 1147 }
1156 1148
1157 1149 }
1158 - echo wp_json_encode($response);
1150 + echo json_encode($response);
1159 1151 die();
1160 1152 }
1161 1153 //Support Phone
1162 1154 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,37 +1153,36 @@
1161 1153 //Support Phone
1162 1154 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1155 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1156 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']));
1157 + $name = trim(sanitize_text_field($_POST['name']));
1158 + $phone =sanitize_text_field($_POST['phone']);
1168 1159 $subject = 'WPBot Support Mail Request for Call Back';
1169 1160 //Extract Domain
1170 1161 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1162 + $url = parse_url($url);
1172 1163 $domain = $url['host'];
1173 1164 //$admin_email = "admin@" . $domain;
1174 1165 $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);
1166 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1176 1167
1177 1168
1178 1169 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'));
1170 + $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1180 1171 }else{
1181 1172 $fromEmail = "wordpress@" . $domain;
1182 1173 }
1183 1174 //Starting messaging and status.
1184 1175 $response['status'] = 'fail';
1185 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1176 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1186 1177 //build email body
1187 1178 $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>';
1179 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1180 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1181 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1182 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1183 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1184 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1185 $to = $toEmail;
1195 1186 $body = $bodyContent;
1196 1187 $headers = array();
1197 1188 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1199,17 +1190,38 @@
1199 1190 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1200 1191 $result = wp_mail($to, $subject, $body, $headers);
1201 1192 if ($result) {
1202 1193 $response['status'] = 'success';
1203 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1194 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1204 1195 }
1205 - echo wp_json_encode($response);
1196 + echo json_encode($response);
1206 1197 die();
1207 1198 }
1208 -// Order Status part. removed
1209 -
1199 +// Order Status part.
1200 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1201 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1202 +function qcld_wb_chatbot_check_user(){
1203 + global $wpcommerce;
1204 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1205 + $response = array();
1206 + $response['message'] = "";
1207 + if (username_exists($user_name)) {
1208 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1209 + $response['status'] = "success";
1210 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1211 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1212 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1213 + $response = get_order_by_username($user_name);
1214 + }
1215 + } else {
1216 + $response['status'] = "fail";
1217 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1218 + }
1219 + echo wp_send_json($response);
1220 + die();
1221 +}
1210 1222 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1223 + return $items[rand(0, count($items) - 1)];
1212 1224 }
1213 1225 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1226 $refined_mesgses = array();
1215 1227 foreach ($messages as $message) {
@@ -1224,21 +1236,22 @@
1224 1236 // First check the nonce, if it fails the function will break
1225 1237 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1238 // Nonce is checked, get the POST data and sign user on
1227 1239 $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'])));
1240 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1241 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1242 $info['remember'] = true;
1231 1243 $user_signon = wp_signon($info, false);
1232 1244 $response = array();
1233 1245 if (is_wp_error($user_signon)) {
1234 1246 $response['status'] = "fail";
1235 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1247 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1236 1248 } else {
1237 1249 $response = get_order_by_username($info['user_login']);
1238 1250 $response['status'] = "success";
1239 1251 }
1240 - wp_send_json($response);
1252 + echo wp_send_json($response);
1253 + die();
1241 1254 }
1242 1255 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1243 1256 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1244 1257 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1244,9 +1257,10 @@
1244 1257 function qcld_wb_chatbot_loged_in_user_orders(){
1245 1258 $current_user = wp_get_current_user();
1246 1259 $user_name = $current_user->user_login;
1247 1260 $response = get_order_by_username($user_name);
1248 - wp_send_json($response);
1261 + echo wp_send_json($response);
1262 + die();
1249 1263 }
1250 1264 function get_order_by_username($user_name){
1251 1265 global $post;
1252 1266 $response = array();
@@ -1264,28 +1278,28 @@
1264 1278 ));
1265 1279 $response['order_num'] = count($customer_orders);
1266 1280 $order_html = '';
1267 1281 if ($response['order_num'] > 0) {
1268 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1282 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1269 1283 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1284 <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>
1285 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1286 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1287 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1288 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1289 </div>';
1276 1290 foreach ($customer_orders as $order) {
1277 1291 //Formatting order summery
1278 1292 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1279 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1293 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1280 1294 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1281 1295 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1282 1296 } 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>';
1297 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1284 1298 }
1285 1299 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1300 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1301 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1302 <div class="order-items">';
1289 1303 $singleOrder = new WC_Order($order->ID);
1290 1304 $items = $singleOrder->get_items();
1291 1305 foreach ($items as $item) {
@@ -1298,9 +1312,9 @@
1298 1312 }
1299 1313 $order_html .= '</div>';
1300 1314 } else {
1301 1315 $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>';
1316 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1303 1317 }
1304 1318 $response['html'] = $order_html;
1305 1319 return $response;
1306 1320 }
@@ -1336,10 +1350,10 @@
1336 1350 function qcld_wb_chatbot_recently_viewed_products(){
1337 1351 // Get wpCommerce Global
1338 1352 $_pf = new WC_Product_Factory();
1339 1353 //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'))));
1354 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1355 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1342 1356 // Get recently viewed product cookies data
1343 1357 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1344 1358 $viewed_products = array_filter(array_map('absint', $viewed_products));
1345 1359 //get featured products if has.
@@ -1345,9 +1359,9 @@
1345 1359 //get featured products if has.
1346 1360 $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 1361 //Getting recently vieew products.
1348 1362 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'))));
1363 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1350 1364 $product_query = new WP_Query(array(
1351 1365 'posts_per_page' => $product_per_page,
1352 1366 'no_found_rows' => 1,
1353 1367 'post_status' => 'publish',
@@ -1355,15 +1369,16 @@
1355 1369 'post__in' => $viewed_products,
1356 1370 ));
1357 1371 //Getting featured products
1358 1372 } 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'))));
1373 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1360 1374 $product_query = $featured_products;
1361 1375 } else {
1362 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1376 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1363 1377 //Getting recent products
1364 1378 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1365 1379 }
1380 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1366 1381 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1367 1382 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1368 1383 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1369 1384 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1370,10 +1385,10 @@
1370 1385 } else {
1371 1386 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1372 1387 }
1373 1388 $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>
1389 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1390 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1376 1391 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1377 1392 </div>';
1378 1393 if ($product_query->post_count > 0) {
1379 1394 $html .= '<div class="wp-chatbot-products-area">';
@@ -1385,9 +1400,9 @@
1385 1400 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1401 <div class="wp-chatbot-product-summary">
1387 1402 <div class="wp-chatbot-product-table">
1388 1403 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1404 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1405 <div class="price">' . $product->get_price_html() . '</div>';
1391 1406 $html .= ' </div>
1392 1407 </div>
1393 1408 </div></a>
@@ -1400,9 +1415,10 @@
1400 1415 $html .= '<div class="wp-chatbot-products-area">';
1401 1416 $html .= '<p style="text-align: center">You have no products !';
1402 1417 $html .= '</div>';
1403 1418 }
1404 - wp_send_json($html);
1419 + echo wp_send_json($html);
1420 + die();
1405 1421 }
1406 1422 //Recently viewed product shortcode
1407 1423 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1424 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1407,10 +1423,10 @@
1407 1423 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1408 1424 function qcld_wb_chatbot_recently_viewed_shortcode(){
1409 1425 // Get wpCommerce Global
1410 1426 $_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'))));
1427 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1428 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1413 1429 // Get recently viewed product cookies data
1414 1430 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1415 1431 $viewed_products = array_filter(array_map('absint', $viewed_products));
1416 1432 //get featured products if has.
@@ -1416,9 +1432,9 @@
1416 1432 //get featured products if has.
1417 1433 $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 1434 //Getting recently vieew products.
1419 1435 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'))));
1436 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1421 1437 $product_query = new WP_Query(array(
1422 1438 'posts_per_page' => $product_per_page,
1423 1439 'no_found_rows' => 1,
1424 1440 'post_status' => 'publish',
@@ -1426,15 +1442,16 @@
1426 1442 'post__in' => $viewed_products,
1427 1443 ));
1428 1444 //implementing featured products
1429 1445 } 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'))));
1446 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1431 1447 $product_query = $featured_products;
1432 1448 } else {
1433 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1449 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1434 1450 //Getting recent products
1435 1451 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1436 1452 }
1453 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1437 1454 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1438 1455 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1439 1456 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1440 1457 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1441,11 +1458,11 @@
1441 1458 } else {
1442 1459 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1443 1460 }
1444 1461 $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>
1462 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1463 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1464 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1448 1465 </div>';
1449 1466 if ($product_query->post_count > 0) {
1450 1467 $html .= '<div class="wp-chatbot-products-area">';
1451 1468 $html .= '<ul class="wp-chatbot-products">';
@@ -1456,9 +1473,9 @@
1456 1473 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1474 <div class="wp-chatbot-product-summary">
1458 1475 <div class="wp-chatbot-product-table">
1459 1476 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1477 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1478 <div class="price">' . $product->get_price_html() . '</div>';
1462 1479 $html .= ' </div>
1463 1480 </div>
1464 1481 </div></a>
@@ -1468,9 +1485,9 @@
1468 1485 wp_reset_postdata();
1469 1486 $html .= '</ul></div>';
1470 1487 } else {
1471 1488 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1489 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1490 $html .= '</div>';
1474 1491 }
1475 1492 return $html;
1476 1493 }
@@ -1484,10 +1501,11 @@
1484 1501 $checkout_url = wc_get_checkout_url();
1485 1502 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1486 1503 $items = $wpcommerce->cart->get_cart();
1487 1504 $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'))));
1505 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1506 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1507 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1490 1508 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1491 1509 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1492 1510 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1493 1511 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1494,15 +1512,15 @@
1494 1512 } else {
1495 1513 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1496 1514 }
1497 1515 $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>
1516 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1517 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1518 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1501 1519 </div>';
1502 1520 if ($itemCount >= 1) {
1503 1521 $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>';
1522 + $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 1523 $html .= '<div class ="wp-chatbot-cart-body">';
1506 1524 foreach ($items as $item => $values) {
1507 1525 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1508 1526 //product image
@@ -1520,9 +1538,9 @@
1520 1538 <div class="qcld-wp-chatbot-cell"></div>
1521 1539 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1522 1540 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1523 1541 </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>';
1542 + $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 1543 $html .= ' </div>';
1526 1544 } else {
1527 1545 $html .= '<div class="wp-chatbot-cart-container">';
1528 1546 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1528,9 +1546,10 @@
1528 1546 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1529 1547 $html .= '</div>';
1530 1548 }
1531 1549 $response = array('html' => $html, 'items' => $itemCount);
1532 - wp_send_json($response);
1550 + echo wp_send_json($response);
1551 + wp_die();
1533 1552 }
1534 1553 //cart onley for wp chatbot
1535 1554 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1536 1555 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1541,14 +1560,14 @@
1541 1560 $checkout_url = wc_get_checkout_url();
1542 1561 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1543 1562 $items = $wpcommerce->cart->get_cart();
1544 1563 $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'))));
1564 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1546 1565
1547 1566 $html = '';
1548 1567 if ($itemCount >= 1) {
1549 1568 $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>';
1569 + $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 1570 $html .= '<div class ="wp-chatbot-cart-body">';
1552 1571 foreach ($items as $item => $values) {
1553 1572 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1554 1573 //product image
@@ -1566,17 +1585,18 @@
1566 1585 <div class="qcld-wp-chatbot-cell"></div>
1567 1586 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1568 1587 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1569 1588 </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>';
1589 + $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 1590 $html .= ' </div>';
1572 1591 } else {
1573 1592 $html .= '<div class="wp-chatbot-cart-container">';
1574 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1593 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1575 1594 $html .= '</div>';
1576 1595 }
1577 1596 $response = array('html' => $html, 'items' => $itemCount);
1578 - wp_send_json($response);
1597 + echo wp_send_json($response);
1598 + wp_die();
1579 1599 }
1580 1600 //Cart show Shortcode
1581 1601 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1582 1602 function qcld_wb_chatbot_cart_shortcode(){
@@ -1582,10 +1602,11 @@
1582 1602 function qcld_wb_chatbot_cart_shortcode(){
1583 1603 global $wpcommerce;
1584 1604 $items = $wpcommerce->cart->get_cart();
1585 1605 $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'))));
1606 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1607 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1608 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1588 1609 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1589 1610 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1590 1611 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1591 1612 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1592,15 +1613,15 @@
1592 1613 } else {
1593 1614 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1594 1615 }
1595 1616 $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>
1617 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1618 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1619 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1599 1620 </div>';
1600 1621 if ($itemCount >= 1) {
1601 1622 $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>';
1623 + $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 1624 $html .= '<div class ="wp-chatbot-cart-body">';
1604 1625 foreach ($items as $item => $values) {
1605 1626 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1606 1627 //product image
@@ -1618,9 +1639,9 @@
1618 1639 <div class="qcld-wp-chatbot-cell"></div>
1619 1640 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1620 1641 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1621 1642 </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>';
1643 + $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 1644 $html .= ' </div>';
1624 1645 } else {
1625 1646 $html .= '<div class="wp-chatbot-cart-container">';
1626 1647 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1632,26 +1653,26 @@
1632 1653 //Updating the cart items.
1633 1654 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1655 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1656 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1657 //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']));
1658 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1659 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1660 global $wpcommerce;
1641 1661 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 - wp_send_json($result);
1662 + echo wp_send_json($result);
1663 + wp_die();
1643 1664 }
1644 1665 //Show item after removing from cart page.
1645 1666 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1667 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1668 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1669 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1670 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1671 global $wpcommerce;
1652 1672 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 - wp_send_json($result);
1673 + echo wp_send_json($result);
1674 + wp_die();
1654 1675 }
1655 1676 //Show cart page by shortcode.
1656 1677 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1657 1678 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1659,13 +1680,14 @@
1659 1680 global $wpcommerce;
1660 1681 $itemCount = $wpcommerce->cart->cart_contents_count;
1661 1682 $html = "";
1662 1683 if ($itemCount < 0) {
1663 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1684 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1664 1685 } else {
1665 1686 $html .= do_shortcode("[wpcommerce_cart]");
1666 1687 }
1667 - wp_send_json($html);
1688 + echo wp_send_json($html);
1689 + wp_die();
1668 1690 }
1669 1691 //Show checkout page by shortcode.
1670 1692 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1671 1693 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1674,9 +1696,9 @@
1674 1696 $itemCount = $wpcommerce->cart->cart_contents_count;
1675 1697 $html = "";
1676 1698 if ($itemCount < 0) {
1677 1699 $status = 'no';
1678 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1700 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1679 1701 } else {
1680 1702 $status = 'yes';
1681 1703 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1682 1704 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1682,71 +1704,34 @@
1682 1704 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1683 1705 $html .= $checkout_parmanlink;
1684 1706 }
1685 1707 $response = array('status' => $status, 'html' => $html);
1686 - wp_send_json($response);
1708 + echo wp_send_json($response);
1709 + wp_die();
1687 1710 }
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 - }
1711 +//User login on Checkout page.
1712 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1713 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1714 +function qcld_wb_chatbot_checkout_user_login(){
1715 + // Nonce is checked, get the POST data and sign user on
1716 + $info = array();
1717 + //$info['nonce'] = $_POST['nonce_val'];
1718 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1719 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1720 + $info['remember'] = true;
1721 + $user_signon = wp_signon($info, false);
1722 + // $response=$info;
1723 + $response = array();
1724 + if (is_wp_error($user_signon)) {
1725 + // $response['status'] = "fail";
1726 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1727 + $response = "no";
1728 + } else {
1729 + $response = "yes";
1718 1730 }
1719 -
1720 - if(!empty($intents)){
1721 - return implode(", ", $intents);
1722 - }else{
1723 - return '';
1724 - }
1725 -
1731 + echo wp_send_json($response);
1732 + die();
1726 1733 }
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 1734 // Load template for App Order Thank You page url
1750 1735 function wp_chatbot_load_app_template($template){
1751 1736 if (is_page('wpwbot-mobile-app')) {
1752 1737 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1775,16 +1760,15 @@
1775 1760 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1761 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1762 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1763 //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() ) {
1764 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1765 //post status and options
1782 1766 $app_page = array(
1783 1767 'comment_status' => 'closed',
1784 1768 'ping_status' => 'closed',
1785 1769 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1770 + 'post_date' => date('Y-m-d H:i:s'),
1787 1771 'post_status' => 'publish',
1788 1772 'post_title' => 'wpwBot Mobile App',
1789 1773 'post_name' => 'wpwbot-mobile-app',
1790 1774 'post_type' => 'page',
@@ -1794,16 +1778,15 @@
1794 1778 //save the id in the database
1795 1779 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1780 }
1797 1781 //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() ) {
1782 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1783 //post status and options
1801 1784 $checkout_page = array(
1802 1785 'comment_status' => 'closed',
1803 1786 'ping_status' => 'closed',
1804 1787 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1788 + 'post_date' => date('Y-m-d H:i:s'),
1806 1789 'post_status' => 'publish',
1807 1790 'post_title' => 'wpwBot App Checkout',
1808 1791 'post_name' => 'wpwbot-app-checkout',
1809 1792 'post_type' => 'page',
@@ -1813,16 +1796,15 @@
1813 1796 //save the id in the database
1814 1797 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1798 }
1816 1799 //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() ) {
1800 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1801 //post status and options
1820 1802 $thankyou_page = array(
1821 1803 'comment_status' => 'closed',
1822 1804 'ping_status' => 'closed',
1823 1805 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1806 + 'post_date' => date('Y-m-d H:i:s'),
1825 1807 'post_status' => 'publish',
1826 1808 'post_title' => 'wpwBot App Order Thank You',
1827 1809 'post_name' => 'wpwbot-app-order-thankyou',
1828 1810 'post_type' => 'page',
@@ -1833,9 +1815,9 @@
1833 1815 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1816 }
1835 1817 }
1836 1818 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1819 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1820 if (!isset($_COOKIE['from_app'])) {
1839 1821 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1822 }
1841 1823 }
@@ -1849,9 +1831,9 @@
1849 1831 global $wp;
1850 1832 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1833 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1834 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1835 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1836 exit;
1855 1837 }
1856 1838 } else {
1857 1839 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1841,9 @@
1859 1841 }
1860 1842 }
1861 1843
1862 1844 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1845 + return $array[array_rand($array)];
1867 1846 }
1868 1847
1869 1848 //User session count
1870 1849 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1849,8 @@
1870 1849 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1850 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1851 function qcld_wb_chatbot_session_count(){
1873 1852 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1853 global $wpdb;
1876 1854 $wpdb->show_errors = true;
1877 1855 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1856 $response = array();
@@ -1877,12 +1855,11 @@
1877 1855 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1856 $response = array();
1879 1857
1880 1858
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 -
1859 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1860 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1861 + $wpdb->insert(
1885 1862 $tableuser,
1886 1863 array(
1887 1864 'session' => 1,
1888 1865 )
@@ -1889,10 +1866,9 @@
1889 1866 );
1890 1867 }else{
1891 1868
1892 1869 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1870 + $wpdb->update(
1895 1871 $tableuser,
1896 1872 array(
1897 1873 'session'=>($session_exists->session+1),
1898 1874 ),
@@ -1901,107 +1877,9 @@
1901 1877 '%d',
1902 1878 ),
1903 1879 array('%d')
1904 1880 );
1905 -
1906 1881 }
1907 1882
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 -}
1883 + echo wp_send_json($response);
1884 + die();
1885 +}