PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.8.4
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.8.4
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 +324 -366 8.7.34.8.4 View file →
@@ -3,48 +3,11 @@
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(){
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
8 +add_action( 'admin_footer', 'qc_style_for_hide_iframe');
9 +function qc_style_for_hide_iframe(){
47 10 ?>
48 11 <script>
49 12 jQuery( document ).ready(function() {
50 13 setInterval(function(){
@@ -58,62 +21,8 @@
58 21 });
59 22 </script>
60 23 <?php
61 24 }
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 -}
116 25 function wp_chatbot_load_footer_html(){
117 26 if ( get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 27
119 28 ?>
@@ -118,10 +27,9 @@
118 27
119 28 ?>
120 29 <style>
121 30 <?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
31 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
124 32 }
125 33 ?>
126 34 </style>
127 35
@@ -133,27 +41,10 @@
133 41 }
134 42 ?>
135 43 <style>
136 44 .wp-chatbot-container {
137 - background-color: #eceef3 !important;
138 45 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;
142 46 }
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 47 </style>
157 48 <?php }
158 49 $wp_chatbot_enable_rtl = "";
159 50 if (get_option('enable_wp_chatbot_rtl') == '1') {
@@ -163,33 +54,33 @@
163 54 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
164 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
165 56 // }
166 57 ?>
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';} ?>">
58 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
168 59 <div id="wp-chatbot-integration-container">
169 60 <div class="wp-chatbot-integration-button-container">
170 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
171 62 <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>
63 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
173 64 <?php } ?>
174 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
175 66 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
176 67 target="_blank"><span class="intergration-whats"
177 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
178 69 <?php } ?>
179 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
180 71 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
181 72 target="_blank"><span class="intergration-viber"
182 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
183 74 <?php } ?>
184 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
185 76 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
186 77 class="intergration-phone"
187 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
188 79 <?php } ?>
189 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
190 81 <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>
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
192 83 <?php } ?>
193 84 </div>
194 85 </div>
195 86 <?php
@@ -202,9 +93,9 @@
202 93 }
203 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
204 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
205 96 } else {
206 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
207 98 }
208 99 ?>
209 100 <?php
210 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -211,9 +102,9 @@
211 102 ?>
212 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
213 104 <div class="wp-chatbot-notification-controller">
214 105 <span class="wp-chatbot-notification-close">
215 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
216 107 </span>
217 108 </div>
218 109 <?php
219 110 $testingTip="";
@@ -226,9 +117,9 @@
226 117 }
227 118 ?>
228 119 <div class="wp-chatbot-notification-agent-profile">
229 120 <div class="wp-chatbot-notification-widget-avatar" ><img
230 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
121 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
231 122 <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>
232 123 </div>
233 124 <?php
234 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -244,79 +135,20 @@
244 135 <div class="wp-chatbot-ball">
245 136 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
246 137 <?php
247 138 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 -
139 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
250 140 } else if (get_option('wp_chatbot_icon') != "custom.png") {
251 141 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
252 142 } else {
253 143 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
254 144 }
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 145 ?>
264 146 <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; ?>
147 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
148 +
275 149 </div>
276 -
277 150 </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 151 <?php
320 152 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
321 153 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
322 154 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -359,11 +191,11 @@
359 191 </div>
360 192
361 193 <?php
362 194
363 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
195 + if ( get_transient( 'bot_clear_cache' ) ) {
364 196 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
365 - delete_transient( 'qcld_bot_clear_cache' );
197 + delete_transient( 'bot_clear_cache' );
366 198 }
367 199
368 200 }else{
369 201 ?>
@@ -433,9 +265,9 @@
433 265 return $wp_chatbot_load;
434 266 }
435 267 //checking Devices
436 268 function wp_chatbot_is_mobile(){
437 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
269 + $useragent = $_SERVER['HTTP_USER_AGENT'];
438 270 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 271 return true;
440 272 } else {
441 273 return false;
@@ -442,10 +274,10 @@
442 274 }
443 275 }
444 276 //Checking wpwbot opening hour
445 277 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')));
278 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
279 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
448 280 $is_wpwbot_open =false;
449 281 if(get_option('wpwbot_hours')) {
450 282 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
451 283 if (isset($wpwbot_times[$curent_day])) {
@@ -460,8 +292,183 @@
460 292 }
461 293 }
462 294 return $is_wpwbot_open;
463 295 }
296 +//wpwBot shortcode.
297 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
298 +function wp_chatbot_short_code($atts = []){
299 + ob_start();
300 + wp_chatbot_shortcode_dom($atts);
301 + $content = ob_get_clean();
302 + return $content;
303 +}
304 +function wp_chatbot_shortcode_dom($atts){
305 + //Defaults & Set Parameters for shortcode
306 + extract(shortcode_atts(
307 + array(
308 + 'template' => '01',
309 + ), $atts
310 + ));
311 + ?>
312 + <style>
313 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
314 + </style>
315 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
316 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
317 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
318 + } else {
319 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
320 + }
321 + ?>
322 + <style>
323 + .wp-chatbot-container {
324 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
325 + }
326 + </style>
327 +<?php }
328 + $wp_chatbot_enable_rtl = "";
329 + if (get_option('enable_wp_chatbot_rtl')) {
330 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
331 + }
332 + ?>
333 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
334 + <?php
335 + //Get wpcommerce cart
336 +
337 + $qcld_wb_chatbot_theme = 'template-' . $template;
338 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
339 + 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');
340 + wp_enqueue_style('qcld-wp-chatbot-style');
341 + }
342 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
343 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
344 + } else {
345 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
346 + }
347 + ?>
348 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
349 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
350 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
351 + <?php
352 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
353 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
354 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
355 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
356 + } else {
357 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
358 + }
359 + ?>
360 + <div class="wp-chatbot-notification-agent-profile">
361 + <div class="wp-chatbot-notification-widget-avatar"><img
362 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
363 + <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>
364 + </div>
365 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
366 + </div>
367 + <!--wp-chatbot-board-container-->
368 + <div id="wp-chatbot-ball" class="">
369 + <div class="wp-chatbot-ball">
370 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
371 + <?php
372 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
373 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
374 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
375 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
376 + } else {
377 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
378 + }
379 + ?>
380 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
381 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
382 + </div>
383 + <!-- wp-chatbot-board-container-->
384 + <?php endif; ?>
385 + <!--container-->
386 + <!--wp-chatbot-ball-wrapper-->
387 + </div>
388 +<?php } ?>
389 +<?php
390 +//Create shortcode for wpwBot for pages.
391 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
392 +function wp_chatbot_page_short_code(){
393 + ob_start();
394 + wp_chatbot_page_dom();
395 + $content = ob_get_clean();
396 + return $content;
397 +}
398 +function wp_chatbot_page_dom(){ ?>
399 + <style>
400 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
401 + </style>
402 + <?php
403 + //Get wpcommerce cart
404 +
405 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
406 + $wp_chatbot_enable_rtl = "";
407 + if (get_option('enable_wp_chatbot_rtl') == 1) {
408 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
409 + }
410 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
411 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
412 + } else {
413 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
414 + }
415 +}
416 +//shortcode for wpWBot mobile app
417 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
418 +function wp_chatbot_mobile_app_short_code(){ ?>
419 + <style>
420 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
421 + </style>
422 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
423 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
424 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
425 + } else {
426 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
427 + }
428 + ?>
429 + <style>
430 + .wp-chatbot-container {
431 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
432 + }
433 + </style>
434 +<?php }
435 + $wp_chatbot_enable_rtl = "";
436 + if (get_option('enable_wp_chatbot_rtl') == '1') {
437 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
438 + }
439 + ?>
440 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
441 + <?php
442 + // keep traking app template.
443 + $template_app = 'yes';
444 + //Get wpcommerce cart
445 +
446 + //Handling shortcode enqeue and remove features part.
447 + define('wpCOMMERCE', true);
448 + wp_enqueue_script('jquery');
449 +
450 +
451 + wp_enqueue_script('wc-address-i18n');
452 + wp_enqueue_script('wc-country-select');
453 +
454 +
455 + // add the action
456 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
457 + if (!isset($_COOKIE['from_app'])) {
458 + setcookie('from_app', 'yes', time() + 3600);
459 + }
460 + }
461 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
462 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
463 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
464 + } else {
465 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
466 + }
467 + ?>
468 + </div>
469 + <?php
470 +}
464 471
465 472 /**
466 473 * wpwBot Search keyword product
467 474 */
@@ -467,16 +474,9 @@
467 474 */
468 475 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
469 476 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
470 477 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']));
478 + $keyword = sanitize_text_field($_POST['keyword']);
479 479 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
480 480 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
481 481 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
482 482 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -522,9 +522,9 @@
522 522 endwhile;
523 523 wp_reset_postdata();
524 524 $html .= '</ul>';
525 525 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>';
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="' . $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>';
527 527 }
528 528 }
529 529 $html .= '</div>';
530 530 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -552,9 +552,9 @@
552 552 }
553 553 }
554 554 $html .= '</ul>';
555 555 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>';
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="' . $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>';
557 557 }
558 558 }
559 559 $html .= '</div>';
560 560 }
@@ -569,15 +569,16 @@
569 569 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
570 570 function qcld_wb_chatbot_category(){
571 571 $category_type="common";
572 572 if (get_option('wp_chatbot_show_parent_category') != "") {
573 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
573 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
574 +
574 575 } else {
575 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
576 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
576 577 }
577 578 $html = "";
578 579 foreach ($terms as $term) {
579 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
580 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
580 581 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
581 582 $category_type="hasChilds";
582 583 }
583 584 $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>';
@@ -590,10 +591,10 @@
590 591 */
591 592 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
592 593 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
593 594 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' ) );
595 + $parent_id = stripslashes($_POST['parent_id']);
596 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
596 597 $html = "";
597 598 foreach ($terms as $term) {
598 599 $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 600 }
@@ -605,9 +606,9 @@
605 606 */
606 607 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
607 608 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
608 609 function qcld_wb_chatbot_category_products(){
609 - $category_id = intval( wp_unslash( $_POST['category'] ) );
610 + $category_id = stripslashes($_POST['category']);
610 611 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
611 612 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
612 613 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
613 614 //Merging all query together.
@@ -844,11 +845,11 @@
844 845 //load more
845 846 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
846 847 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
847 848 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'] ) );
849 + $offset = stripslashes($_POST['offset']);
850 + $search_type = stripslashes($_POST['search_type']);
851 + $search_term = stripslashes($_POST['search_term']);
851 852 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
852 853 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
853 854 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
854 855 $next_offset = intval($product_per_page + $offset);
@@ -979,9 +980,9 @@
979 980 //product details
980 981 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
981 982 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
982 983 function qcld_wb_chatbot_product_details(){
983 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
984 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
984 985 //Tracking product view from chat board
985 986 wp_chatbot_view_track_product_by_id($product_id);
986 987 //wpcommerce product factory
987 988 $wc_pf = new WC_Product_Factory();
@@ -1009,9 +1010,9 @@
1009 1010 }
1010 1011 }
1011 1012 $product_image .= '</ul></div>';
1012 1013 $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>';
1014 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
1014 1015 //if ( $product->is_in_stock() || $product->is_purchasable() )
1015 1016 //Handle variable product start
1016 1017 $variations = "";
1017 1018 $add_cart_button = "";
@@ -1054,11 +1055,10 @@
1054 1055 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1055 1056 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1056 1057 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1057 1058 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 ] ) );
1059 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1060 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1061 1061 } else {
1062 1062 $selected_value = '';
1063 1063 }
1064 1064 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1079,15 +1079,15 @@
1079 1079 $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 1080 wp_send_json($response);
1081 1081 }
1082 1082 //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();
1083 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1084 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1085 +function qcld_wb_chatbot_variable_add_to_cart(){
1086 + $product_id = stripslashes($_POST['p_id']);
1087 + $quantity = stripslashes($_POST['quantity']);
1088 + $variations_id = stripslashes($_POST['variations_id']);
1089 + $attrs = stripslashes($_POST['attributes']);
1090 1090 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1091 1091 $attributes = array();
1092 1092 foreach ($attrs as $attr) {
1093 1093 $single = explode("#", $attr);
@@ -1107,10 +1107,10 @@
1107 1107 //Add to cart for simple product.
1108 1108 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1109 1109 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1110 1110 function qcld_wb_chatbot_add_to_cart(){
1111 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1112 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1111 + $product_id = stripslashes($_POST['product_id']);
1112 + $product_quantity = stripslashes($_POST['quantity']);
1113 1113 global $wpcommerce;
1114 1114 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1115 1115 if ($result != false) {
1116 1116 wp_send_json('simple');
@@ -1121,19 +1121,15 @@
1121 1121 //Support part
1122 1122 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1123 1123 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1124 1124 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']));
1125 + $name = trim(sanitize_text_field($_POST['name']));
1126 + $email = sanitize_email($_POST['email']);
1127 + $message = sanitize_text_field($_POST['message']);
1132 1128 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1133 1129 //Extract Domain
1134 1130 $url = get_site_url();
1135 - $url = wp_parse_url($url);
1131 + $url = parse_url($url);
1136 1132 $domain = $url['host'];
1137 1133 //$admin_email = "admin@" . $domain;
1138 1134 $admin_email = sanitize_email(get_option('admin_email'));
1139 1135 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1143,8 +1139,9 @@
1143 1139 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1144 1140 }else{
1145 1141 $fromEmail = "wordpress@" . $domain;
1146 1142 }
1143 +
1147 1144 //Starting messaging and status.
1148 1145 $response['status'] = 'fail';
1149 1146 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1150 1147 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1152,14 +1149,14 @@
1152 1149 $response['status'] = 'fail';
1153 1150 } else {
1154 1151 //build email body
1155 1152 $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>';
1153 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1154 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1155 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1156 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1157 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1158 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1162 1159 $to = $toEmail;
1163 1160 $body = $bodyContent;
1164 1161 $headers = array();
1165 1162 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1171,9 +1168,9 @@
1171 1168 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1172 1169 }
1173 1170
1174 1171 }
1175 - echo wp_json_encode($response);
1172 + echo json_encode($response);
1176 1173 die();
1177 1174 }
1178 1175 //Support Phone
1179 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1178,15 +1175,14 @@
1178 1175 //Support Phone
1179 1176 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1180 1177 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1181 1178 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']));
1179 + $name = trim(sanitize_text_field($_POST['name']));
1180 + $phone =sanitize_text_field($_POST['phone']);
1185 1181 $subject = 'WPBot Support Mail Request for Call Back';
1186 1182 //Extract Domain
1187 1183 $url = get_site_url();
1188 - $url = wp_parse_url($url);
1184 + $url = parse_url($url);
1189 1185 $domain = $url['host'];
1190 1186 //$admin_email = "admin@" . $domain;
1191 1187 $admin_email = get_option('admin_email');
1192 1188 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1201,14 +1197,14 @@
1201 1197 $response['status'] = 'fail';
1202 1198 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1203 1199 //build email body
1204 1200 $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>';
1201 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1202 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1203 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1204 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1205 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1206 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1211 1207 $to = $toEmail;
1212 1208 $body = $bodyContent;
1213 1209 $headers = array();
1214 1210 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1218,15 +1214,36 @@
1218 1214 if ($result) {
1219 1215 $response['status'] = 'success';
1220 1216 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1221 1217 }
1222 - echo wp_json_encode($response);
1218 + echo json_encode($response);
1223 1219 die();
1224 1220 }
1225 -// Order Status part. removed
1226 -
1221 +// Order Status part.
1222 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1223 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1224 +function qcld_wb_chatbot_check_user(){
1225 + global $wpcommerce;
1226 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1227 + $response = array();
1228 + $response['message'] = "";
1229 + if (username_exists($user_name)) {
1230 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1231 + $response['status'] = "success";
1232 + $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks'))));
1233 + $response['html'] .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password')))) . '</p>';
1234 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1235 + $response = get_order_by_username($user_name);
1236 + }
1237 + } else {
1238 + $response['status'] = "fail";
1239 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist'))));
1240 + }
1241 + wp_send_json($response);
1242 + die();
1243 +}
1227 1244 function wpb_randmom_message_handle($items){
1228 - return $items[wp_rand(0, count($items) - 1)];
1245 + return $items[rand(0, count($items) - 1)];
1229 1246 }
1230 1247 function qcld_wb_chatbot_func_str_replace($messages = array()){
1231 1248 $refined_mesgses = array();
1232 1249 foreach ($messages as $message) {
@@ -1241,10 +1258,10 @@
1241 1258 // First check the nonce, if it fails the function will break
1242 1259 check_ajax_referer('wpwbot-order-nonce', 'security');
1243 1260 // Nonce is checked, get the POST data and sign user on
1244 1261 $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'])));
1262 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1263 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1247 1264 $info['remember'] = true;
1248 1265 $user_signon = wp_signon($info, false);
1249 1266 $response = array();
1250 1267 if (is_wp_error($user_signon)) {
@@ -1284,12 +1301,12 @@
1284 1301 if ($response['order_num'] > 0) {
1285 1302 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1286 1303 $order_html .= '<div class="wp-chatbot-orders-container">
1287 1304 <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>
1305 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1306 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1307 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1308 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1292 1309 </div>';
1293 1310 foreach ($customer_orders as $order) {
1294 1311 //Formatting order summery
1295 1312 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1300,9 +1317,9 @@
1300 1317 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1301 1318 }
1302 1319 $order_html .= '<div class="wp-chatbot-orders-single">
1303 1320 <div class="order-id"> ' . $order_url . '</div>
1304 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1321 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1305 1322 <div class="order-items">';
1306 1323 $singleOrder = new WC_Order($order->ID);
1307 1324 $items = $singleOrder->get_items();
1308 1325 foreach ($items as $item) {
@@ -1402,9 +1419,9 @@
1402 1419 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1403 1420 <div class="wp-chatbot-product-summary">
1404 1421 <div class="wp-chatbot-product-table">
1405 1422 <div class="wp-chatbot-product-table-cell">
1406 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1423 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1407 1424 <div class="price">' . $product->get_price_html() . '</div>';
1408 1425 $html .= ' </div>
1409 1426 </div>
1410 1427 </div></a>
@@ -1473,9 +1490,9 @@
1473 1490 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1474 1491 <div class="wp-chatbot-product-summary">
1475 1492 <div class="wp-chatbot-product-table">
1476 1493 <div class="wp-chatbot-product-table-cell">
1477 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1494 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1478 1495 <div class="price">' . $product->get_price_html() . '</div>';
1479 1496 $html .= ' </div>
1480 1497 </div>
1481 1498 </div></a>
@@ -1485,9 +1502,9 @@
1485 1502 wp_reset_postdata();
1486 1503 $html .= '</ul></div>';
1487 1504 } else {
1488 1505 $html .= '<div class="wp-chatbot-products-area">';
1489 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1506 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1490 1507 $html .= '</div>';
1491 1508 }
1492 1509 return $html;
1493 1510 }
@@ -1649,12 +1666,11 @@
1649 1666 //Updating the cart items.
1650 1667 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1651 1668 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1652 1669 function qcld_wb_chatbot_update_cart_item_number(){
1653 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1654 1670 //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']));
1671 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1672 + $qnty = sanitize_text_field($_POST['qnty']);
1657 1673 global $wpcommerce;
1658 1674 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1659 1675 wp_send_json($result);
1660 1676 }
@@ -1661,11 +1677,10 @@
1661 1677 //Show item after removing from cart page.
1662 1678 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1663 1679 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1664 1680 function qcld_wb_chatbot_cart_item_remove(){
1665 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1666 1681 //getting cart items n
1667 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1682 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1668 1683 global $wpcommerce;
1669 1684 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1670 1685 wp_send_json($result);
1671 1686 }
@@ -1702,9 +1717,9 @@
1702 1717 $response = array('status' => $status, 'html' => $html);
1703 1718 wp_send_json($response);
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,28 @@
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 = "no";
1775 + } else {
1776 + $response = "yes";
1777 + }
1778 + wp_send_json($response);
1779 +}
1766 1780 // Load template for App Order Thank You page url
1767 1781 function wp_chatbot_load_app_template($template){
1768 1782 if (is_page('wpwbot-mobile-app')) {
1769 1783 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1792,16 +1806,15 @@
1792 1806 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1793 1807 function wp_chatbot_create_app_checkout_thankyou_page(){
1794 1808 if (get_option('wp_chatbot_app_pages') == 1) {
1795 1809 //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() ) {
1810 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1798 1811 //post status and options
1799 1812 $app_page = array(
1800 1813 'comment_status' => 'closed',
1801 1814 'ping_status' => 'closed',
1802 1815 'post_author' => get_current_user_id(),
1803 - 'post_date' => gmdate('Y-m-d H:i:s'),
1816 + 'post_date' => date('Y-m-d H:i:s'),
1804 1817 'post_status' => 'publish',
1805 1818 'post_title' => 'wpwBot Mobile App',
1806 1819 'post_name' => 'wpwbot-mobile-app',
1807 1820 'post_type' => 'page',
@@ -1811,16 +1824,15 @@
1811 1824 //save the id in the database
1812 1825 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1813 1826 }
1814 1827 //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() ) {
1828 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1817 1829 //post status and options
1818 1830 $checkout_page = array(
1819 1831 'comment_status' => 'closed',
1820 1832 'ping_status' => 'closed',
1821 1833 'post_author' => get_current_user_id(),
1822 - 'post_date' => gmdate('Y-m-d H:i:s'),
1834 + 'post_date' => date('Y-m-d H:i:s'),
1823 1835 'post_status' => 'publish',
1824 1836 'post_title' => 'wpwBot App Checkout',
1825 1837 'post_name' => 'wpwbot-app-checkout',
1826 1838 'post_type' => 'page',
@@ -1830,16 +1842,15 @@
1830 1842 //save the id in the database
1831 1843 update_option('wp_chatbot_app_checkout', $app_checkout);
1832 1844 }
1833 1845 //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() ) {
1846 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1836 1847 //post status and options
1837 1848 $thankyou_page = array(
1838 1849 'comment_status' => 'closed',
1839 1850 'ping_status' => 'closed',
1840 1851 'post_author' => get_current_user_id(),
1841 - 'post_date' => gmdate('Y-m-d H:i:s'),
1852 + 'post_date' => date('Y-m-d H:i:s'),
1842 1853 'post_status' => 'publish',
1843 1854 'post_title' => 'wpwBot App Order Thank You',
1844 1855 'post_name' => 'wpwbot-app-order-thankyou',
1845 1856 'post_type' => 'page',
@@ -1850,9 +1861,9 @@
1850 1861 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1851 1862 }
1852 1863 }
1853 1864 //Keep tracking from App by cookies
1854 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1865 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1855 1866 if (!isset($_COOKIE['from_app'])) {
1856 1867 setcookie('from_app', 'yes', (time() + 3600), '/');
1857 1868 }
1858 1869 }
@@ -1866,9 +1877,9 @@
1866 1877 global $wp;
1867 1878 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1868 1879 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1869 1880 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1870 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1881 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1871 1882 exit;
1872 1883 }
1873 1884 } else {
1874 1885 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1876,12 +1887,9 @@
1876 1887 }
1877 1888 }
1878 1889
1879 1890 function qcld_choose_random($array){
1880 - if (is_array($array) && !empty($array)) {
1881 - return $array[array_rand($array)];
1882 - }
1883 - return $array;
1891 + return $array[array_rand($array)];
1884 1892 }
1885 1893
1886 1894 //User session count
1887 1895 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1887,9 +1895,8 @@
1887 1895 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1888 1896 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1889 1897 function qcld_wb_chatbot_session_count(){
1890 1898 // Nonce is checked, get the POST data and sign user on
1891 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1892 1899 global $wpdb;
1893 1900 $wpdb->show_errors = true;
1894 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1902 $response = array();
@@ -1894,12 +1901,11 @@
1894 1901 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1902 $response = array();
1896 1903
1897 1904
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 -
1905 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1900 1906 if(empty($session_exists)){
1901 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1907 + $wpdb->insert(
1902 1908 $tableuser,
1903 1909 array(
1904 1910 'session' => 1,
1905 1911 )
@@ -1906,10 +1912,9 @@
1906 1912 );
1907 1913 }else{
1908 1914
1909 1915 $session_id = $session_exists->id;
1910 -
1911 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1916 + $wpdb->update(
1912 1917 $tableuser,
1913 1918 array(
1914 1919 'session'=>($session_exists->session+1),
1915 1920 ),
@@ -1918,9 +1923,8 @@
1918 1923 '%d',
1919 1924 ),
1920 1925 array('%d')
1921 1926 );
1922 -
1923 1927 }
1924 1928
1925 1929 wp_send_json($response);
1926 1930 }
@@ -1927,9 +1931,9 @@
1927 1931
1928 1932 /* WPBot Chat History Addon check */
1929 1933 function qcld_wpbot_is_active_chat_history(){
1930 1934
1931 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1935 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1932 1936 return 1;
1933 1937 }else{
1934 1938 return 0;
1935 1939 }
@@ -1935,9 +1939,9 @@
1935 1939 }
1936 1940
1937 1941 }
1938 1942
1939 -function qcld_wpbot_input_validation( $data ) {
1943 +function qc_wpbot_input_validation( $data ) {
1940 1944 $data = html_entity_decode($data);
1941 1945 $data = trim($data);
1942 1946 $data = stripslashes($data);
1943 1947 $data = htmlspecialchars($data);
@@ -1942,23 +1946,16 @@
1942 1946 $data = stripslashes($data);
1943 1947 $data = htmlspecialchars($data);
1944 1948 return $data;
1945 1949 }
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 - }
1950 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1951 +function small_talk_import(){
1951 1952 global $wpdb;
1952 -
1953 1953 $table = $wpdb->prefix.'wpbot_response';
1954 -
1955 1954 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1956 -
1957 1955 foreach ($csvFile as $line) {
1958 1956 $line = str_getcsv($line, ',', '"');
1959 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1960 - $table, array(
1957 + $wpdb->insert($table, array(
1961 1958 'query' => $line[0],
1962 1959 'keyword' => $line[1],
1963 1960 'response' => $line[2],
1964 1961 'category'=> $line[3],
@@ -1965,16 +1962,12 @@
1965 1962 'intent'=> '',
1966 1963 //'lang'=> 'en_US',
1967 1964 ));
1968 1965 }
1969 -
1970 1966 $table2 = $wpdb->prefix.'wpbot_response_category';
1971 -
1972 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1973 - $table2, array(
1967 + $wpdb->insert($table2, array(
1974 1968 'name' => 'smalltalk',
1975 1969 ));
1976 -
1977 1970 update_option( 'qcld_small_talk_imported', 'yes' );
1978 1971
1979 1972 }
1980 1973 function sanitize_array( &$array ) {
@@ -1981,47 +1974,12 @@
1981 1974 if (!empty($array)) {
1982 1975 foreach ($array as &$value) {
1983 1976 if( !is_array($value) )
1984 1977 // sanitize if value is not an array
1985 - $value = sanitize_text_field( esc_html($value) );
1978 + $value = sanitize_text_field( $value );
1986 1979 else
1987 1980 // go inside this function again
1988 - sanitize_array(esc_html($value));
1981 + $this->sanitize_array($value);
1989 1982 }
1990 1983 }
1991 1984 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 -
1985 +}