PluginProbe ʕ •ᴥ•ʔ
AI ChatBot for eCommerce – WoowBot / 2.4.0
AI ChatBot for eCommerce – WoowBot v2.4.0
4.8.2 4.8.1 4.7.9 4.7.7 4.7.8 4.7.6 4.7.5 4.7.4 4.7.1 4.7.0 4.6.1 4.5.9 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.8.8 3.8.9 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.4.0 4.4.1 4.4.2 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 trunk 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.9.0 3,2,7 3.0.0 3.1.0 3.1.1 3.1.2 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4
woowbot-woocommerce-chatbot / functions.php
woowbot-woocommerce-chatbot Last commit date
css 7 years ago fonts 7 years ago images 7 years ago js 7 years ago lang 7 years ago qc-support-promo-page 7 years ago class-qc-free-plugin-upgrade-notice.php 7 years ago functions.php 7 years ago qcld-woowbot-info-page.php 7 years ago qcld-woowbot.php 7 years ago readme.txt 6 years ago woowbot-slick-button.png 7 years ago
functions.php
217 lines
1 <?php
2
3 /**
4 * @param $type
5 * Display recently viewed products
6 */
7 if (!defined('ABSPATH')) exit; // Exit if accessed directly
8
9
10 add_action('wp_footer', 'woo_chatbot_load_footer_html');
11 function woo_chatbot_load_footer_html()
12 { ?>
13 <?php if (get_option('disable_woo_chatbot') != 1 && woo_chatbot_load_controlling()==true): ?>
14 <style>
15 <?php if(get_option('woo_chatbot_custom_css')!=""){echo get_option('woo_chatbot_custom_css'); } ?>
16 </style>
17 <div id="woo-chatbot-icon-container">
18 <div id="woo-chatbot-ball-wrapper" style="display:none">
19
20 <div id="woo-chatbot-ball-container" style="display:none" class="woo-chatbot-ball-container">
21 <div class="woo-chatbot-admin">
22 <h4><?php if(get_option('qlcd_woo_chatbot_conversations_with')!=''){echo get_option('qlcd_woo_chatbot_conversations_with');}else{ _e('Conversations with', 'woochatbot'); } ?></h4>
23 <h3> <?php if(get_option('qlcd_woo_chatbot_agent')!=''){echo get_option('qlcd_woo_chatbot_agent');} ?></h3>
24 </div>
25 <div class="woo-chatbot-ball-inner">
26 <div class="woo-chatbot-messages-wrapper">
27 <ul id="woo-chatbot-messages-container" class="woo-chatbot-messages-container">
28 </ul>
29 </div>
30 </div>
31 <div id="woo-chatbot-editor-container" class="woo-chatbot-editor-container">
32 <input id="woo-chatbot-editor" class="woo-chatbot-editor" required placeholder="<?php _e('Send a message.', 'woochatbot'); ?>"
33 maxlength="100">
34 <button type="button" id="woo-chatbot-send-message" class="woo-chatbot-button"><?php _e('send', 'woochatbot'); ?></button>
35 </div>
36 </div>
37 <!--woo-chatbot-ball-container-->
38 <div id="woo-chatbot-ball" class="woo-chatbot-ball">
39 <img src="<?php echo QCLD_WOOCHATBOT_IMG_URL . '/' . get_option('woo_chatbot_icon'); ?>"
40 alt="WooChatIcon">
41 </div>
42 <!--container-->
43 </div>
44 <!--woo-chatbot-ball-wrapper-->
45 </div>
46 <?php endif;
47
48 }
49
50 add_action('wp_ajax_qcld_woo_chatbot_keyword', 'qcld_woo_chatbot_keyword');
51 add_action('wp_ajax_nopriv_qcld_woo_chatbot_keyword', 'qcld_woo_chatbot_keyword');
52
53
54 function qcld_woo_chatbot_keyword()
55 {
56 $keyword = sanitize_text_field($_POST['keyword']);
57 $product_per_page=get_option('qlcd_woo_chatbot_ppp')!=''? get_option('qlcd_woo_chatbot_ppp') :10;
58 //Merging all query together.
59 $argu_params = array(
60 'post_type' => 'product',
61 'post_status' => 'publish',
62 'posts_per_page' => $product_per_page,
63 'order' => 'ASC',
64 's' => $keyword,
65 );
66 /******
67 *WP Query Operation to get products.*
68 *******/
69 $product_query = new WP_Query($argu_params);
70 $product_num = $product_query->post_count;
71 $html = '<div class="woo-chatbot-featured-products">';
72
73 $_pf = new WC_Product_Factory();
74 //repeating the products
75 if ($product_num > 0) {
76 //$html .= '<p>sdf sdfdsf : '.$asdfdf.'</p>';
77 $html .= '<ul class="woo-chatbot-products">';
78 while ($product_query->have_posts()) : $product_query->the_post();
79 $product = $_pf->get_product(get_the_ID());
80 //$qcld_thumb = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'shop_thumbnail' );
81 $html .= '<li class="woo-chatbot-product">';
82 $html .= '<a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->get_title()) . '">';
83 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '</a>
84 <div class="woo-chatbot-product-summary">
85 <div class="woo-chatbot-product-table">
86 <div class="woo-chatbot-product-table-cell">
87 <h3 class="woo-chatbot-product-title"><a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->get_title()) . '">' . esc_attr($product->get_title()) . '</a></h3>
88 <div class="price">' . $product->get_price_html() . '</div>';
89
90 // if ($product->is_type('simple')) {
91 // $html .= '<a target="_blank" href="' . get_site_url() . '?add-to-cart=' . get_the_ID() . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '" class="woo-chatbot-button woo-chatbot-button-cart add_to_cart_button ajax_add_to_cart" data-quantity="1" data-product_id="' . get_the_ID() . '" >Add to Cart</a>';
92 // } else {
93 // $html .= '<a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '" class="woo-chatbot-button woo-chatbot-button-cart" >View Detail</a>';
94 // }
95 $html .= ' </div>
96 </div>
97 </div>
98 </li>';
99 endwhile;
100 wp_reset_postdata();
101 $html .= '</ul>';
102 }
103 $html .= '</div>';
104 $response = array('html' => $html, 'product_num' => $product_num);
105 echo wp_send_json($response);
106 wp_die();
107 }
108
109 add_action('wp_ajax_qcld_woo_chatbot_category', 'qcld_woo_chatbot_category');
110 add_action('wp_ajax_nopriv_qcld_woo_chatbot_category', 'qcld_woo_chatbot_category');
111
112 function qcld_woo_chatbot_category()
113 {
114 $terms = get_terms(array(
115 'taxonomy' => 'product_cat',
116 'hide_empty' => true,
117 ));
118 $html = "";
119 foreach ($terms as $term) {
120
121 $html .= '<span class="qcld-chatbot-product-category" type="button" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
122 }
123 echo wp_send_json($html);
124 wp_die();
125 }
126
127 add_action('wp_ajax_qcld_woo_chatbot_category_products', 'qcld_woo_chatbot_category_products');
128 add_action('wp_ajax_nopriv_qcld_woo_chatbot_category_products', 'qcld_woo_chatbot_category_products');
129 function qcld_woo_chatbot_category_products()
130 {
131 $category_id = stripslashes($_POST['category']);
132 $product_per_page=get_option('qlcd_woo_chatbot_ppp')!=''? get_option('qlcd_woo_chatbot_ppp') :10;
133 //Merging all query together.
134 $argu_params = array(
135 'post_type' => 'product',
136 'post_status' => 'publish',
137 'ignore_sticky_posts' => 1,
138 'posts_per_page' => $product_per_page,
139 'tax_query' => array(
140 array(
141 'taxonomy' => 'product_cat',
142 'field' => 'term_id',
143 'terms' => $category_id,
144 'operator' => 'IN'
145 )
146 )
147 );
148 /******
149 *WP Query Operation to get products.*
150 *******/
151 $product_query = new WP_Query($argu_params);
152 $product_num = $product_query->post_count;
153
154 $_pf = new WC_Product_Factory();
155 //repeating the products
156 $html="";
157 if ($product_num > 0) {
158
159 $html .= '<div class="woo-chatbot-featured-products">';
160 //$html .= '<p>sdf sdfdsf : '.$asdfdf.'</p>';
161 $html .= '<ul class="woo-chatbot-products">';
162 while ($product_query->have_posts()) : $product_query->the_post();
163 $product = $_pf->get_product(get_the_ID());
164 //$qcld_thumb = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'shop_thumbnail' );
165 $html .= '<li class="woo-chatbot-product">';
166 $html .= '<a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '">';
167 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '</a>
168 <div class="woo-chatbot-product-summary">
169 <div class="woo-chatbot-product-table">
170 <div class="woo-chatbot-product-table-cell">
171 <h3 class="woo-chatbot-product-title"><a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '">' . $product->post->post_title . '</a></h3>
172 <div class="price">' . $product->get_price_html() . '</div>';
173
174 // if ($product->is_type('simple')) {
175 // $html .= '<a target="_blank" href="' . get_site_url() . '?add-to-cart=' . get_the_ID() . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '" class="woo-chatbot-button woo-chatbot-button-cart add_to_cart_button ajax_add_to_cart" data-quantity="1" data-product_id="' . get_the_ID() . '" >Add to Cart</a>';
176 // } else {
177 // $html .= '<a target="_blank" href="' . get_permalink(get_the_ID()) . '" title="' . esc_attr($product->post->post_title ? $product->post->post_title : get_the_ID()) . '" class="woo-chatbot-button woo-chatbot-button-cart" >View Detail</a>';
178 // }
179 $html .= ' </div>
180 </div>
181 </div>
182 </li>';
183 endwhile;
184 wp_reset_postdata();
185 $html .= '</ul>';
186
187 $html .= '</div>';
188 }else{
189 $html.="";
190 }
191 $response = array('html' => $html, 'product_num' => $product_num);
192 echo wp_send_json($response);
193 wp_die();
194
195 }
196 //woo_chatbot load control handler.
197 function woo_chatbot_load_controlling(){
198 $woo_chatbot_load=true;
199 if(woo_chatbot_is_mobile()&& get_option('disable_woo_chatbot_on_mobile')==1){
200 $woo_chatbot_load=false;
201 }
202 return $woo_chatbot_load;
203 }
204 //checking Devices
205 function woo_chatbot_is_mobile(){
206 $useragent=$_SERVER['HTTP_USER_AGENT'];
207 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))){
208 return true;
209 }else{
210 return false;
211 }
212 }
213
214
215
216
217