Plugin Directory

Changeset 3239505


Ignore:
Timestamp:
02/12/2025 03:50:31 PM (14 months ago)
Author:
acteamintegrations
Message:

Version 2.8.5

Location:
activecampaign-for-woocommerce/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • activecampaign-for-woocommerce/trunk/README.txt

    r3232769 r3239505  
    9595== Changelog ==
    9696
     97= 2.8.5 2025-02-10 =
     98* Improvement - Browse Session Timeouts saved as minutes
     99
    97100= 2.8.4 2025-01-30 =
    98101* Improvement - Recovered orders should track better
  • activecampaign-for-woocommerce/trunk/activecampaign-for-woocommerce.php

    r3232769 r3239505  
    1717 * Plugin URI:           https://www.activecampaign.com/
    1818 * Description:          Add Abandoned Cart functionality to your WooCommerce store, synchronize order & customer information using ActiveCampaign.
    19  * Version:              2.8.4
     19 * Version:              2.8.5
    2020 * WC requires at least: 7.4.0
    2121 * WC tested up to:      9.6.0
  • activecampaign-for-woocommerce/trunk/admin/scripts/activecampaign-for-woocommerce-settings-page.js

    r3232769 r3239505  
    88    let primaryProductInputField = document.getElementById('ba_product_url_patterns-1');
    99    if (primaryProductInputField) {
    10         finalUrlList = (primaryProductInputField.value != '') ? JSON.parse(primaryProductInputField.value) : [];
     10        finalUrlList = (primaryProductInputField.value !== '') ? JSON.parse(primaryProductInputField.value) : [];
    1111    }
    1212   
    1313    for(let i = 0; i < finalUrlList.length;i++) {
    14         if(i == 0) {
     14        if(i === 0) {
    1515            compiledProductInputField.value = primaryProductInputField.value
    1616            primaryProductInputField.value = finalUrlList[i];
     
    130130        let validUrlPatternVariables = ['sku', 'storePrimaryId', 'storeBaseProductId', 'upc', 'baseProductUrlSlug', 'variantProductUrlSlug'];
    131131        const regexp = /\{\{(.*?)}}/g;
    132 
    133         if(pattern == '') {
     132        if('' === pattern) {
    134133            return true;
    135134        }
     
    143142        // https://my-woocommerce-store.shop/**/products/{{id}}
    144143        const matches = [...pattern.matchAll(regexp)]
    145         if (matches.length !== 1) {
     144        if (1 !== matches.length) {
    146145            return false;
    147146        } else {
     
    168167        let div = button.parentElement;
    169168        let oldValue = div.firstChild.value;
    170         let usable_id = div.firstChild.getAttribute('id').split('-')[1];
     169        let usable_id = div.firstChild.getAttribute('ref');
    171170        let baProductField = document.getElementById('ba_product_url_patterns');
     171
    172172        let indexofRemoval = finalUrlList.indexOf(oldValue);
    173173
    174174        // Remove pattern from final result and add that id to usable list
    175175        finalUrlList.splice(indexofRemoval,1);
    176         if(finalUrlList.length == 0) {
     176        if(0 === finalUrlList.length) {
    177177            baProductField.value = '';
    178178        } else {
     
    184184    }
    185185    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;
    190186        let baProductField = document.getElementById('ba_product_url_patterns');
    191187        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
    193196        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);
    197199                baProductField.value = JSON.stringify(finalUrlList);
    198200                removalButtonField.style.display = 'block'
     
    217219
    218220        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) {
    220222                productPatternInputs.push(allInputs[i]);
    221223            }
     
    225227            let freeId = productPatternInput.getAttribute('id').split('-')[1]
    226228
    227             if (freeId == 1) {
     229            if (freeId === 1) {
    228230                productPatternInput.value = ''
    229231            } else {
     
    248250        input.type = "text";
    249251        input.setAttribute('id', 'ba_product_url_patterns-' + id);
     252        input.setAttribute('ref', id);
    250253        input.setAttribute('class', 'ba_product_url_inputs');
    251254        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        }
    252259        input.onchange = function(e) {
    253260            updateMainProductUrlFormField(e);
     
    260267        remove.setAttribute('id', 'ba_product_url_patterns_rmv-' + id);
    261268        remove.setAttribute('class', 'activecampaign-for-woocommerce button removal');
     269        remove.setAttribute('ref', id);
    262270        remove.setAttribute("type", "button");
    263271        remove.style.display = removeDisplayValue;
     
    273281        reqs.appendChild(listItem);
    274282    }
    275     $("#ac-add-ba_product_url").click(function(e){
     283
     284    $("#ac-add-ba_product_url").click(function(e){
    276285        if (cobraListOfValidProductIds.length > 0) {
    277286            let item_id = cobraListOfValidProductIds.shift();
  • activecampaign-for-woocommerce/trunk/admin/views/activecampaign-for-woocommerce-admin-display.php

    r3232769 r3239505  
    1717
    1818
    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 );
    2020
    2121// Default values
     
    179179        $activecampaign_for_woocommerce_ba_product_url_patterns = esc_html( sanitize_text_field( $activecampaign_for_woocommerce_settings['ba_product_url_patterns'] ) );
    180180    } 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 );
    182182    }
    183183
     
    214214);
    215215$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 ),
    220220);
    221221$activecampaign_for_woocommerce_ba_product_url_valid_variables                    = array( 'sku', 'storePrimaryId', 'storeBaseProductId', 'upc', 'baseProductUrlSlug', 'variantProductUrlSlug' );
     
    345345                    <input type="hidden" name="abcart_wait" value="<?php echo esc_html( key( $activecampaign_for_woocommerce_ab_cart_options ) ); ?>">
    346346                    <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 ) ) ); ?>">
    348348                    <input type="hidden" name="ba_session_timeout" value="<?php echo esc_html( key( $activecampaign_for_woocommerce_ba_session_timeout_options ) ); ?>">
    349349                    <input type="hidden" id="browse_tracking" name="browse_tracking" value="0">
     
    600600                                <ul id="additional_ba_product_url_patterns_list">
    601601                                    <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"
    603603                                            placeholder="<?php echo esc_html( $activecampaign_for_woocommerce_ba_product_url_patterns_placeholder_text ); ?>"
    604604                                            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  
    7171     */
    7272    private $ac_debug_excess;
     73
     74    /**
     75     * Subname
     76     *
     77     * @var string
     78     */
     79    private $plugin_subname;
    7380
    7481    /**
  • activecampaign-for-woocommerce/trunk/includes/config/activecampaign-for-woocommerce-global-constants.php

    r3232769 r3239505  
    2626 */
    2727if ( ! defined( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION' ) ) {
    28     define( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION', '2.8.4' );
     28    define( 'ACTIVECAMPAIGN_FOR_WOOCOMMERCE_VERSION', '2.8.5' );
    2929}
    3030
Note: See TracChangeset for help on using the changeset viewer.