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