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