Changeset 3239505
- Timestamp:
- 02/12/2025 03:50:31 PM (14 months ago)
- Location:
- activecampaign-for-woocommerce/trunk
- Files:
-
- 6 edited
-
README.txt (modified) (1 diff)
-
activecampaign-for-woocommerce.php (modified) (1 diff)
-
admin/scripts/activecampaign-for-woocommerce-settings-page.js (modified) (10 diffs)
-
admin/views/activecampaign-for-woocommerce-admin-display.php (modified) (5 diffs)
-
includes/class-activecampaign-for-woocommerce-logger.php (modified) (1 diff)
-
includes/config/activecampaign-for-woocommerce-global-constants.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
activecampaign-for-woocommerce/trunk/README.txt
r3232769 r3239505 95 95 == Changelog == 96 96 97 = 2.8.5 2025-02-10 = 98 * Improvement - Browse Session Timeouts saved as minutes 99 97 100 = 2.8.4 2025-01-30 = 98 101 * Improvement - Recovered orders should track better -
activecampaign-for-woocommerce/trunk/activecampaign-for-woocommerce.php
r3232769 r3239505 17 17 * Plugin URI: https://www.activecampaign.com/ 18 18 * Description: Add Abandoned Cart functionality to your WooCommerce store, synchronize order & customer information using ActiveCampaign. 19 * Version: 2.8. 419 * Version: 2.8.5 20 20 * WC requires at least: 7.4.0 21 21 * WC tested up to: 9.6.0 -
activecampaign-for-woocommerce/trunk/admin/scripts/activecampaign-for-woocommerce-settings-page.js
r3232769 r3239505 8 8 let primaryProductInputField = document.getElementById('ba_product_url_patterns-1'); 9 9 if (primaryProductInputField) { 10 finalUrlList = (primaryProductInputField.value != '') ? JSON.parse(primaryProductInputField.value) : [];10 finalUrlList = (primaryProductInputField.value !== '') ? JSON.parse(primaryProductInputField.value) : []; 11 11 } 12 12 13 13 for(let i = 0; i < finalUrlList.length;i++) { 14 if(i == 0) {14 if(i === 0) { 15 15 compiledProductInputField.value = primaryProductInputField.value 16 16 primaryProductInputField.value = finalUrlList[i]; … … 130 130 let validUrlPatternVariables = ['sku', 'storePrimaryId', 'storeBaseProductId', 'upc', 'baseProductUrlSlug', 'variantProductUrlSlug']; 131 131 const regexp = /\{\{(.*?)}}/g; 132 133 if(pattern == '') { 132 if('' === pattern) { 134 133 return true; 135 134 } … … 143 142 // https://my-woocommerce-store.shop/**/products/{{id}} 144 143 const matches = [...pattern.matchAll(regexp)] 145 if ( matches.length !== 1) {144 if (1 !== matches.length) { 146 145 return false; 147 146 } else { … … 168 167 let div = button.parentElement; 169 168 let oldValue = div.firstChild.value; 170 let usable_id = div.firstChild.getAttribute(' id').split('-')[1];169 let usable_id = div.firstChild.getAttribute('ref'); 171 170 let baProductField = document.getElementById('ba_product_url_patterns'); 171 172 172 let indexofRemoval = finalUrlList.indexOf(oldValue); 173 173 174 174 // Remove pattern from final result and add that id to usable list 175 175 finalUrlList.splice(indexofRemoval,1); 176 if( finalUrlList.length == 0) {176 if(0 === finalUrlList.length) { 177 177 baProductField.value = ''; 178 178 } else { … … 184 184 } 185 185 function updateMainProductUrlFormField(ev) { 186 let patternUrlInputFieldId = ev.currentTarget.getAttribute('id').split('-')[1];187 let patternUrlInputField = document.getElementById('ba_product_url_patterns-'+patternUrlInputFieldId);188 let removalButtonField = document.getElementById('ba_product_url_patterns_rmv-'+patternUrlInputFieldId);189 let pattern = patternUrlInputField.value;190 186 let baProductField = document.getElementById('ba_product_url_patterns'); 191 187 let showSaveToolTip = document.getElementById('ba_product_url_save_tooltip'); 192 188 189 let patternUrlInputFieldId = ev.currentTarget.getAttribute('id'); 190 let patternUrlInputFieldRef = Number(ev.currentTarget.getAttribute('ref')); 191 let itemIndex = patternUrlInputFieldRef - 1; 192 let removalButtonField = document.getElementById('ba_product_url_patterns_rmv-'+patternUrlInputFieldRef); 193 let patternUrlInputField = document.getElementById('ba_product_url_patterns-'+patternUrlInputFieldRef); 194 let pattern = patternUrlInputField.value; 195 193 196 if(!finalUrlList.includes(pattern)) { 194 if (validProductUrlPattern(pattern) && pattern != '') { 195 finalUrlList.splice(patternUrlInputField - 1,1) 196 finalUrlList.push(pattern); 197 if (validProductUrlPattern(pattern) && '' !== '' !== pattern) { 198 finalUrlList.splice(itemIndex,1, pattern); 197 199 baProductField.value = JSON.stringify(finalUrlList); 198 200 removalButtonField.style.display = 'block' … … 217 219 218 220 for(let i = 0; i < allInputs.length; i++) { 219 if(allInputs[i].id.indexOf('ba_product_url_patterns-') == 0) {221 if(allInputs[i].id.indexOf('ba_product_url_patterns-') === 0) { 220 222 productPatternInputs.push(allInputs[i]); 221 223 } … … 225 227 let freeId = productPatternInput.getAttribute('id').split('-')[1] 226 228 227 if (freeId == 1) {229 if (freeId === 1) { 228 230 productPatternInput.value = '' 229 231 } else { … … 248 250 input.type = "text"; 249 251 input.setAttribute('id', 'ba_product_url_patterns-' + id); 252 input.setAttribute('ref', id); 250 253 input.setAttribute('class', 'ba_product_url_inputs'); 251 254 input.setAttribute('size', 23); 255 256 if(document.getElementsByClassName("ba_product_url_inputs").length <= 0) { 257 input.setAttribute('placeholder', 'Enter a custom regex here ex. https://yoursite.com/shop/{{baseProductUrlSlug}}') 258 } 252 259 input.onchange = function(e) { 253 260 updateMainProductUrlFormField(e); … … 260 267 remove.setAttribute('id', 'ba_product_url_patterns_rmv-' + id); 261 268 remove.setAttribute('class', 'activecampaign-for-woocommerce button removal'); 269 remove.setAttribute('ref', id); 262 270 remove.setAttribute("type", "button"); 263 271 remove.style.display = removeDisplayValue; … … 273 281 reqs.appendChild(listItem); 274 282 } 275 $("#ac-add-ba_product_url").click(function(e){ 283 284 $("#ac-add-ba_product_url").click(function(e){ 276 285 if (cobraListOfValidProductIds.length > 0) { 277 286 let item_id = cobraListOfValidProductIds.shift(); -
activecampaign-for-woocommerce/trunk/admin/views/activecampaign-for-woocommerce-admin-display.php
r3232769 r3239505 17 17 18 18 19 $activecampaign_for_woocommerce_ba_product_url_patterns_placeholder_text = esc_html__( 'Enter a custom regex here ', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN );19 $activecampaign_for_woocommerce_ba_product_url_patterns_placeholder_text = esc_html__( 'Enter a custom regex here ex. https://yoursite.com/shop/{{baseProductUrlSlug}}', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ); 20 20 21 21 // Default values … … 179 179 $activecampaign_for_woocommerce_ba_product_url_patterns = esc_html( sanitize_text_field( $activecampaign_for_woocommerce_settings['ba_product_url_patterns'] ) ); 180 180 } else { 181 $activecampaign_for_woocommerce_ba_product_url_patterns = json_encode( $activecampaign_for_woocommerce_ba_product_url_default_patterns );181 $activecampaign_for_woocommerce_ba_product_url_patterns = wp_json_encode( $activecampaign_for_woocommerce_ba_product_url_default_patterns ); 182 182 } 183 183 … … 214 214 ); 215 215 $activecampaign_for_woocommerce_ba_session_timeout_options = array( 216 ' 1' => esc_html__( '1 hour', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ),217 ' 3' => esc_html__( '3 hours (recommended)', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ),218 ' 8' => esc_html__( '8 hours', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ),219 ' 24' => esc_html__( '24 hours', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ),216 '60' => esc_html__( '1 hour', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ), 217 '180' => esc_html__( '3 hours (recommended)', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ), 218 '480' => esc_html__( '8 hours', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ), 219 '1440' => esc_html__( '24 hours', ACTIVECAMPAIGN_FOR_WOOCOMMERCE_LOCALIZATION_DOMAIN ), 220 220 ); 221 221 $activecampaign_for_woocommerce_ba_product_url_valid_variables = array( 'sku', 'storePrimaryId', 'storeBaseProductId', 'upc', 'baseProductUrlSlug', 'variantProductUrlSlug' ); … … 345 345 <input type="hidden" name="abcart_wait" value="<?php echo esc_html( key( $activecampaign_for_woocommerce_ab_cart_options ) ); ?>"> 346 346 <input type="hidden" name="ba_min_page_view_time" value="<?php echo esc_html( key( $activecampaign_for_woocommerce_browse_abandonment_minimum_page_view_time_options ) ); ?>"> 347 <input type="hidden" name="ba_product_url_patterns" value="<?php echo esc_html( stripslashes_deep( json_encode( $activecampaign_for_woocommerce_ba_product_url_default_patterns ) ) ); ?>">347 <input type="hidden" name="ba_product_url_patterns" value="<?php echo esc_html( stripslashes_deep( wp_json_encode( $activecampaign_for_woocommerce_ba_product_url_default_patterns ) ) ); ?>"> 348 348 <input type="hidden" name="ba_session_timeout" value="<?php echo esc_html( key( $activecampaign_for_woocommerce_ba_session_timeout_options ) ); ?>"> 349 349 <input type="hidden" id="browse_tracking" name="browse_tracking" value="0"> … … 600 600 <ul id="additional_ba_product_url_patterns_list"> 601 601 <li> 602 <input type="text" name="ba_product_url_patterns-1" class="ba_product_url_inputs" id="ba_product_url_patterns-1" size="23"602 <input type="text" name="ba_product_url_patterns-1" class="ba_product_url_inputs" id="ba_product_url_patterns-1" ref="1" size="23" 603 603 placeholder="<?php echo esc_html( $activecampaign_for_woocommerce_ba_product_url_patterns_placeholder_text ); ?>" 604 604 value="<?php echo esc_html( stripslashes_deep( $activecampaign_for_woocommerce_ba_product_url_patterns ) ); ?>"> -
activecampaign-for-woocommerce/trunk/includes/class-activecampaign-for-woocommerce-logger.php
r3220303 r3239505 71 71 */ 72 72 private $ac_debug_excess; 73 74 /** 75 * Subname 76 * 77 * @var string 78 */ 79 private $plugin_subname; 73 80 74 81 /** -
activecampaign-for-woocommerce/trunk/includes/config/activecampaign-for-woocommerce-global-constants.php
r3232769 r3239505 26 26 */ 27 27 if ( ! defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION' ) ) { 28 define( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION', '2.8. 4' );28 define( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION', '2.8.5' ); 29 29 } 30 30
Note: See TracChangeset
for help on using the changeset viewer.