PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, AI Services / 3.9.6
WPBot – AI ChatBot for Live Support, Lead Generation, AI Services v3.9.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 8.5.2 8.5.0 8.4.9 All 531 releases
chatbot / includes / simple_text_response.php

simple_text_response.php in WPBot – AI ChatBot for Live Support, Lead Generation, AI Services 3.9.6, at includes/simple_text_response.php

279 lines 9.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5 global $wpdb;
6 ?>
7 <style>
8 .wpbot_dashboard_header {
9 margin-right: unset !important;
10 margin-left: unset !important;
11 background: #32373c;
12 color: #fff;
13 text-align: center;
14 border-radius: 5px 5px 0px 0px;
15 }
16 .wpbot_addons_section {
17 margin-right: unset !important;
18 margin-left: unset !important;
19 margin-bottom: 10px;
20 background: #32373c;
21 padding-bottom: 20px;
22 border-radius: 0px 0px 5px 5px;
23 }
24 .wpbot_single_addon_wrapper2 {
25 background: #fff;
26 padding: 20px;
27 }
28 .wp-chatbot-admin-header, .wp-chatbot-admin-footer {
29 padding: 25px;
30 }
31 .wpbot_dashboard_header h1 {
32 font-size: 30px;
33 line-height: 100px;
34 margin: 0px;
35 color: #fff;
36 }
37 .container {
38 width: 1170px;
39 padding-right: 15px;
40 padding-left: 15px;
41 }
42 </style>
43
44
45 <?php
46 if(isset($_GET['opt']) && $_GET['opt']=='add'):
47
48 do_action('qcld_str_add_category');
49
50 elseif(isset($_GET['opt']) && $_GET['opt']=='edit'):
51
52 do_action('qcld_str_edit_category');
53
54 elseif(isset($_GET['page']) && $_GET['page']=='simple-text-response' && isset($_GET['action']) && $_GET['action']=='import'):
55
56 do_action('qcld_str_import');
57
58 elseif(isset($_GET['action']) && $_GET['action']=='manage-categories'):
59
60 include_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH.'/includes/templates/manage-categories.php');
61
62 elseif(isset($_GET['action']) && $_GET['action']=='edit'):
63
64 if(class_exists('Qcld_str_pro')):
65 do_action('qcld_str_pro_stredit');
66 else:
67
68 $hasEdit = false;
69 if(isset($_GET['query']) && $_GET['query']!=''){
70 $hasEdit = true;
71 $id = sanitize_text_field($_GET['query']);
72 $table = $wpdb->prefix.'wpbot_response';
73 $data = $wpdb->get_row("select * from $table where 1 and id = '".$id."'");
74
75 }
76
77
78 ?>
79 <div class="qcwrap">
80 <div class="wp-chatbot-wrap">
81 <div class="wpbot_dashboard_header container"><h1><?php echo ($hasEdit?'Edit':'Add') ?> Response</h1></div>
82 <form method="post" action="">
83 <div class="wpbot_addons_section container">
84 <div class="wpbot_single_addon_wrapper2">
85 <p><b>Please note the following</b></p>
86 <ul>
87 <li>1. The Query, Response and Keywords fields will be searched. Add Keywords for best matches</li>
88 <li>2. Please clear browser Cache and Cookies both before testing new responses</li>
89 </ul>
90 <table class="form-table">
91 <tbody>
92 <tr valign="top">
93 <th scope="row">Query</th>
94 <td>
95 <input type="text" name="qc_bot_str_query" value="<?php echo ($hasEdit?$data->query:''); ?>" style="width: 400px;" required />
96 <br><i>*Required. Add the query here.</i>
97 </td>
98 </tr>
99
100 <tr valign="top">
101 <th scope="row">Response</th>
102 <td>
103 <textarea id="qlcd_wp_chatbot_stop_words" cols="130" rows="10" name="qc_bot_str_response" required><?php echo ($hasEdit?$data->response:''); ?></textarea>
104 <br><i>*Required. Add the response here.</i>
105 </td>
106 </tr>
107 <tr valign="top">
108 <th scope="row">Keyword</th>
109 <td>
110 <input type="text" name="qc_bot_str_keyword" value="<?php echo ($hasEdit?$data->keyword:''); ?>" style="width: 400px;" />
111 <br><i>Optional. Add multiple keyword or phrases as comma(,) seperated value. It will help to find the best match result.</i>
112 </td>
113 </tr>
114
115 <tr valign="top">
116 <th scope="row">Intent</th>
117 <td>
118 <input type="text" name="qc_bot_str_intent" value="<?php echo ($hasEdit?$data->intent:''); ?>" style="width: 400px;" />
119 <br><i>Optional. Single keyword or Phrase. Leave it empty if you do not need to use this response as a intent. This will add as a custom intent in every intent selection field in wpbot settings. Also the intent can be used as system command to trigger the response.</i>
120 <?php if($hasEdit): ?>
121
122 <input type="hidden" name="qc_bot_str_id" value="<?php echo ($data->id); ?>" />
123
124 <?php endif; ?>
125 </td>
126 </tr>
127
128 </tbody>
129 </table>
130 </div>
131
132 <footer class="wp-chatbot-admin-footer">
133 <div class="row">
134 <div class="text-left col-sm-3 col-sm-offset-3">
135
136 </div>
137 <div class="text-right col-sm-6">
138 <input type="submit" class="button button-primary" name="submit" id="submit" value="Save Settings">
139 </div>
140 </div>
141 <!-- row-->
142 </footer>
143
144
145 </div></form>
146 </div>
147 </div>
148 <?php endif; ?>
149 <?php else:
150 $small_talk = get_option('qcld_small_talk_imported');
151 ?>
152 <div class="wrap">
153 <h1 class="wp-heading-inline">
154 Simple Text Responses</h1>
155 <a href="<?php echo add_query_arg( 'action', 'edit', admin_url('admin.php?page=simple-text-response') ); ?>" class="page-title-action">Add New</a>
156 <?php if($small_talk != 'yes'){ ?>
157 <a id="small_talk" class="page-title-action">Import Small Talk</a>
158 <?php } ?>
159 <?php if(class_exists('Qcld_str_pro')): ?>
160
161 <a href="<?php echo add_query_arg( 'action', 'manage-categories', admin_url('admin.php?page=simple-text-response') ); ?>" class="page-title-action">Manage Categories</a>
162 <a href="<?php echo admin_url( 'admin-post.php?action=qc_str_export' ); ?>" class="page-title-action">Export</a>
163 <a href="<?php echo add_query_arg( 'action', 'import', admin_url('admin.php?page=simple-text-response') ); ?>" class="page-title-action">Import</a>
164
165 <?php endif; ?>
166
167 <hr class="wp-header-end">
168
169 <p>Create simple text responses and the ChatBot will use advanced search algorithm for natural language phrase matching with user input.</p>
170 <p><b>This is a new feature. If you have any feedback to improve this feature or found a bug please report us <a href="https://www.quantumcloud.com/resources/free-support/" target="_blank">here</a>.</b></p>
171 <p><b>NB: Simple Text Responses require mySQL Client version 5.6+</b></p>
172
173 <form method="post" action="">
174 <table class="form-table">
175 <tbody>
176 <tr valign="top">
177 <th scope="row">Phrase matching accuracy</th>
178 <td>
179
180 <input type="text" name="qc_bot_str_weight" value="<?php echo (get_option('qc_bot_str_weight')!=''?get_option('qc_bot_str_weight'):'0.4'); ?>" style="width: 400px;" required />
181 <br><i>Please enter a value between 0 to 1. Higher value means more exact matching of phrases.</i>
182 </td>
183 </tr>
184 <?php if(class_exists('Qcld_str_pro')): ?>
185 <tr valign="top">
186 <th scope="row">Search Fields</th>
187 <td>
188 <?php
189 $fields = get_option('qc_bot_str_fields');
190 ?>
191
192 <label for="qc_bot_str_field_title">Title</label>
193 <input id="qc_bot_str_field_title" type="checkbox" name="qc_bot_str_fields[]" value="query" <?php echo (!$fields?'checked="checked"':''); ?> <?php echo ($fields && in_array('query', $fields)?'checked="checked"':''); ?> />
194
195 <label for="qc_bot_str_field_keyword">Keyword</label>
196 <input id="qc_bot_str_field_keyword" type="checkbox" name="qc_bot_str_fields[]" value="keyword" <?php echo (!$fields?'checked="checked"':''); ?> <?php echo ($fields && in_array('keyword', $fields)?'checked="checked"':''); ?> />
197
198 <label for="qc_bot_str_field_response">Response</label>
199 <input id="qc_bot_str_field_response" type="checkbox" name="qc_bot_str_fields[]" value="response" <?php echo (!$fields?'checked="checked"':''); ?> <?php echo ($fields && in_array('response', $fields)?'checked="checked"':''); ?> />
200 <br><i>Please check/uncheck to allow/disallow searching in that fields</i>
201 </td>
202 </tr>
203 <tr valign="top">
204 <th scope="row">Remove Stopwords</th>
205 <td>
206 <input id="qc_bot_str_remove_stopwords" type="checkbox" name="qc_bot_str_remove_stopwords" value="1" <?php echo (get_option('qc_bot_str_remove_stopwords') && get_option('qc_bot_str_remove_stopwords')==1?'checked="checked"':''); ?> />
207 <label for="qc_bot_str_remove_stopwords">Remove Stopwords</label>
208 <br><i>Please enable to remove stopwords from users query for better searching.</i>
209 </td>
210 </tr>
211 <?php endif; ?>
212 <tr valign="top">
213 <th scope="row"></th>
214 <td>
215 <input type="submit" class="button button-primary" name="submit" id="submit" value="Save Settings">
216 </td>
217 </tr>
218 </tbody>
219 </table>
220 </form>
221
222 <form method="post" action="">
223 <table class="form-table">
224 <tbody>
225 <tr valign="top">
226 <th scope="row">Re-Index STR Simple Text Responses</th>
227 <td>
228 <input type="submit" class="button button-primary" name="qc-re-index" id="re-index" value="Re Index">
229 <br/>
230 <i>Re-Indexing may required after migration.</i>
231 </td>
232 </tr>
233 </tbody>
234 </table>
235 </form>
236
237 <div id="poststuff">
238 <div id="post-body" class="metabox-holder">
239 <div id="post-body-content">
240 <div class="meta-box-sortables ui-sortable">
241 <form method="post">
242 <?php
243 $this->response_list->prepare_items();
244 $this->response_list->display(); ?>
245 </form>
246 </div>
247 </div>
248 </div>
249 <br class="clear">
250 </div>
251 </div>
252
253 <?php endif; ?>
254 <script type="text/javascript">
255 var small_talk = document.getElementById('small_talk');
256 small_talk.addEventListener( 'click', () => { small_talk_import(); } );
257 function small_talk_import(){
258 var req = new XMLHttpRequest();
259 req.open('POST', ajaxurl, true);
260 req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
261 var s = 'action=small_talk_import';
262 req.send(s);
263 if(req.DONE == 4){
264 alert('Smalltalk is imported');
265 setTimeout(function(){
266 window.location.reload();
267 }, 3000);
268 // Swal.fire({
269 // title: 'Smalltalk is imported',
270 // icon: 'success',
271 // }).then(() => {
272 // setTimeout(function(){
273 // window.location.reload();
274 // }, 3000);
275 // })
276 }
277 }
278 </script>
279