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