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