Changeset 3429109
- Timestamp:
- 12/29/2025 01:08:20 PM (8 weeks ago)
- Location:
- onwebchat
- Files:
-
- 9 added
- 9 edited
-
assets/banner-1544x500.jpg (modified) (previous)
-
assets/banner-772x250.jpg (modified) (previous)
-
assets/icon-128x128.gif (modified) (previous)
-
assets/icon-256x256.gif (modified) (previous)
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (modified) (previous)
-
assets/screenshot-3.png (modified) (previous)
-
trunk/admin (added)
-
trunk/admin/settings-page.php (added)
-
trunk/admin/tabs (added)
-
trunk/admin/tabs/advanced.php (added)
-
trunk/admin/tabs/chat.php (added)
-
trunk/admin/tabs/general.php (added)
-
trunk/admin/tabs/woocommerce.php (added)
-
trunk/includes (added)
-
trunk/includes/woocommerce-sync.php (added)
-
trunk/onwebchat.php (modified) (6 diffs)
-
trunk/readme.txt (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
onwebchat/trunk/onwebchat.php
r3281809 r3429109 8 8 Plugin Name: onWebChat - Live Chat & AI Chatbot 9 9 Plugin URI: https://www.onwebchat.com/wordpress-live-chat-plugin.php 10 Description: Empower visitors with real-time human chat and integrated AI chatbots. onWebChat Live Chat delivers instant responses, smoother interactions, and 24/7 availability - improving engagement, satisfaction, and conversions. 10 Description: Empower visitors with real-time human chat and integrated AI chatbots. onWebChat Live Chat delivers instant responses, smoother interactions, and 24/7 availability - improving engagement, satisfaction, and conversions. Includes WooCommerce product sync for AI training. 11 11 Author: onWebChat 12 Version: 3. 4.112 Version: 3.5.0 13 13 Author URI: https://www.onwebchat.com 14 14 */ 15 15 16 /** 17 * WooCommerce Testing Mode Configuration 18 * Set to true for local development (127.0.0.1:81) 19 * Set to false for production (www.onwebchat.com) 20 */ 21 if (!defined('ONWEBCHAT_WC_TESTING_MODE')) { 22 define('ONWEBCHAT_WC_TESTING_MODE', false); 23 } 16 24 17 25 /* ---------------------------------------------------- * … … 23 31 define('ONWEBCHAT_SERVER_URL','https://www.onwebchat.com/get-chatid.php'); 24 32 33 // Load WooCommerce sync module if WooCommerce is active 34 add_action('plugins_loaded', function () { 35 if (class_exists('WooCommerce')) { 36 require_once __DIR__ . '/includes/woocommerce-sync.php'; 37 } 38 }); 25 39 26 40 // add styles … … 35 49 // define the settings 36 50 add_action('admin_init','onwebchat_register_setttings'); 51 52 // handle form submissions early (before any output) 53 add_action('admin_init', 'onwebchat_handle_all_form_submissions'); 37 54 38 55 … … 59 76 60 77 function onwebchat_init_menu_page() { 61 62 63 $options = get_option('onwebchat_plugin_option'); 64 $chatId = $options['text_string']; 65 66 $isConnected = false; 67 if($chatId !="") { 68 $isConnected = true; 69 } 70 71 $isSecondPage = false; 72 73 74 /***************************************************************** 75 * Ask server for chatId 76 *****************************************************************/ 77 if ( isset( $_POST["action"] ) && $_POST["action"] == "login" ) { 78 79 80 // the following lines are added to verify a correct security nonce(token) by using "wp_verify_nonce()" 81 if (! isset($_POST['_wpnonce']) 82 || ! wp_verify_nonce( $_POST['_wpnonce'], 'on_web_chat_nonce')){ 83 print 'Sorry, your nonce did not verify.'; 84 exit; 85 } 86 87 $options = get_option('onwebchat_plugin_option'); 88 $chatId = $options['text_string']; 89 //**************************** 90 91 // get username, password and chatId 92 93 94 $userName = isset($_POST["onWebChatUser"]) ? sanitize_text_field($_POST["onWebChatUser"]) : ''; 95 $userPass = isset($_POST["onWebChatPass"]) ? sanitize_text_field($_POST["onWebChatPass"]) : ''; 96 97 $chatId = isset($_POST["chatId"]) ? sanitize_text_field($_POST["chatId"]) : ''; 98 99 $pagesSelect = isset($_POST["pages-select"]) ? absint($_POST["pages-select"]) : 1; 100 $showOnPages = isset($_POST["showonpages"]) ? sanitize_text_field($_POST["showonpages"]) : ''; 101 $hideOnPages = isset($_POST["hideonpages"]) ? sanitize_text_field($_POST["hideonpages"]) : ''; 102 $onwebchatApi = isset($_POST["onwebchat-api"]) ? wp_kses_post($_POST["onwebchat-api"]) : ''; 103 104 105 106 if(isChatIdValid($chatId)) { 107 108 if ( isset($_POST["isSecondPage"])){ 109 $isSecondPage = $_POST["isSecondPage"]; 110 } 111 112 //----------- update chatId option ------------ 113 $my_options = get_option('onwebchat_plugin_option'); 114 115 $my_options['text_string'] = $chatId; 116 117 //Update entire array 118 update_option('onwebchat_plugin_option', $my_options); 119 //----------------------------------------------- 120 121 // remove user email from db 122 if(!$isSecondPage) { 123 update_option( 'onwebchat_plugin_option_user', ''); 124 update_option( 'onwebchat_plugin_option_pages_select', 1); 125 126 } else { 127 128 update_option( 'onwebchat_plugin_option_pages_select', $pagesSelect); 129 130 if ($pagesSelect==2){ 131 update_option( 'onwebchat_plugin_option_show_pages', $showOnPages); 132 } else if ($pagesSelect==3){ 133 update_option( 'onwebchat_plugin_option_hide_pages', $hideOnPages); 134 } 135 136 //TODO update textarea 137 update_option( 'onwebchat_plugin_option_api_code', $onwebchatApi); 138 } 139 140 // move to next page 141 print('<script>window.location.href="admin.php?page=onwebchat_settings"</script>'); 142 143 } else { 144 145 // save username at options 146 update_option( 'onwebchat_plugin_option_user', $userName ); 147 148 // ask server for chatId 149 $response = wp_remote_post(ONWEBCHAT_SERVER_URL, array( 150 'method' => 'POST', 151 'timeout' => 45, 152 'redirection' => 5, 153 'httpversion' => '1.0', 154 'blocking' => true, 155 'headers' => array(), 156 'body' => array( 'email' => $userName, 'pass' => $userPass ), 157 'cookies' => array() 158 )); 159 160 161 162 163 if ( is_wp_error( $response ) ) { 164 $error_message = $response->get_error_message(); 165 166 167 } else { 168 169 170 // If no chatId returned 171 if($response['body'] == '') { 172 // display an error for wrong credentials 173 onwebchat_login_error(true); 174 175 } else { 176 177 //----------- update chatId 178 $my_options = get_option('onwebchat_plugin_option'); 179 180 $my_options['text_string'] = $response['body']; 181 182 update_option('onwebchat_plugin_option', $my_options); 183 update_option( 'onwebchat_plugin_option_pages_select', 1); 184 //-------------------------------------------- 185 186 // move to next page 187 print('<script>window.location.href="admin.php?page=onwebchat_settings"</script>'); 188 } 189 } 190 } 191 192 $m_option_hide = false; 193 if(isset($_POST['onwebchat_plugin_option_hide'])) { 194 $m_option_hide = $_POST['onwebchat_plugin_option_hide']; 195 } 196 197 update_option('onwebchat_plugin_option_hide', $m_option_hide); //an einai stin proti selida tote to kanei keno (opote by default den einai epilegmeno) 198 199 } 200 201 //******************************************************************** 202 203 204 /********************************************************************* 205 * Disconnect account 206 *********************************************************************/ 207 if( isset($_GET["action"]) && $_GET["action"] == "deactivate" && $isConnected) { 208 $isConnected = false; 209 210 $my_options = get_option('onwebchat_plugin_option'); 211 212 $my_options['text_string'] = ''; 213 214 update_option('onwebchat_plugin_option', $my_options); 215 update_option( 'onwebchat_plugin_option_pages_select', 1); 216 217 $chatIdOption = get_option('onwebchat_plugin_option'); 218 $chatId = $chatIdOption['text_string']; 219 220 print('<script>window.location.href="admin.php?page=onwebchat_settings"</script>'); 221 222 } 223 //*********************************************************************** 224 225 226 227 ?> 228 <div> 229 230 231 232 233 <h1 style="font-weight: 400;margin-top:34px">onWebChat <?php ($isConnected == true) ? print 'Settings' : print 'Activation'; ?> </h1> 234 235 <form action="admin.php?page=onwebchat_settings" method="post"> 236 <input type="hidden" name="action" value="login"> 237 <?php 238 239 //create nonce(token) 240 wp_nonce_field('on_web_chat_nonce'); 241 242 // Login Page 243 if($isConnected != true) { 244 245 $chatId = get_option( 'onwebchat_plugin_option' ); 246 $chatId = $chatId['text_string']; 247 ?> 248 249 <hr class="small-hr2"> 250 251 <h3 class="header-1">Connect with your onWebChat account</h3> 252 253 254 255 <div class="username-div"> 256 <!-- sanitize user-provided parameter --> 257 <strong>Email: </strong><input class="username-text-field" type="text" name="onWebChatUser" value="<?php echo esc_attr(get_option( 'onwebchat_plugin_option_user' )); ?>"/> 258 </div> 259 260 <div class="password-div"> 261 <strong>Password: </strong><input class="password-text-field" type="password" name="onWebChatPass" value="<?php echo get_option( 'onWebChatPass' ); ?>"/> 262 </div> 263 264 265 <div style="width: 560px; height: 10px; border-bottom: 1px solid #bfbfbf; text-align: center; margin-top:30px"> 266 <span class="header-or" style="color:#656565;font-size: 21px; background-color: #f1f1f1; padding: 0 10px;"> 267 268 OR 269 270 </span> 271 </div> 272 273 274 <h3 class="header-2">Paste your onWebChat Chat Id</h3> 275 <div class="password-div"> 276 <strong>Chat Id:</strong> <input class="chatid-text-field" type="text" name="chatId" value="<?php echo $chatId; ?>"/> 277 </div> 278 279 <hr class="small-hr2"> 280 281 <div class="new-account-link"> 282 Don’t have an onWebChat account yet? <a href="https://www.onwebchat.com/signup.php" target="_blank">Create one here</a> to get started. 283 </div> 284 285 <?php 286 287 $html = '<input class="button action" style="margin-left: 230px;" type="submit" value="Activate"/>'; 288 echo $html; 289 } 290 291 // 2nd Page 292 else { 293 $options = get_option('onwebchat_plugin_option_user'); 294 295 // display user email 296 if($options!=''){ 297 //sanitize user-provided parameter 298 $email = esc_html($options); 299 $html = '<br><h3 class="header-1-p2">Activated for onWebChat account: </h3>'; 300 $html .= "<strong class='account-id'>$email</strong> "; 301 } 302 303 // display chatId 304 else { 305 $chatId = get_option( 'onwebchat_plugin_option' ); 306 $chatId = $chatId['text_string']; 307 $html = '<br><h3 class="header-1-p2">Activated for onWebChat Chat Id: </h3>'; 308 $html .= "<strong class='account-id'>$chatId</strong> "; 309 } 310 $html .= ' <a href="admin.php?page=onwebchat_settings&action=deactivate">Unlink account</a>'; 311 //$html .= ' <div class="admin-login-info"> <span>*</span> To connect to onWebChat dashboard click <a target="_blank" href="https://www.onwebchat.com/login.php">here</a> </div>'; 312 echo $html; 313 314 $options = get_option('onwebchat_plugin_option_hide'); 315 316 $chatId = get_option( 'onwebchat_plugin_option' ); 317 $chatId = $chatId['text_string']; 318 319 // get correct value 320 $onwebchatApi = get_option('onwebchat_plugin_option_api_code'); 321 $onwebchatApi = str_replace('\\','',$onwebchatApi); 322 ?> 323 324 325 <br><br><br> 326 327 <div class="hide-div"> 328 <select id="pages-select" name="pages-select" onchange="onwc_select_change()"> 329 <option value="1" <?php selected( get_option('onwebchat_plugin_option_pages_select'), 1 ); ?>>Show the chat widget on all pages</option> 330 <option value="2" <?php selected( get_option('onwebchat_plugin_option_pages_select'), 2 ); ?>>Show the chat widget only on selected pages:</option> 331 <option value="3" <?php selected( get_option('onwebchat_plugin_option_pages_select'), 3 ); ?>>Hide the chat widget on selected pages:</option> 332 <option value="4" <?php selected( get_option('onwebchat_plugin_option_pages_select'), 4 ); ?>>Hide the chat widget on all pages</option> 333 </select> 334 </div> 335 336 <div id="onwc_show_on_pages_div" style="display:none"> 337 <input id="showonpages" name="showonpages" class="showhidepages" type="text" value="<?php echo esc_attr(get_option( 'onwebchat_plugin_option_show_pages' )); ?>" /><a href="#" style="text-decoration: none;" onmouseover="document.getElementById('help').style.visibility = 'visible'"; ONMOUSEOUT="document.getElementById('help').style.visibility = 'hidden'"><strong><font size="4" face="Arial"> ? </font></strong></a> 338 </div> 339 <div id="onwc_hide_on_pages_div" style="display:none"> 340 <input id="hideonpages" name="hideonpages" class="showhidepages" type="text" value="<?php echo esc_attr(get_option( 'onwebchat_plugin_option_hide_pages' )); ?>" /><a href="#" style="text-decoration: none;" onmouseover="document.getElementById('help').style.visibility = 'visible'"; ONMOUSEOUT="document.getElementById('help').style.visibility = 'hidden'"><strong><font size="4" face="Arial"> ? </font></strong></a> 341 </div> 342 343 <div id="help"> 344 <span>Add multiple pages by separating them with a space. You can enter a full URL or just a part of it. Example: index price contact.php blog/</span> 345 </div> 346 347 <br> 348 <h3 class="header-1-p2">Enter your custom onWebChat JavaScript API code below</h3> 349 <div class="chatid-div"> 350 <!-- <strong>onWebChat API:</strong> 351 <br> --> 352 <!-- sanitize user-provided parameter --> 353 <textarea class="chatid-text-field" style="margin-left: 0px;" rows="10" name="onwebchat-api"><?php echo esc_html($onwebchatApi); ?></textarea> 354 <br> 355 <br> 356 </div> 357 358 <div> 359 <br /><br /> 360 </div> 361 362 <!-- hiden fields --> 363 <input class="chatid-text-field-hide" type="text" name="chatId" value="<?php echo esc_attr($chatId); ?>"/> 364 <input class="chatid-text-field-hide" type="text" name="onWebChatUser" value="<?php echo esc_attr(get_option( 'onwebchat_plugin_option_user' )); ?>"/> 365 <input class="chatid-text-field-hide" type="text" name="isSecondPage" value="1"/> 366 367 <div class="new-account-link"> 368 <a target="_blank" href="https://www.onwebchat.com/login.php">Access your onWebChat Dashboard</a> 369 </div> 370 371 <?php 372 // Display the Save Button 373 $html = '<input class="button action" style="margin-left: 230px;" type="submit" value="Save Changes"/>'; 374 echo $html; 375 376 } 377 378 379 ?> 380 </form> 381 </div> 382 383 <script type="text/javascript"> 384 385 386 function onwc_select_change() { 387 var e = document.getElementById("pages-select"); 388 if (!e) { 389 // console.warn("Select element not found"); 390 return; 391 } 392 var selected = e.options[e.selectedIndex].value; 393 if (selected == 1){ 394 document.getElementById("onwc_show_on_pages_div").style.display = "none"; 395 document.getElementById("onwc_hide_on_pages_div").style.display = "none"; 396 } else if (selected == 2){ 397 document.getElementById("onwc_show_on_pages_div").style.display = "block"; 398 document.getElementById("onwc_hide_on_pages_div").style.display = "none"; 399 } else if (selected == 3){ 400 document.getElementById("onwc_show_on_pages_div").style.display = "none"; 401 document.getElementById("onwc_hide_on_pages_div").style.display = "block"; 402 } else if (selected == 4){ 403 document.getElementById("onwc_show_on_pages_div").style.display = "none"; 404 document.getElementById("onwc_hide_on_pages_div").style.display = "none"; 405 } 406 407 } 408 document.addEventListener('DOMContentLoaded', function() { 409 onwc_select_change(); 410 }, false); 411 </script> 412 <?php 413 } 414 78 // Load the new tabbed settings page 79 require_once __DIR__ . '/admin/settings-page.php'; 80 onwebchat_settings_page(); 81 } 415 82 416 83 /* ----------------------------------------------------- * … … 443 110 //* register the api code 444 111 register_setting( 'onwebchat_plugin_option', 'onwebchat_plugin_option_api_code'); 112 113 /******************** WooCommerce Sync Settings ************************/ 114 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_sync_enabled'); 115 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_sync_mode'); 116 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_sync_include_price'); 117 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_sync_secret'); 118 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_last_bulk_sync'); 119 register_setting( 'onwebchat_wc_sync', 'onwebchat_wc_excluded_categories'); 445 120 } 446 121 … … 563 238 } 564 239 240 /************************************************************************ 241 * Fetch WooCommerce secret during login 242 * Called automatically when user logs in with email/password 243 * This way they don't need to re-enter credentials in WooCommerce tab 244 ***********************************************************************/ 245 function onwebchat_fetch_wc_secret_on_login($email, $password, $chatId) { 246 // Extract key part (before first slash if present) 247 $key = explode('/', $chatId)[0]; 248 249 // Determine endpoint based on testing mode constant 250 $endpoint = ONWEBCHAT_WC_TESTING_MODE 251 ? 'http://127.0.0.1:81/api/integrations/woocommerce/secret' 252 : 'https://www.onwebchat.com/api/integrations/woocommerce/secret'; 253 254 // Request secret with authentication 255 $response = wp_remote_post($endpoint, array( 256 'timeout' => 15, 257 'sslverify' => !ONWEBCHAT_WC_TESTING_MODE, 258 'headers' => array( 259 'Content-Type' => 'application/json', 260 ), 261 'body' => wp_json_encode(array( 262 'email' => $email, 263 'password' => $password, 264 'site_key' => $key, 265 )), 266 )); 267 268 if (is_wp_error($response)) { 269 // Silently fail - user can still connect manually in WooCommerce tab 270 error_log('onWebChat: Failed to fetch WC secret on login: ' . $response->get_error_message()); 271 return; 272 } 273 274 $status_code = wp_remote_retrieve_response_code($response); 275 $response_body = wp_remote_retrieve_body($response); 276 $body = json_decode($response_body, true); 277 278 if ($status_code >= 200 && $status_code < 300 && isset($body['success']) && $body['success']) { 279 // Success! Store the secret 280 update_option('onwebchat_wc_sync_secret', $body['secret']); 281 error_log('onWebChat: WooCommerce sync connected automatically during login'); 282 } 283 // If it fails, user can still connect manually - no error shown 284 } 285 286 /************************************************************************ 287 * Handle all form submissions early to avoid blank page on redirect 288 * Must run on admin_init before any output is sent 289 ***********************************************************************/ 290 function onwebchat_handle_all_form_submissions() { 291 // Only run on our settings page 292 if (!isset($_GET['page']) || $_GET['page'] !== 'onwebchat_settings') { 293 return; 294 } 295 296 // Load the general tab handlers 297 require_once __DIR__ . '/admin/tabs/general.php'; 298 onwebchat_handle_general_actions(); 299 } 300 565 301 // omit the closing php tag ? > for avoid issues -
onwebchat/trunk/readme.txt
r3420076 r3429109 5 5 Requires at least: 4.7 6 6 Requires PHP: 5.4 7 Stable tag: 3. 4.17 Stable tag: 3.5.0 8 8 License: GPLv2 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Enhance customer service with our live chat plugin, featuring AI chatbot support for 24/7 visitor engagement. 11 Enhance customer service with our live chat plugin, featuring AI chatbot support for 24/7 visitor engagement. Now with WooCommerce integration, so your AI chatbot knows your products and helps customers instantly! 12 12 13 13 == Description == … … 24 24 Key Features & Benefits: 25 25 26 <li>**Real-Time Monitoring:** Track user behavior on your website.</li>27 26 <li>**AI Chatbot:** Provide instant, automated support 24/7.</li> 28 <li>**AI Text Correction:** Enhance your writing and correct errors effortlessly.</li> 29 <li>**Customizable Widget:** Fully personalize the look and feel to match your brand.</li> 30 <li>**Mobile Support:** Use our iOS and Android apps to support your visitors on the go.</li> 31 <li>**Live Chat Triggers:** Automatically engage visitors based on behavior.</li> 32 <li>**Department Routing:** Assign chats to the appropriate operator.</li> 33 <li>**Chat Ratings:** Collect feedback directly from your visitors.</li> 34 <li>**Typing Insights:** See what visitors are typing in real-time.</li> 35 <li>**Transferability:** Easily transfer conversations between operators.</li> 36 <li>**Metrics & Analytics:** Measure performance.</li> 27 <li>**WooCommerce Integration:** Automatically sync your products so the AI chatbot understands your catalog and answers product questions accurately.</li> 28 <li>**AI Text Correction:** Improve replies and fix writing errors effortlessly.</li> 29 <li>**Customizable Widget:** Fully personalize the design to match your brand.</li> 30 <li>**Real-Time Monitoring:** See who is on your website and what they are doing.</li> 31 <li>**Mobile Support:** Manage chats on the go with iOS and Android apps.</li> 32 <li>**Live Chat Triggers:** Automatically engage visitors based on their behavior.</li> 33 <li>**Department Routing:** Route chats to the right team or agent.</li> 34 <li>**Chat Ratings:** Collect instant feedback from your visitors.</li> 35 <li>**Typing Insights:** See what visitors are typing in real time.</li> 36 <li>**Transferability:** Easily transfer conversations between agents.</li> 37 <li>**Metrics & Analytics:** Track performance and improve your support strategy.</li> 37 38 <li>**Data Security:** GDPR-compliant and SSL-secured.</li> 38 39 39 40 ...and much more! 40 41 41 Enhance Customer Experience: 42 <li>Free direct chats</li> 43 <li>Offline email messaging</li> 44 <li>In-page chat integration</li> 45 <li>Easy file sharing</li> 42 Enhance the Customer Experience: 43 <li>Free real-time chat with your visitors</li> 44 <li>Fast 24/7 answers to every question with the AI chatbot</li> 45 <li>Offline email messaging when agents are unavailable</li> 46 <li>Seamless in-page chat integration</li> 47 <li>Easy file sharing during conversations</li> 46 48 47 Your customers will love the convenience!49 Your customers will love the speed, convenience, and always-available support. 48 50 49 51 **Need Assistance?** … … 63 65 == Frequently Asked Questions == 64 66 67 = How does WooCommerce integration work? = 68 69 If you have WooCommerce installed, you can enable automatic product synchronization in the onWebChat settings. This allows your AI chatbot to learn about your products and provide accurate product information to customers. Products are automatically synced when created, updated, or deleted. You can also perform a bulk sync of all existing products. 70 71 = Is my WooCommerce data secure when syncing? = 72 73 Absolutely! Product sync uses HMAC-SHA256 authentication with a unique secret key. Only essential product information (name, description, URL) is synced - no customer data, orders, or sensitive information is transmitted. 74 65 75 = How can I integrate the AI chatbot into my website? = 66 76 … … 77 87 = How is the AI chatbot priced? = 78 88 79 You can try our beta AI bot with 50 free bot credits that we provide with registration. To use the AI chatbot, you'll need to be on our Pro AI plan with at least one operator. Pricing starts at $6 for 200 chat dialogs (chat sessions), with lower prices available if you want to buy more chatbot credits.89 You can try our beta AI bot with 50 free bot credits that we provide with registration. To use the AI chatbot, you'll need to be on our Pro AI plan with at least one agent. Pricing starts at $6 for 200 chat dialogs (chat sessions), with lower prices available if you want to buy more chatbot credits. 80 90 81 91 = Can the AI bot understand questions, even those with errors, in any language? = … … 97 107 = Can I hide live chat widget when I am offline? = 98 108 99 Certainly. Just deselect "use offline form" in your Operator Console.109 Certainly. Just deselect "use offline form" in your dashboard. 100 110 101 111 = Is there a white-label option? = … … 107 117 Absolutely. Monitor real-time visitor activity, including geolocation, browsing behavior, and more. 108 118 109 = Can chats be transferred between operators? =119 = Can chats be transferred between agents? = 110 120 111 Yes, active chats can be handed off to other available operators.121 Yes, active chats can be handed off to other available agents. 112 122 113 123 = Can I invite visitors to chat? = … … 125 135 = I'm not able to connect to my live chat account using email/password. Why? = 126 136 127 If your connection is blocked (e.g., by a firewall), use your Chat ID from the Operator Consoleto connect.137 If your connection is blocked (e.g., by a firewall), use your Chat ID from the dashboard to connect. 128 138 129 130 http://www.youtube.com/embed/YihmL6BpEvc131 139 132 140 133 141 == Screenshots == 134 142 1. Chat Dashboard 135 2. AI-powered chat interaction with a visitor136 3. Monitoring visitors in real-time143 2. Monitoring visitors in real-time 144 3. onWebChat plugin - WooCommerce settings 137 145 4. onWebChat live chat widget 138 146 == Changelog == 139 147 148 = onWebChat Live Chat (Chat version 3.5.0) = 149 * NEW: WooCommerce Product Sync - Automatically sync products for AI bot training 150 * NEW: Bulk sync feature with background processing 151 * NEW: Real-time product updates (create, update, delete) 152 * NEW: Admin UI for WooCommerce integration settings 153 * Enhanced AI chatbot with product knowledge capabilities 140 154 141 155 = onWebChat Live Chat (Chat version 3.4.1) =
Note: See TracChangeset
for help on using the changeset viewer.