Changeset 1744693
- Timestamp:
- 10/11/2017 11:03:10 AM (8 years ago)
- Location:
- chatx-ai
- Files:
-
- 130 added
- 8 edited
-
tags/0.1.6 (added)
-
tags/0.1.6/admin (added)
-
tags/0.1.6/admin/assets (added)
-
tags/0.1.6/admin/assets/css (added)
-
tags/0.1.6/admin/assets/css/chatx-ai-admin.css (added)
-
tags/0.1.6/admin/assets/img (added)
-
tags/0.1.6/admin/assets/img/chatxai-logo.svg (added)
-
tags/0.1.6/admin/assets/js (added)
-
tags/0.1.6/admin/assets/js/chatx-ai-admin.js (added)
-
tags/0.1.6/admin/assets/js/dashboard.js (added)
-
tags/0.1.6/admin/class-chatx-ai-admin.php (added)
-
tags/0.1.6/admin/controllers (added)
-
tags/0.1.6/admin/controllers/abstract.php (added)
-
tags/0.1.6/admin/controllers/dashboard.php (added)
-
tags/0.1.6/admin/controllers/settings.php (added)
-
tags/0.1.6/admin/dashboard-widgets (added)
-
tags/0.1.6/admin/dashboard-widgets/abstract.php (added)
-
tags/0.1.6/admin/dashboard-widgets/chart-abandoned-carts.php (added)
-
tags/0.1.6/admin/dashboard-widgets/chart-abstract.php (added)
-
tags/0.1.6/admin/dashboard-widgets/chart-recovered-carts.php (added)
-
tags/0.1.6/admin/dashboard-widgets/free-trial.php (added)
-
tags/0.1.6/admin/dashboard-widgets/payments.php (added)
-
tags/0.1.6/admin/index.php (added)
-
tags/0.1.6/admin/settings-tabs (added)
-
tags/0.1.6/admin/settings-tabs/abstract.php (added)
-
tags/0.1.6/admin/settings-tabs/billing.php (added)
-
tags/0.1.6/admin/settings-tabs/chatbot.php (added)
-
tags/0.1.6/admin/settings-tabs/general.php (added)
-
tags/0.1.6/admin/views (added)
-
tags/0.1.6/admin/views/cart-modal.php (added)
-
tags/0.1.6/admin/views/page-dashboard.php (added)
-
tags/0.1.6/admin/views/page-settings.php (added)
-
tags/0.1.6/admin/views/payments-table.php (added)
-
tags/0.1.6/admin/views/settings-form.php (added)
-
tags/0.1.6/chatx-ai.php (added)
-
tags/0.1.6/includes (added)
-
tags/0.1.6/includes/class-chatx-ai-activator.php (added)
-
tags/0.1.6/includes/class-chatx-ai-deactivator.php (added)
-
tags/0.1.6/includes/class-chatx-ai-i18n.php (added)
-
tags/0.1.6/includes/class-chatx-ai-loader.php (added)
-
tags/0.1.6/includes/class-chatx-ai-options.php (added)
-
tags/0.1.6/includes/class-chatx-ai-reports.php (added)
-
tags/0.1.6/includes/class-chatx-ai-rest-api.php (added)
-
tags/0.1.6/includes/class-chatx-ai.php (added)
-
tags/0.1.6/includes/index.php (added)
-
tags/0.1.6/includes/lib (added)
-
tags/0.1.6/includes/lib/clean.php (added)
-
tags/0.1.6/includes/lib/config.php (added)
-
tags/0.1.6/includes/lib/format.php (added)
-
tags/0.1.6/includes/lib/helpers.php (added)
-
tags/0.1.6/includes/lib/notices.php (added)
-
tags/0.1.6/includes/lib/wp-orm (added)
-
tags/0.1.6/includes/lib/wp-orm/.gitignore (added)
-
tags/0.1.6/includes/lib/wp-orm/LICENSE.md (added)
-
tags/0.1.6/includes/lib/wp-orm/README.md (added)
-
tags/0.1.6/includes/lib/wp-orm/composer.json (added)
-
tags/0.1.6/includes/lib/wp-orm/composer.lock (added)
-
tags/0.1.6/includes/lib/wp-orm/src (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Admin (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Admin/AdminHelper.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Admin/ListTable.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/BaseModel.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Model (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Model/Comment.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Model/Page.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Model/Post.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Model/User.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/ModelInterface.php (added)
-
tags/0.1.6/includes/lib/wp-orm/src/Query.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/autoload.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/ClassLoader.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/LICENSE (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/autoload_classmap.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/autoload_namespaces.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/autoload_psr4.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/autoload_real.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/autoload_static.php (added)
-
tags/0.1.6/includes/lib/wp-orm/vendor/composer/installed.json (added)
-
tags/0.1.6/includes/lib/wp-orm/views (added)
-
tags/0.1.6/includes/lib/wp-orm/views/list-table.php (added)
-
tags/0.1.6/includes/lib/wp-orm/wp-orm.php (added)
-
tags/0.1.6/includes/modules (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/abandoned-carts-manager.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/abandoned-carts-tracking.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/admin.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers/abstract.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers/carts.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers/guests.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers/restored-carts.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/controllers/tests.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/report-list-table.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/reports (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/reports/carts.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/reports/dev_carts.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/reports/guests.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/reports/restored-carts.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/views (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/admin/views/page-table-with-sidebar.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/autoload.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/lib (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/lib/models (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/lib/models/AbandonedCart.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/lib/models/RestoredCart.php (added)
-
tags/0.1.6/includes/modules/abandoned_carts_tracking/lib/order.php (added)
-
tags/0.1.6/includes/modules/session_tracker (added)
-
tags/0.1.6/includes/modules/session_tracker/autoload.php (added)
-
tags/0.1.6/includes/modules/session_tracker/lib (added)
-
tags/0.1.6/includes/modules/session_tracker/lib/models (added)
-
tags/0.1.6/includes/modules/session_tracker/lib/models/Guest.php (added)
-
tags/0.1.6/includes/modules/session_tracker/session-tracker.php (added)
-
tags/0.1.6/index.php (added)
-
tags/0.1.6/languages (added)
-
tags/0.1.6/languages/chatx-ai.pot (added)
-
tags/0.1.6/public (added)
-
tags/0.1.6/public/class-chatx-ai-public.php (added)
-
tags/0.1.6/public/css (added)
-
tags/0.1.6/public/css/chatx-ai-public.css (added)
-
tags/0.1.6/public/index.php (added)
-
tags/0.1.6/public/js (added)
-
tags/0.1.6/public/js/chatx-ai-public.js (added)
-
tags/0.1.6/public/partials (added)
-
tags/0.1.6/public/partials/checkbox-plugin.php (added)
-
tags/0.1.6/public/partials/send-to-messenger-plugin.php (added)
-
tags/0.1.6/readme.txt (added)
-
tags/0.1.6/uninstall.php (added)
-
trunk/chatx-ai.php (modified) (1 diff)
-
trunk/includes/class-chatx-ai-rest-api.php (modified) (1 diff)
-
trunk/includes/lib/config.php (modified) (1 diff)
-
trunk/public/class-chatx-ai-public.php (modified) (4 diffs)
-
trunk/public/css/chatx-ai-public.css (modified) (1 diff)
-
trunk/public/js/chatx-ai-public.js (modified) (13 diffs)
-
trunk/public/partials/checkbox-plugin.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
chatx-ai/trunk/chatx-ai.php
r1742261 r1744693 4 4 * Plugin URI: https://chatx.ai 5 5 * Description: Recover abandoned carts on WooCommerce using an intelligent Facebook Messenger chatbot. 6 * Version: 0.1. 56 * Version: 0.1.6 7 7 * Author: chatx.ai 8 8 * Author URI: https://chatx.ai -
chatx-ai/trunk/includes/class-chatx-ai-rest-api.php
r1742261 r1744693 351 351 'button-selector' => isset($template['button-selector']) ? $template['button-selector'] : null, 352 352 'type' => isset($template['type']) ? $template['type'] : null, 353 'bubble' => isset($template['bubble']) ? $template['bubble'] : null 353 354 ]; 354 355 -
chatx-ai/trunk/includes/lib/config.php
r1733642 r1744693 4 4 // define('CHATX_BAESURL', 'https://bman-bot.herokuapp.com'); 5 5 define('CHATX_BAESURL', 'https://app.chatx.ai'); 6 // define('CHATX_BAESURL', 'https://chatx-dev.herokuapp.com');6 //define('CHATX_BAESURL', 'https://chatx-dev.herokuapp.com'); -
chatx-ai/trunk/public/class-chatx-ai-public.php
r1742261 r1744693 163 163 'type' => 'form', 164 164 'button-selector' => '', 165 'template' => null 165 'template' => null, 166 'bubble' => '' 166 167 ], $atts, 'messenger_checkbox'); 167 168 … … 185 186 'campaign' => 'add_to_cart_form', 186 187 'type' => $atts['type'], 187 'button-selector' => $atts['button-selector'] 188 'button-selector' => $atts['button-selector'], 189 'bubble' => '173 customers got amazing discounts by checking this.' 188 190 ]; 189 191 Chatx_Ai_Options::update('chatxai_checkbox_templates', $checkbox_templates); … … 195 197 'campaign' => 'add_to_cart_form', 196 198 'type' => 'button', 197 'button-selector' => '.product a.add_to_cart_button,.product button.add_to_cart_button' 199 'button-selector' => '.product a.add_to_cart_button,.product button.add_to_cart_button', 200 'bubble' => '173 customers got amazing discounts by checking this.' 198 201 ]; 199 202 Chatx_Ai_Options::update('chatxai_checkbox_templates', $checkbox_templates); … … 208 211 $atts['type'] = isset($foundTemplate['type']) ? $foundTemplate['type'] : ''; 209 212 $atts['button-selector'] = isset($foundTemplate['button-selector']) ? $foundTemplate['button-selector'] : ''; 213 $atts['bubble'] = isset($foundTemplate['bubble']) ? $foundTemplate['bubble'] : '173 customers got amazing discounts by checking this.'; 210 214 } 211 215 } -
chatx-ai/trunk/public/css/chatx-ai-public.css
r1733642 r1744693 3 3 * included in this file. 4 4 */ 5 6 .chatx-clearfix:after { 7 visibility: hidden; 8 display: block; 9 font-size: 0; 10 content: " "; 11 clear: both; 12 height: 0; 13 } 14 15 .chatx-clearfix { 16 display: inline-block; 17 } 18 19 * html .chatx-clearfix { 20 height: 1%; 21 } 22 23 .chatx-clearfix { 24 display: block; 25 } 26 27 .chatx-checkbox-plugin, 28 .chatx-checkbox-plugin-container { 29 position: relative; 30 } 31 32 .chatx-speech-bubble { 33 position: absolute; 34 top: 65px; 35 left: 0; 36 z-index: 12; 37 margin: 0 auto; 38 padding: 10px; 39 width: 300px; 40 height: 65px; 41 border-radius: 5px; 42 transform: rotate(4deg) rotateY(15deg) translate3d(0, 0, 0); 43 background: #717171; 44 font-size: 15px; 45 line-height: normal; 46 text-align: center; 47 display: none; 48 } 49 50 .chatx-modal-close { 51 background: #f9f9f9; 52 border-radius: 50%; 53 width: 30px; 54 height: 30px; 55 position: absolute; 56 right: -10px; 57 top: -10px; 58 border: solid 2px #717171; 59 font-size: 20px; 60 padding: 0; 61 outline: none; 62 } 63 64 .chatx-speech-bubble:before, 65 .chatx-speech-bubble:after { 66 position: absolute; 67 z-index: -1; 68 content: ''; 69 } 70 71 .chatx-speech-bubble:after { 72 top: 0; 73 right: 0; 74 bottom: 0; 75 left: 0; 76 border-radius: inherit; 77 background: #fff; 78 transform: rotate(0deg) translate(-.01em, 0.01em) scaleX(0.987) scaleY(0.95); 79 } 80 81 .chatx-speech-bubble:before { 82 border: solid 0 transparent; 83 border-left: solid 50px #fff; 84 border-top: solid 6px #717171; 85 top: 1px; 86 left: 24px; 87 width: 0; 88 height: 1em; 89 transform: rotate(45deg) skewX(75deg); 90 } 91 92 .chatx-speech-bubble p{ 93 font-size: 13px; 94 } 95 96 97 .chatx-checkbox-plugin .chatx-circle-mark { 98 position: absolute; 99 border: solid 2px #717171; 100 border-radius: 50%; 101 display: block; 102 width: 30px; 103 height: 30px; 104 top: 9px; 105 left: 5px; 106 z-index: 123; 107 display: none; 108 } 109 110 .chatx-checkbox-plugin.unchecked .chatx-circle-mark { 111 display: block; 112 } 113 114 .chatx-checkbox-plugin.unchecked:hover .chatx-circle-mark { 115 display: none; 116 } 117 118 .chatx-checkbox-plugin.unchecked .chatx-speech-bubble { 119 display: block; 120 animation: shake 4s cubic-bezier(.36, .07, .19, .97) both; 121 animation-iteration-count: infinite; 122 backface-visibility: hidden; 123 perspective: 1000px; 124 } 125 126 @keyframes shake { 127 1%, 128 9% { 129 transform: rotate(4deg) rotateY(15deg) translate3d(-1px, 0, 0); 130 } 131 132 2%, 133 8% { 134 transform: rotate(4deg) rotateY(15deg) translate3d(2px, 0, 0); 135 } 136 137 3%, 138 5%, 139 7% { 140 transform: rotate(4deg) rotateY(15deg) translate3d(-4px, 0, 0); 141 } 142 143 4%, 144 6%, 145 10% { 146 transform: rotate(4deg) rotateY(15deg) translate3d(4px, 0, 0); 147 } 148 149 90% { 150 transform: rotate(4deg) rotateY(15deg) translate3d(4px, 0, 0); 151 } 152 } -
chatx-ai/trunk/public/js/chatx-ai-public.js
r1739526 r1744693 1 1 var ChatxAI = { 2 canClick: false, 2 3 startup: function() { 3 4 this.loadFB(); 5 this.initBubble(); 6 7 /* 8 jQuery('[name="add-to-cart"]').on('mousemove', function(event) { 9 var offset = jQuery(this).offset(); 10 11 var btnX = event.pageX - offset.left; 12 var btnY = event.pageY - offset.top; 13 14 ChatxAI.canClick = true; 15 16 jQuery('.chatx-checkbox-plugin').css({ 17 position: "fixed", 18 opacity: "0.4", 19 left: (event.pageX) + "px", 20 top: (event.pageY) + "px", 21 height: "12px", 22 width: "12px", 23 overflow: "hidden" 24 }); 25 26 jQuery("html").css("cursor", "pointer"); 27 28 jQuery('.chatx-checkbox-plugin .fb-messenger-checkbox').css({ 29 position: "relative", 30 top: "-18px", 31 left: "-15px" 32 }) 33 }); 34 */ 35 }, 36 cookies: { 37 set: function(name, value, hours) { 38 var expires = ""; 39 if (hours) { 40 var date = new Date(); 41 date.setTime(date.getTime() + (hours * 60 * 60 * 1000)); 42 expires = "; expires=" + date.toUTCString(); 43 } 44 document.cookie = name + "=" + value + expires + "; path=/"; 45 }, 46 get: function(name) { 47 var nameEQ = name + "="; 48 var ca = document.cookie.split(';'); 49 for (var i = 0; i < ca.length; i++) { 50 var c = ca[i]; 51 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 52 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 53 } 54 return null; 55 }, 56 erase: function(name) { 57 this.set(name, "", -1); 58 } 59 }, 60 initBubble:function(){ 61 jQuery(document).on('click', '.chatx-modal-close', function(event) { 62 jQuery('.chatx-checkbox-plugin').removeClass('unchecked'); 63 ChatxAI.cookies.set('chatx_speech_bubble_show', 1, 6); 64 event.preventDefault(); 65 return false; 66 }); 4 67 }, 5 68 startupFB: function() { … … 12 75 13 76 jQuery('.fb-send-to-messenger').each(function(index, el) { 14 fb_app_id = jQuery(el).attr('messenger_app_id');77 fb_app_id = jQuery(el).attr('messenger_app_id'); 15 78 }); 16 79 … … 31 94 var checkboxState = e.state; 32 95 ChatxAI.log("Checkbox state: " + checkboxState); 96 if (checkboxState == "unchecked") { 97 if(parseInt(ChatxAI.cookies.get('chatx_speech_bubble_show')) !== 1){ 98 jQuery('.chatx-checkbox-plugin').addClass('unchecked'); 99 } 100 } 101 if (checkboxState == "checked") { 102 jQuery('.chatx-checkbox-plugin').removeClass('unchecked'); 103 } 33 104 } else if (e.event == 'not_you') { 34 105 ChatxAI.log("User clicked 'not you'"); … … 42 113 loadFB: function() { 43 114 var oldCB = window.fbAsyncInit; 44 window.fbAsyncInit = function() {45 if (typeof oldCB === 'function'){115 window.fbAsyncInit = function() { 116 if (typeof oldCB === 'function') { 46 117 oldCB(); 47 118 } 48 119 49 120 ChatxAI.startupFB(); 50 };121 }; 51 122 52 123 (function(d, s, id) { … … 62 133 }, 63 134 confirmOptIn: function(data) { 64 if (!data) return;135 if (!data) return; 65 136 66 137 FB.AppEvents.logEvent('MessengerCheckboxUserConfirmation', null, { … … 93 164 ChatxAI.log(checkboxType == "form" ? $el.closest('form') : jQuery($el.data('button-selector'))); 94 165 95 if (checkboxType == "button"){166 if (checkboxType == "button") { 96 167 jQuery($el.data('button-selector')).data('settings', settings); 97 168 jQuery('body').on('click', $el.data('button-selector'), function(event) { 98 if (!ChatxAI.doTriggerButton(jQuery(this))){169 if (!ChatxAI.doTriggerButton(jQuery(this))) { 99 170 event.preventDefault(); 100 171 event.stopPropagation(); … … 102 173 } 103 174 }); 104 } 105 else{ 175 } else { 106 176 $el.closest('form').data('settings', settings); 107 177 $el.closest('form').on('submit', function(event) { 108 if (!ChatxAI.doTriggerForm(jQuery(this))){178 if (!ChatxAI.doTriggerForm(jQuery(this))) { 109 179 event.preventDefault(); 110 180 event.stopPropagation(); … … 114 184 } 115 185 }, 116 getElementData: function($element) {117 var elementSettings = $element.data('settings');118 if(elementSettings){186 getElementData: function($element) { 187 var elementSettings = $element.data('settings'); 188 if (elementSettings) { 119 189 return { 120 190 app_id: elementSettings.messenger_app_id, … … 126 196 return null; 127 197 }, 128 doTriggerForm: function($element) {198 doTriggerForm: function($element) { 129 199 ChatxAI.log('Trigger form called'); 130 if (!$element.data('triggered')){200 if (!$element.data('triggered')) { 131 201 ChatxAI.log('Form not triggered. Confirm the checkbox ... '); 132 202 var data = ChatxAI.getElementData($element); … … 137 207 $element.find('[type="submit"]').attr('disabled', 'true'); 138 208 139 setTimeout(function() {209 setTimeout(function() { 140 210 $element.find('[type="submit"]').removeAttr('disabled').click(); 141 211 }, 500) … … 147 217 return true; 148 218 }, 149 doTriggerButton: function($element) {219 doTriggerButton: function($element) { 150 220 ChatxAI.log('Trigger button called'); 151 if (!$element.data('triggered')){221 if (!$element.data('triggered')) { 152 222 ChatxAI.log('Button not triggered. Confirm the checkbox ... '); 153 223 var data = ChatxAI.getElementData($element); … … 159 229 $element.attr('disabled', 'true'); 160 230 161 setTimeout(function() {231 setTimeout(function() { 162 232 $element.removeAttr('disabled'); 163 233 $element.get(0).click(); … … 170 240 return true; 171 241 }, 172 isDev: function() {242 isDev: function() { 173 243 return document.cookie.indexOf('chatxdev=') !== -1; 174 244 }, 175 log: function(log) {176 if (!this.isDev()) return;177 if (typeof log == "object"){245 log: function(log) { 246 if (!this.isDev()) return; 247 if (typeof log == "object") { 178 248 return console.log(log); 179 249 } -
chatx-ai/trunk/public/partials/checkbox-plugin.php
r1733642 r1744693 1 <div 2 class="chatx-checkbox-plugin" 3 data-type="<?php echo $atts['type']; ?>" 4 data-button-selector="<?php echo $atts['button-selector']; ?>" 5 data-messenger_app_id="<?php echo $mess_app_id; ?>" 6 data-page_id="<?php echo $page_id; ?>" 7 data-origin="<?php echo $origin; ?>" 8 data-user_ref="<?php echo $user_ref; ?>"> 1 <div class="chatx-clearfix"></div> 2 <div class="chatx-checkbox-plugin-container"> 3 <div 4 class="chatx-checkbox-plugin" 5 data-type="<?php echo $atts['type']; ?>" 6 data-button-selector="<?php echo $atts['button-selector']; ?>" 7 data-messenger_app_id="<?php echo $mess_app_id; ?>" 8 data-page_id="<?php echo $page_id; ?>" 9 data-origin="<?php echo $origin; ?>" 10 data-user_ref="<?php echo $user_ref; ?>"> 11 12 <div class="chatx-speech-bubble"> 13 <button type="button" class="chatx-modal-close">×</button> 14 <p><?php echo $atts['bubble']; ?></p> 15 </div> 16 17 <span class="chatx-circle-mark"></span> 18 </div> 9 19 </div> -
chatx-ai/trunk/readme.txt
r1742261 r1744693 3 3 Tags: abandoned cart, recover abandoned cart, woocommerce, chatbot, facebook messenger 4 4 Tested up to: 4.8.2 5 Stable tag: 0.1. 55 Stable tag: 0.1.6 6 6 Requires at least: 3.0 7 7 … … 38 38 39 39 == Changelog == 40 = 0.1.6 = 41 * Added a quick fix for the checkbox not being checked by default. 42 40 43 = 0.1.5 = 41 44 * Fixed issue for when you don't have WooCommerce installed or active and you try to activate ChatX.
Note: See TracChangeset
for help on using the changeset viewer.