PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.3.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.3.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 +463 -515 8.7.34.3.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-->
@@ -359,11 +171,11 @@
359 171 </div>
360 172
361 173 <?php
362 174
363 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
175 + if ( get_transient( 'bot_clear_cache' ) ) {
364 176 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
365 - delete_transient( 'qcld_bot_clear_cache' );
177 + delete_transient( 'bot_clear_cache' );
366 178 }
367 179
368 180 }else{
369 181 ?>
@@ -433,9 +245,9 @@
433 245 return $wp_chatbot_load;
434 246 }
435 247 //checking Devices
436 248 function wp_chatbot_is_mobile(){
437 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
249 + $useragent = $_SERVER['HTTP_USER_AGENT'];
438 250 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 251 return true;
440 252 } else {
441 253 return false;
@@ -442,13 +254,13 @@
442 254 }
443 255 }
444 256 //Checking wpwbot opening hour
445 257 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')));
258 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
259 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
448 260 $is_wpwbot_open =false;
449 261 if(get_option('wpwbot_hours')) {
450 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
262 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
451 263 if (isset($wpwbot_times[$curent_day])) {
452 264 $day_times = $wpwbot_times[$curent_day];
453 265 if (!empty($day_times)) {
454 266 foreach ($day_times as $day_time) {
@@ -460,8 +272,183 @@
460 272 }
461 273 }
462 274 return $is_wpwbot_open;
463 275 }
276 +//wpwBot shortcode.
277 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
278 +function wp_chatbot_short_code($atts = []){
279 + ob_start();
280 + wp_chatbot_shortcode_dom($atts);
281 + $content = ob_get_clean();
282 + return $content;
283 +}
284 +function wp_chatbot_shortcode_dom($atts){
285 + //Defaults & Set Parameters for shortcode
286 + extract(shortcode_atts(
287 + array(
288 + 'template' => '01',
289 + ), $atts
290 + ));
291 + ?>
292 + <style>
293 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
294 + </style>
295 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
296 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
297 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
298 + } else {
299 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
300 + }
301 + ?>
302 + <style>
303 + .wp-chatbot-container {
304 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
305 + }
306 + </style>
307 +<?php }
308 + $wp_chatbot_enable_rtl = "";
309 + if (get_option('enable_wp_chatbot_rtl')) {
310 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
311 + }
312 + ?>
313 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
314 + <?php
315 + //Get wpcommerce cart
316 +
317 + $qcld_wb_chatbot_theme = 'template-' . $template;
318 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
319 + 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');
320 + wp_enqueue_style('qcld-wp-chatbot-style');
321 + }
322 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
323 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
324 + } else {
325 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
326 + }
327 + ?>
328 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
329 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
330 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
331 + <?php
332 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
333 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
334 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
335 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
336 + } else {
337 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
338 + }
339 + ?>
340 + <div class="wp-chatbot-notification-agent-profile">
341 + <div class="wp-chatbot-notification-widget-avatar"><img
342 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
343 + <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>
344 + </div>
345 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
346 + </div>
347 + <!--wp-chatbot-board-container-->
348 + <div id="wp-chatbot-ball" class="">
349 + <div class="wp-chatbot-ball">
350 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
351 + <?php
352 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
353 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
354 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
355 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
356 + } else {
357 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
358 + }
359 + ?>
360 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
361 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
362 + </div>
363 + <!-- wp-chatbot-board-container-->
364 + <?php endif; ?>
365 + <!--container-->
366 + <!--wp-chatbot-ball-wrapper-->
367 + </div>
368 +<?php } ?>
369 +<?php
370 +//Create shortcode for wpwBot for pages.
371 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
372 +function wp_chatbot_page_short_code(){
373 + ob_start();
374 + wp_chatbot_page_dom();
375 + $content = ob_get_clean();
376 + return $content;
377 +}
378 +function wp_chatbot_page_dom(){ ?>
379 + <style>
380 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
381 + </style>
382 + <?php
383 + //Get wpcommerce cart
384 +
385 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
386 + $wp_chatbot_enable_rtl = "";
387 + if (get_option('enable_wp_chatbot_rtl') == 1) {
388 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
389 + }
390 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
391 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
392 + } else {
393 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
394 + }
395 +}
396 +//shortcode for wpWBot mobile app
397 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
398 +function wp_chatbot_mobile_app_short_code(){ ?>
399 + <style>
400 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
401 + </style>
402 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
403 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
404 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
405 + } else {
406 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
407 + }
408 + ?>
409 + <style>
410 + .wp-chatbot-container {
411 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
412 + }
413 + </style>
414 +<?php }
415 + $wp_chatbot_enable_rtl = "";
416 + if (get_option('enable_wp_chatbot_rtl')) {
417 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
418 + }
419 + ?>
420 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
421 + <?php
422 + // keep traking app template.
423 + $template_app = 'yes';
424 + //Get wpcommerce cart
425 +
426 + //Handling shortcode enqeue and remove features part.
427 + define('wpCOMMERCE', true);
428 + wp_enqueue_script('jquery');
429 +
430 +
431 + wp_enqueue_script('wc-address-i18n');
432 + wp_enqueue_script('wc-country-select');
433 +
434 +
435 + // add the action
436 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
437 + if (!isset($_COOKIE['from_app'])) {
438 + setcookie('from_app', 'yes', time() + 3600);
439 + }
440 + }
441 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
442 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
443 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
444 + } else {
445 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
446 + }
447 + ?>
448 + </div>
449 + <?php
450 +}
464 451
465 452 /**
466 453 * wpwBot Search keyword product
467 454 */
@@ -467,20 +454,13 @@
467 454 */
468 455 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
469 456 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
470 457 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']));
458 + $keyword = sanitize_text_field($_POST['keyword']);
479 459 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
480 460 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');
461 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
462 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
483 463 //Merging all query together.
484 464 $argu_params = array(
485 465 'post_type' => 'product',
486 466 'post_status' => 'publish',
@@ -522,9 +502,9 @@
522 502 endwhile;
523 503 wp_reset_postdata();
524 504 $html .= '</ul>';
525 505 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>';
506 + $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 507 }
528 508 }
529 509 $html .= '</div>';
530 510 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -552,16 +532,16 @@
552 532 }
553 533 }
554 534 $html .= '</ul>';
555 535 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>';
536 + $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 537 }
558 538 }
559 539 $html .= '</div>';
560 540 }
561 541 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
562 - wp_send_json($response);
563 -
542 + echo wp_send_json($response);
543 + wp_die();
564 544 }
565 545 /**
566 546 * wpwBot Categories
567 547 */
@@ -569,22 +549,23 @@
569 549 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
570 550 function qcld_wb_chatbot_category(){
571 551 $category_type="common";
572 552 if (get_option('wp_chatbot_show_parent_category') != "") {
573 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
553 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
554 +
574 555 } else {
575 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
556 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
576 557 }
577 558 $html = "";
578 559 foreach ($terms as $term) {
579 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
560 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
580 561 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
581 562 $category_type="hasChilds";
582 563 }
583 564 $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 565 }
585 - wp_send_json($html);
586 -
566 + echo wp_send_json($html);
567 + wp_die();
587 568 }
588 569 /**
589 570 * wpwBot Sub categories
590 571 */
@@ -590,16 +571,16 @@
590 571 */
591 572 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
592 573 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
593 574 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' ) );
575 + $parent_id = stripslashes($_POST['parent_id']);
576 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
596 577 $html = "";
597 578 foreach ($terms as $term) {
598 579 $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 580 }
600 - wp_send_json($html);
601 -
581 + echo wp_send_json($html);
582 + wp_die();
602 583 }
603 584 /**
604 585 * wpwBot category product
605 586 */
@@ -605,12 +586,12 @@
605 586 */
606 587 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
607 588 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
608 589 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');
590 + $category_id = stripslashes($_POST['category']);
591 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
592 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
593 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
613 594 //Merging all query together.
614 595 $argu_params = array(
615 596 'post_type' => 'product',
616 597 'post_status' => 'publish',
@@ -672,9 +653,9 @@
672 653 endwhile;
673 654 wp_reset_postdata();
674 655 $html .= '</ul>';
675 656 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>';
657 + $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 658 }
678 659 $html .= '</div>';
679 660 } else {
680 661 $html = '';
@@ -679,9 +660,10 @@
679 660 } else {
680 661 $html = '';
681 662 }
682 663 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
683 - wp_send_json($response);
664 + echo wp_send_json($response);
665 + wp_die();
684 666 }
685 667 /**
686 668 * wpwBot latest, featured, recent product
687 669 */
@@ -687,11 +669,11 @@
687 669 */
688 670 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
689 671 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
690 672 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');
673 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
674 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
675 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
694 676 //get featured products query.
695 677 $argu_params = array('post_status' => 'publish',
696 678 'posts_per_page' => $product_per_page,
697 679 'post_type' => 'product',
@@ -735,14 +717,15 @@
735 717 endwhile;
736 718 wp_reset_postdata();
737 719 $html .= '</ul>';
738 720 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>';
721 + $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 722 }
741 723 }
742 724 $html .= '</div>';
743 725 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
744 - wp_send_json($response);
726 + echo wp_send_json($response);
727 + wp_die();
745 728 }
746 729 //Product display controll
747 730 function wp_chatbot_product_controlling($product_id){
748 731 $display_product = true;
@@ -757,11 +740,11 @@
757 740 //Get Sale products
758 741 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
759 742 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
760 743 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');
744 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
745 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
746 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
764 747 //get sale products query.
765 748 $argu_params = array(
766 749 'post_type' => 'product',
767 750 'post_status' => 'publish',
@@ -833,25 +816,26 @@
833 816 endwhile;
834 817 wp_reset_postdata();
835 818 $html .= '</ul>';
836 819 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>';
820 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="sale" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
838 821 }
839 822 }
840 823 $html .= '</div>';
841 824 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
842 - wp_send_json($response);
825 + echo wp_send_json($response);
826 + wp_die();
843 827 }
844 828 //load more
845 829 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
846 830 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
847 831 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');
832 + $offset = stripslashes($_POST['offset']);
833 + $search_type = stripslashes($_POST['search_type']);
834 + $search_term = stripslashes($_POST['search_term']);
835 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
836 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
837 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
854 838 $next_offset = intval($product_per_page + $offset);
855 839 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
856 840 //if have multiple ids then explode else have single need to array push
857 841 if (strpos($search_term, ',') !== false) {
@@ -973,15 +957,16 @@
973 957 $html .= '';
974 958 }
975 959 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
976 960 }
977 - wp_send_json($response);
961 + echo wp_send_json($response);
962 + wp_die();
978 963 }
979 964 //product details
980 965 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
981 966 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
982 967 function qcld_wb_chatbot_product_details(){
983 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
968 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
984 969 //Tracking product view from chat board
985 970 wp_chatbot_view_track_product_by_id($product_id);
986 971 //wpcommerce product factory
987 972 $wc_pf = new WC_Product_Factory();
@@ -1009,9 +994,9 @@
1009 994 }
1010 995 }
1011 996 $product_image .= '</ul></div>';
1012 997 $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>';
998 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
1014 999 //if ( $product->is_in_stock() || $product->is_purchasable() )
1015 1000 //Handle variable product start
1016 1001 $variations = "";
1017 1002 $add_cart_button = "";
@@ -1052,13 +1037,12 @@
1052 1037 } else {
1053 1038 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1054 1039 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1055 1040 $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>';
1041 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1057 1042 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 ] ) );
1043 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1044 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1061 1045 } else {
1062 1046 $selected_value = '';
1063 1047 }
1064 1048 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1065,29 +1049,30 @@
1065 1049 }
1066 1050 $variations .= '</select></div>';
1067 1051 }
1068 1052 }
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="" />';
1053 + $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 1054 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1071 1055 } 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')))) . '" />';
1056 + $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 1057 }
1074 1058 //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>
1059 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1076 1060 <input type="number" id="vPQuantity" value="1" />';
1077 1061 }
1078 1062 //$response=$full_size_image;
1079 1063 $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);
1064 + echo wp_send_json($response);
1065 + wp_die();
1081 1066 }
1082 1067 //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();
1068 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1069 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1070 +function qcld_wb_chatbot_variable_add_to_cart(){
1071 + $product_id = stripslashes($_POST['p_id']);
1072 + $quantity = stripslashes($_POST['quantity']);
1073 + $variations_id = stripslashes($_POST['variations_id']);
1074 + $attrs = stripslashes($_POST['attributes']);
1090 1075 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1091 1076 $attributes = array();
1092 1077 foreach ($attrs as $attr) {
1093 1078 $single = explode("#", $attr);
@@ -1098,46 +1083,44 @@
1098 1083 }
1099 1084 global $wpcommerce;
1100 1085 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1101 1086 if ($result != false) {
1102 - wp_send_json('variable');
1087 + echo wp_send_json('variable');
1103 1088 } else {
1104 - wp_send_json('error');
1089 + echo wp_send_json('error');
1105 1090 }
1091 + wp_die();
1106 1092 }
1107 1093 //Add to cart for simple product.
1108 1094 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1109 1095 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1110 1096 function qcld_wb_chatbot_add_to_cart(){
1111 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1112 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1097 + $product_id = stripslashes($_POST['product_id']);
1098 + $product_quantity = stripslashes($_POST['quantity']);
1113 1099 global $wpcommerce;
1114 1100 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1115 1101 if ($result != false) {
1116 - wp_send_json('simple');
1102 + echo wp_send_json('simple');
1117 1103 } else {
1118 - wp_send_json('error');
1104 + echo wp_send_json('error');
1119 1105 }
1106 + wp_die();
1120 1107 }
1121 1108 //Support part
1122 1109 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1123 1110 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1124 1111 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');
1112 + $name = trim(sanitize_text_field($_POST['name']));
1113 + $email = sanitize_email($_POST['email']);
1114 + $message = sanitize_text_field($_POST['message']);
1115 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1133 1116 //Extract Domain
1134 1117 $url = get_site_url();
1135 - $url = wp_parse_url($url);
1118 + $url = parse_url($url);
1136 1119 $domain = $url['host'];
1137 1120 //$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);
1121 + $admin_email = get_option('admin_email');
1122 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1140 1123
1141 1124
1142 1125 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1143 1126 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
@@ -1143,23 +1126,24 @@
1143 1126 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1144 1127 }else{
1145 1128 $fromEmail = "wordpress@" . $domain;
1146 1129 }
1130 +
1147 1131 //Starting messaging and status.
1148 1132 $response['status'] = 'fail';
1149 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1150 1134 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'))));
1135 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1152 1136 $response['status'] = 'fail';
1153 1137 } else {
1154 1138 //build email body
1155 1139 $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>';
1140 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1141 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1142 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1143 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1144 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1145 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1162 1146 $to = $toEmail;
1163 1147 $body = $bodyContent;
1164 1148 $headers = array();
1165 1149 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1167,13 +1151,13 @@
1167 1151 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1168 1152 $result = wp_mail($to, $subject, $body, $headers);
1169 1153 if ($result) {
1170 1154 $response['status'] = 'success';
1171 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1155 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1172 1156 }
1173 1157
1174 1158 }
1175 - echo wp_json_encode($response);
1159 + echo json_encode($response);
1176 1160 die();
1177 1161 }
1178 1162 //Support Phone
1179 1163 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1178,37 +1162,36 @@
1178 1162 //Support Phone
1179 1163 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1180 1164 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1181 1165 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']));
1166 + $name = trim(sanitize_text_field($_POST['name']));
1167 + $phone =sanitize_text_field($_POST['phone']);
1185 1168 $subject = 'WPBot Support Mail Request for Call Back';
1186 1169 //Extract Domain
1187 1170 $url = get_site_url();
1188 - $url = wp_parse_url($url);
1171 + $url = parse_url($url);
1189 1172 $domain = $url['host'];
1190 1173 //$admin_email = "admin@" . $domain;
1191 1174 $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);
1175 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1193 1176
1194 1177
1195 1178 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'));
1179 + $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1197 1180 }else{
1198 1181 $fromEmail = "wordpress@" . $domain;
1199 1182 }
1200 1183 //Starting messaging and status.
1201 1184 $response['status'] = 'fail';
1202 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1185 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1203 1186 //build email body
1204 1187 $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>';
1188 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1189 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1190 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1191 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1192 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1193 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1211 1194 $to = $toEmail;
1212 1195 $body = $bodyContent;
1213 1196 $headers = array();
1214 1197 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1216,17 +1199,38 @@
1216 1199 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1217 1200 $result = wp_mail($to, $subject, $body, $headers);
1218 1201 if ($result) {
1219 1202 $response['status'] = 'success';
1220 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1203 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1221 1204 }
1222 - echo wp_json_encode($response);
1205 + echo json_encode($response);
1223 1206 die();
1224 1207 }
1225 -// Order Status part. removed
1226 -
1208 +// Order Status part.
1209 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1210 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1211 +function qcld_wb_chatbot_check_user(){
1212 + global $wpcommerce;
1213 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1214 + $response = array();
1215 + $response['message'] = "";
1216 + if (username_exists($user_name)) {
1217 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1218 + $response['status'] = "success";
1219 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1220 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1221 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1222 + $response = get_order_by_username($user_name);
1223 + }
1224 + } else {
1225 + $response['status'] = "fail";
1226 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1227 + }
1228 + echo wp_send_json($response);
1229 + die();
1230 +}
1227 1231 function wpb_randmom_message_handle($items){
1228 - return $items[wp_rand(0, count($items) - 1)];
1232 + return $items[rand(0, count($items) - 1)];
1229 1233 }
1230 1234 function qcld_wb_chatbot_func_str_replace($messages = array()){
1231 1235 $refined_mesgses = array();
1232 1236 foreach ($messages as $message) {
@@ -1241,21 +1245,22 @@
1241 1245 // First check the nonce, if it fails the function will break
1242 1246 check_ajax_referer('wpwbot-order-nonce', 'security');
1243 1247 // Nonce is checked, get the POST data and sign user on
1244 1248 $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'])));
1249 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1250 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1247 1251 $info['remember'] = true;
1248 1252 $user_signon = wp_signon($info, false);
1249 1253 $response = array();
1250 1254 if (is_wp_error($user_signon)) {
1251 1255 $response['status'] = "fail";
1252 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1256 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1253 1257 } else {
1254 1258 $response = get_order_by_username($info['user_login']);
1255 1259 $response['status'] = "success";
1256 1260 }
1257 - wp_send_json($response);
1261 + echo wp_send_json($response);
1262 + die();
1258 1263 }
1259 1264 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1260 1265 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1261 1266 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1261,9 +1266,10 @@
1261 1266 function qcld_wb_chatbot_loged_in_user_orders(){
1262 1267 $current_user = wp_get_current_user();
1263 1268 $user_name = $current_user->user_login;
1264 1269 $response = get_order_by_username($user_name);
1265 - wp_send_json($response);
1270 + echo wp_send_json($response);
1271 + die();
1266 1272 }
1267 1273 function get_order_by_username($user_name){
1268 1274 global $post;
1269 1275 $response = array();
@@ -1281,28 +1287,28 @@
1281 1287 ));
1282 1288 $response['order_num'] = count($customer_orders);
1283 1289 $order_html = '';
1284 1290 if ($response['order_num'] > 0) {
1285 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1291 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1286 1292 $order_html .= '<div class="wp-chatbot-orders-container">
1287 1293 <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>
1294 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1295 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1296 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1297 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1292 1298 </div>';
1293 1299 foreach ($customer_orders as $order) {
1294 1300 //Formatting order summery
1295 1301 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1296 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1302 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1297 1303 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1298 1304 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1299 1305 } 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>';
1306 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1301 1307 }
1302 1308 $order_html .= '<div class="wp-chatbot-orders-single">
1303 1309 <div class="order-id"> ' . $order_url . '</div>
1304 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1310 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1305 1311 <div class="order-items">';
1306 1312 $singleOrder = new WC_Order($order->ID);
1307 1313 $items = $singleOrder->get_items();
1308 1314 foreach ($items as $item) {
@@ -1315,9 +1321,9 @@
1315 1321 }
1316 1322 $order_html .= '</div>';
1317 1323 } else {
1318 1324 $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>';
1325 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1320 1326 }
1321 1327 $response['html'] = $order_html;
1322 1328 return $response;
1323 1329 }
@@ -1353,10 +1359,10 @@
1353 1359 function qcld_wb_chatbot_recently_viewed_products(){
1354 1360 // Get wpCommerce Global
1355 1361 $_pf = new WC_Product_Factory();
1356 1362 //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'))));
1363 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1364 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1359 1365 // Get recently viewed product cookies data
1360 1366 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1361 1367 $viewed_products = array_filter(array_map('absint', $viewed_products));
1362 1368 //get featured products if has.
@@ -1362,9 +1368,9 @@
1362 1368 //get featured products if has.
1363 1369 $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 1370 //Getting recently vieew products.
1365 1371 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'))));
1372 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1367 1373 $product_query = new WP_Query(array(
1368 1374 'posts_per_page' => $product_per_page,
1369 1375 'no_found_rows' => 1,
1370 1376 'post_status' => 'publish',
@@ -1372,15 +1378,16 @@
1372 1378 'post__in' => $viewed_products,
1373 1379 ));
1374 1380 //Getting featured products
1375 1381 } 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'))));
1382 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1377 1383 $product_query = $featured_products;
1378 1384 } else {
1379 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1385 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1380 1386 //Getting recent products
1381 1387 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1382 1388 }
1389 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1383 1390 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1384 1391 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1385 1392 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1386 1393 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1387,10 +1394,10 @@
1387 1394 } else {
1388 1395 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1389 1396 }
1390 1397 $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>
1398 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1399 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1393 1400 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1394 1401 </div>';
1395 1402 if ($product_query->post_count > 0) {
1396 1403 $html .= '<div class="wp-chatbot-products-area">';
@@ -1402,9 +1409,9 @@
1402 1409 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1403 1410 <div class="wp-chatbot-product-summary">
1404 1411 <div class="wp-chatbot-product-table">
1405 1412 <div class="wp-chatbot-product-table-cell">
1406 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1413 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1407 1414 <div class="price">' . $product->get_price_html() . '</div>';
1408 1415 $html .= ' </div>
1409 1416 </div>
1410 1417 </div></a>
@@ -1417,9 +1424,10 @@
1417 1424 $html .= '<div class="wp-chatbot-products-area">';
1418 1425 $html .= '<p style="text-align: center">You have no products !';
1419 1426 $html .= '</div>';
1420 1427 }
1421 - wp_send_json($html);
1428 + echo wp_send_json($html);
1429 + die();
1422 1430 }
1423 1431 //Recently viewed product shortcode
1424 1432 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1433 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1424,10 +1432,10 @@
1424 1432 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1433 function qcld_wb_chatbot_recently_viewed_shortcode(){
1426 1434 // Get wpCommerce Global
1427 1435 $_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'))));
1436 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1437 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1430 1438 // Get recently viewed product cookies data
1431 1439 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1432 1440 $viewed_products = array_filter(array_map('absint', $viewed_products));
1433 1441 //get featured products if has.
@@ -1433,9 +1441,9 @@
1433 1441 //get featured products if has.
1434 1442 $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 1443 //Getting recently vieew products.
1436 1444 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'))));
1445 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1438 1446 $product_query = new WP_Query(array(
1439 1447 'posts_per_page' => $product_per_page,
1440 1448 'no_found_rows' => 1,
1441 1449 'post_status' => 'publish',
@@ -1443,15 +1451,16 @@
1443 1451 'post__in' => $viewed_products,
1444 1452 ));
1445 1453 //implementing featured products
1446 1454 } 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'))));
1455 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1448 1456 $product_query = $featured_products;
1449 1457 } else {
1450 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1458 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1451 1459 //Getting recent products
1452 1460 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1453 1461 }
1462 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1454 1463 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1455 1464 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1456 1465 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1457 1466 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1458,11 +1467,11 @@
1458 1467 } else {
1459 1468 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1460 1469 }
1461 1470 $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>
1471 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1472 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1473 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1465 1474 </div>';
1466 1475 if ($product_query->post_count > 0) {
1467 1476 $html .= '<div class="wp-chatbot-products-area">';
1468 1477 $html .= '<ul class="wp-chatbot-products">';
@@ -1473,9 +1482,9 @@
1473 1482 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1474 1483 <div class="wp-chatbot-product-summary">
1475 1484 <div class="wp-chatbot-product-table">
1476 1485 <div class="wp-chatbot-product-table-cell">
1477 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1486 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1478 1487 <div class="price">' . $product->get_price_html() . '</div>';
1479 1488 $html .= ' </div>
1480 1489 </div>
1481 1490 </div></a>
@@ -1485,9 +1494,9 @@
1485 1494 wp_reset_postdata();
1486 1495 $html .= '</ul></div>';
1487 1496 } else {
1488 1497 $html .= '<div class="wp-chatbot-products-area">';
1489 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1498 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1490 1499 $html .= '</div>';
1491 1500 }
1492 1501 return $html;
1493 1502 }
@@ -1501,10 +1510,11 @@
1501 1510 $checkout_url = wc_get_checkout_url();
1502 1511 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1503 1512 $items = $wpcommerce->cart->get_cart();
1504 1513 $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'))));
1514 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1515 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1516 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1507 1517 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1508 1518 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1509 1519 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1510 1520 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1511,15 +1521,15 @@
1511 1521 } else {
1512 1522 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1513 1523 }
1514 1524 $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>
1525 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1526 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1527 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1518 1528 </div>';
1519 1529 if ($itemCount >= 1) {
1520 1530 $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>';
1531 + $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 1532 $html .= '<div class ="wp-chatbot-cart-body">';
1523 1533 foreach ($items as $item => $values) {
1524 1534 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1525 1535 //product image
@@ -1537,9 +1547,9 @@
1537 1547 <div class="qcld-wp-chatbot-cell"></div>
1538 1548 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1539 1549 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1540 1550 </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>';
1551 + $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 1552 $html .= ' </div>';
1543 1553 } else {
1544 1554 $html .= '<div class="wp-chatbot-cart-container">';
1545 1555 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1545,9 +1555,10 @@
1545 1555 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1546 1556 $html .= '</div>';
1547 1557 }
1548 1558 $response = array('html' => $html, 'items' => $itemCount);
1549 - wp_send_json($response);
1559 + echo wp_send_json($response);
1560 + wp_die();
1550 1561 }
1551 1562 //cart onley for wp chatbot
1552 1563 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1553 1564 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1558,14 +1569,14 @@
1558 1569 $checkout_url = wc_get_checkout_url();
1559 1570 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1560 1571 $items = $wpcommerce->cart->get_cart();
1561 1572 $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'))));
1573 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1563 1574
1564 1575 $html = '';
1565 1576 if ($itemCount >= 1) {
1566 1577 $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>';
1578 + $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 1579 $html .= '<div class ="wp-chatbot-cart-body">';
1569 1580 foreach ($items as $item => $values) {
1570 1581 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1571 1582 //product image
@@ -1583,17 +1594,18 @@
1583 1594 <div class="qcld-wp-chatbot-cell"></div>
1584 1595 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1585 1596 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1586 1597 </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>';
1598 + $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 1599 $html .= ' </div>';
1589 1600 } else {
1590 1601 $html .= '<div class="wp-chatbot-cart-container">';
1591 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1602 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1592 1603 $html .= '</div>';
1593 1604 }
1594 1605 $response = array('html' => $html, 'items' => $itemCount);
1595 - wp_send_json($response);
1606 + echo wp_send_json($response);
1607 + wp_die();
1596 1608 }
1597 1609 //Cart show Shortcode
1598 1610 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1599 1611 function qcld_wb_chatbot_cart_shortcode(){
@@ -1599,10 +1611,11 @@
1599 1611 function qcld_wb_chatbot_cart_shortcode(){
1600 1612 global $wpcommerce;
1601 1613 $items = $wpcommerce->cart->get_cart();
1602 1614 $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'))));
1615 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1616 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1617 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1605 1618 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1606 1619 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1607 1620 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1608 1621 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1609,15 +1622,15 @@
1609 1622 } else {
1610 1623 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1611 1624 }
1612 1625 $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>
1626 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1627 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1628 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1616 1629 </div>';
1617 1630 if ($itemCount >= 1) {
1618 1631 $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>';
1632 + $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 1633 $html .= '<div class ="wp-chatbot-cart-body">';
1621 1634 foreach ($items as $item => $values) {
1622 1635 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1623 1636 //product image
@@ -1635,9 +1648,9 @@
1635 1648 <div class="qcld-wp-chatbot-cell"></div>
1636 1649 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1637 1650 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1638 1651 </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>';
1652 + $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 1653 $html .= ' </div>';
1641 1654 } else {
1642 1655 $html .= '<div class="wp-chatbot-cart-container">';
1643 1656 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1649,26 +1662,26 @@
1649 1662 //Updating the cart items.
1650 1663 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1651 1664 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1652 1665 function qcld_wb_chatbot_update_cart_item_number(){
1653 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1654 1666 //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']));
1667 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1668 + $qnty = sanitize_text_field($_POST['qnty']);
1657 1669 global $wpcommerce;
1658 1670 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1659 - wp_send_json($result);
1671 + echo wp_send_json($result);
1672 + wp_die();
1660 1673 }
1661 1674 //Show item after removing from cart page.
1662 1675 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1663 1676 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1664 1677 function qcld_wb_chatbot_cart_item_remove(){
1665 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1666 1678 //getting cart items n
1667 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1679 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1668 1680 global $wpcommerce;
1669 1681 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1670 - wp_send_json($result);
1682 + echo wp_send_json($result);
1683 + wp_die();
1671 1684 }
1672 1685 //Show cart page by shortcode.
1673 1686 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1674 1687 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1676,13 +1689,14 @@
1676 1689 global $wpcommerce;
1677 1690 $itemCount = $wpcommerce->cart->cart_contents_count;
1678 1691 $html = "";
1679 1692 if ($itemCount < 0) {
1680 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1693 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1681 1694 } else {
1682 1695 $html .= do_shortcode("[wpcommerce_cart]");
1683 1696 }
1684 - wp_send_json($html);
1697 + echo wp_send_json($html);
1698 + wp_die();
1685 1699 }
1686 1700 //Show checkout page by shortcode.
1687 1701 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1688 1702 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1691,9 +1705,9 @@
1691 1705 $itemCount = $wpcommerce->cart->cart_contents_count;
1692 1706 $html = "";
1693 1707 if ($itemCount < 0) {
1694 1708 $status = 'no';
1695 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1709 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1696 1710 } else {
1697 1711 $status = 'yes';
1698 1712 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1699 1713 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1699,12 +1713,13 @@
1699 1713 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1700 1714 $html .= $checkout_parmanlink;
1701 1715 }
1702 1716 $response = array('status' => $status, 'html' => $html);
1703 - wp_send_json($response);
1717 + echo wp_send_json($response);
1718 + wp_die();
1704 1719 }
1705 1720 //_dynamic_intent
1706 -function qcld_dynamic_intent(){
1721 +function qc_dynamic_intent(){
1707 1722 global $wpdb;
1708 1723 $intents = array();
1709 1724
1710 1725 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1721,10 +1736,9 @@
1721 1736
1722 1737 if(class_exists('Qcformbuilder_Forms_Admin')){
1723 1738
1724 1739
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 -
1740 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1727 1741 if(!empty($results)){
1728 1742
1729 1743 foreach($results as $result){
1730 1744 $form = maybe_unserialize($result->config);
@@ -1742,28 +1756,30 @@
1742 1756
1743 1757 }
1744 1758
1745 1759 //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 -// }
1760 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1761 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1762 +function qcld_wb_chatbot_checkout_user_login(){
1763 + // Nonce is checked, get the POST data and sign user on
1764 + $info = array();
1765 + //$info['nonce'] = $_POST['nonce_val'];
1766 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1767 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1768 + $info['remember'] = true;
1769 + $user_signon = wp_signon($info, false);
1770 + // $response=$info;
1771 + $response = array();
1772 + if (is_wp_error($user_signon)) {
1773 + // $response['status'] = "fail";
1774 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1775 + $response = "no";
1776 + } else {
1777 + $response = "yes";
1778 + }
1779 + echo wp_send_json($response);
1780 + die();
1781 +}
1766 1782 // Load template for App Order Thank You page url
1767 1783 function wp_chatbot_load_app_template($template){
1768 1784 if (is_page('wpwbot-mobile-app')) {
1769 1785 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1792,16 +1808,15 @@
1792 1808 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1793 1809 function wp_chatbot_create_app_checkout_thankyou_page(){
1794 1810 if (get_option('wp_chatbot_app_pages') == 1) {
1795 1811 //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() ) {
1812 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1798 1813 //post status and options
1799 1814 $app_page = array(
1800 1815 'comment_status' => 'closed',
1801 1816 'ping_status' => 'closed',
1802 1817 'post_author' => get_current_user_id(),
1803 - 'post_date' => gmdate('Y-m-d H:i:s'),
1818 + 'post_date' => date('Y-m-d H:i:s'),
1804 1819 'post_status' => 'publish',
1805 1820 'post_title' => 'wpwBot Mobile App',
1806 1821 'post_name' => 'wpwbot-mobile-app',
1807 1822 'post_type' => 'page',
@@ -1811,16 +1826,15 @@
1811 1826 //save the id in the database
1812 1827 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1813 1828 }
1814 1829 //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() ) {
1830 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1817 1831 //post status and options
1818 1832 $checkout_page = array(
1819 1833 'comment_status' => 'closed',
1820 1834 'ping_status' => 'closed',
1821 1835 'post_author' => get_current_user_id(),
1822 - 'post_date' => gmdate('Y-m-d H:i:s'),
1836 + 'post_date' => date('Y-m-d H:i:s'),
1823 1837 'post_status' => 'publish',
1824 1838 'post_title' => 'wpwBot App Checkout',
1825 1839 'post_name' => 'wpwbot-app-checkout',
1826 1840 'post_type' => 'page',
@@ -1830,16 +1844,15 @@
1830 1844 //save the id in the database
1831 1845 update_option('wp_chatbot_app_checkout', $app_checkout);
1832 1846 }
1833 1847 //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() ) {
1848 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1836 1849 //post status and options
1837 1850 $thankyou_page = array(
1838 1851 'comment_status' => 'closed',
1839 1852 'ping_status' => 'closed',
1840 1853 'post_author' => get_current_user_id(),
1841 - 'post_date' => gmdate('Y-m-d H:i:s'),
1854 + 'post_date' => date('Y-m-d H:i:s'),
1842 1855 'post_status' => 'publish',
1843 1856 'post_title' => 'wpwBot App Order Thank You',
1844 1857 'post_name' => 'wpwbot-app-order-thankyou',
1845 1858 'post_type' => 'page',
@@ -1850,9 +1863,9 @@
1850 1863 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1851 1864 }
1852 1865 }
1853 1866 //Keep tracking from App by cookies
1854 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1867 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1855 1868 if (!isset($_COOKIE['from_app'])) {
1856 1869 setcookie('from_app', 'yes', (time() + 3600), '/');
1857 1870 }
1858 1871 }
@@ -1866,9 +1879,9 @@
1866 1879 global $wp;
1867 1880 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1868 1881 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1869 1882 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1870 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1883 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1871 1884 exit;
1872 1885 }
1873 1886 } else {
1874 1887 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1876,12 +1889,9 @@
1876 1889 }
1877 1890 }
1878 1891
1879 1892 function qcld_choose_random($array){
1880 - if (is_array($array) && !empty($array)) {
1881 - return $array[array_rand($array)];
1882 - }
1883 - return $array;
1893 + return $array[array_rand($array)];
1884 1894 }
1885 1895
1886 1896 //User session count
1887 1897 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1887,9 +1897,8 @@
1887 1897 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1888 1898 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1889 1899 function qcld_wb_chatbot_session_count(){
1890 1900 // Nonce is checked, get the POST data and sign user on
1891 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1892 1901 global $wpdb;
1893 1902 $wpdb->show_errors = true;
1894 1903 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1904 $response = array();
@@ -1894,12 +1903,11 @@
1894 1903 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1904 $response = array();
1896 1905
1897 1906
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 -
1907 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1900 1908 if(empty($session_exists)){
1901 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1909 + $wpdb->insert(
1902 1910 $tableuser,
1903 1911 array(
1904 1912 'session' => 1,
1905 1913 )
@@ -1906,10 +1914,9 @@
1906 1914 );
1907 1915 }else{
1908 1916
1909 1917 $session_id = $session_exists->id;
1910 -
1911 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1918 + $wpdb->update(
1912 1919 $tableuser,
1913 1920 array(
1914 1921 'session'=>($session_exists->session+1),
1915 1922 ),
@@ -1918,18 +1925,18 @@
1918 1925 '%d',
1919 1926 ),
1920 1927 array('%d')
1921 1928 );
1922 -
1923 1929 }
1924 1930
1925 - wp_send_json($response);
1931 + echo wp_send_json($response);
1932 + die();
1926 1933 }
1927 1934
1928 1935 /* WPBot Chat History Addon check */
1929 1936 function qcld_wpbot_is_active_chat_history(){
1930 1937
1931 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1938 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1932 1939 return 1;
1933 1940 }else{
1934 1941 return 0;
1935 1942 }
@@ -1935,9 +1942,9 @@
1935 1942 }
1936 1943
1937 1944 }
1938 1945
1939 -function qcld_wpbot_input_validation( $data ) {
1946 +function qc_wpbot_input_validation( $data ) {
1940 1947 $data = html_entity_decode($data);
1941 1948 $data = trim($data);
1942 1949 $data = stripslashes($data);
1943 1950 $data = htmlspecialchars($data);
@@ -1942,23 +1949,16 @@
1942 1949 $data = stripslashes($data);
1943 1950 $data = htmlspecialchars($data);
1944 1951 return $data;
1945 1952 }
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 - }
1953 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1954 +function small_talk_import(){
1951 1955 global $wpdb;
1952 -
1953 1956 $table = $wpdb->prefix.'wpbot_response';
1954 -
1955 1957 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1956 -
1957 1958 foreach ($csvFile as $line) {
1958 1959 $line = str_getcsv($line, ',', '"');
1959 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1960 - $table, array(
1960 + $wpdb->insert($table, array(
1961 1961 'query' => $line[0],
1962 1962 'keyword' => $line[1],
1963 1963 'response' => $line[2],
1964 1964 'category'=> $line[3],
@@ -1965,63 +1965,11 @@
1965 1965 'intent'=> '',
1966 1966 //'lang'=> 'en_US',
1967 1967 ));
1968 1968 }
1969 -
1970 1969 $table2 = $wpdb->prefix.'wpbot_response_category';
1971 -
1972 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1973 - $table2, array(
1970 + $wpdb->insert($table2, array(
1974 1971 'name' => 'smalltalk',
1975 1972 ));
1976 -
1977 1973 update_option( 'qcld_small_talk_imported', 'yes' );
1978 1974
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 -
1975 +}