Plugin Directory

Changeset 3481543


Ignore:
Timestamp:
03/12/2026 10:36:18 PM (3 weeks ago)
Author:
patternsinthecloud
Message:

version 2.12.2

Location:
autoship-cloud/trunk
Files:
82 added
10 deleted
30 edited

Legend:

Unmodified
Added
Removed
  • autoship-cloud/trunk/app/Core/Implementations/WordPressFeatureManager.php

    r3475704 r3481543  
    5555        'qmc_components'                       => true,
    5656        'payments'                             => true,
     57        'healthcheck'                          => true,
    5758        'utilities'                            => true,
    5859
     
    160161        if ( $this->is_payment_gateway_feature( $feature ) ) {
    161162            $remote_flags = $this->resolve_remote_flags();
    162             Logger::log( 'Feature Manager', "Checking feature '{$feature}' - Remote flags: " . ( is_array( $remote_flags ) ? implode( ', ', $remote_flags ) : 'null' ) );
     163
     164            if ( Logger::is_tracing_enabled() ) {
     165                Logger::log( 'Feature Manager', "Checking feature '{$feature}' - Remote flags: " . ( is_array( $remote_flags ) ? implode( ', ', $remote_flags ) : 'null' ) );
     166            }
     167
    163168            if ( null !== $remote_flags ) {
    164169                return in_array( $feature, $remote_flags, true );
  • autoship-cloud/trunk/app/Core/Plugin.php

    r3475704 r3481543  
    2020use Autoship\Core\Implementations\WordPressSettings;
    2121use Autoship\Services\QPilot\QPilotServiceFactory;
     22use Autoship\Modules\Healthcheck\HealthcheckModule;
    2223use Autoship\Modules\Nextime\NextimeModule;
    2324use Autoship\Modules\Payments\PaymentsModule;
     
    2526use Autoship\Modules\QuickLinks\QuickLinksModule;
    2627use Autoship\Modules\Synchronizers\Products\ProductSynchronizerModule;
     28use Autoship\Services\Labels\Implementations\WordPressLabelService;
     29use Autoship\Services\Labels\LabelServiceInterface;
    2730use Autoship\Modules\Utilities\UtilitiesModule;
    2831use Autoship\Repositories\ProductRepositoryInterface;
     
    126129
    127130        $this->container->register(
     131            LabelServiceInterface::class,
     132            function () {
     133                $c = Plugin::get_service_container();
     134                return new WordPressLabelService(
     135                    $c->get( SettingsInterface::class )
     136                );
     137            }
     138        );
     139
     140        $this->container->register(
    128141            ClockInterface::class,
    129142            function () {
     
    252265            $this->module_manager->register_module( new UtilitiesModule() );
    253266        }
     267
     268        if ( $features->is_enabled( 'healthcheck' ) ) {
     269            $this->module_manager->register_module( new HealthcheckModule() );
     270        }
    254271    }
    255272
     
    290307     */
    291308    public function fetch_qpilot_feature_flags(): ?array {
     309
    292310        $cache_key = 'autoship_qpilot_feature_flags';
    293311        $cached    = get_transient( $cache_key );
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/AirwallexPaymentIntegration.php

    r3475704 r3481543  
    4040     */
    4141    public function initialize(): void {
    42         Logger::log( 'Airwallex Payment Integration', 'Initializing Airwallex payment integration.' );
     42        if ( Logger::is_tracing_enabled() ) {
     43            Logger::log( 'Airwallex Payment Integration', 'Initializing Airwallex payment integration.' );
     44        }
    4345    }
    4446
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/AuthorizeNetPaymentIntegration.php

    r3462779 r3481543  
    4040     */
    4141    public function initialize(): void {
    42         Logger::log( 'Authorize.Net Payment Integration', 'Initializing Authorize.Net payment integration.' );
     42        if ( Logger::is_tracing_enabled() ) {
     43            Logger::log( 'Authorize.Net Payment Integration', 'Initializing Authorize.Net payment integration.' );
     44        }
    4345    }
    4446
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/BraintreePaymentIntegration.php

    r3475704 r3481543  
    4141     */
    4242    public function initialize(): void {
    43         Logger::log( 'Braintree Payment Integration', 'Initializing Braintree payment integration.' );
     43        if ( Logger::is_tracing_enabled() ) {
     44            Logger::log( 'Braintree Payment Integration', 'Initializing Braintree payment integration.' );
     45        }
    4446    }
    4547
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/CheckoutPaymentIntegration.php

    r3475704 r3481543  
    3939     */
    4040    public function initialize(): void {
    41         Logger::log( 'Checkout Payment Integration', 'Initializing Checkout.com payment integration.' );
     41        if ( Logger::is_tracing_enabled() ) {
     42            Logger::log( 'Checkout Payment Integration', 'Initializing Checkout.com payment integration.' );
     43        }
    4244    }
    4345
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/CyberSourceV2PaymentIntegration.php

    r3475704 r3481543  
    4040     */
    4141    public function initialize(): void {
    42         Logger::log( 'CyberSourceV2 Payment Integration', 'Initializing CyberSourceV2 payment integration.' );
     42        if ( Logger::is_tracing_enabled() ) {
     43            Logger::log( 'CyberSourceV2 Payment Integration', 'Initializing CyberSourceV2 payment integration.' );
     44        }
    4345    }
    4446
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/NmiPaymentIntegration.php

    r3475704 r3481543  
    4141     */
    4242    public function initialize(): void {
    43         Logger::log( 'NMI Payment Integration', 'Initializing NMI payment integration.' );
     43        if ( Logger::is_tracing_enabled() ) {
     44            Logger::log( 'NMI Payment Integration', 'Initializing NMI payment integration.' );
     45        }
    4446    }
    4547
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/PayPalPaymentIntegration.php

    r3462779 r3481543  
    4343     */
    4444    public function initialize(): void {
    45         Logger::log( 'PayPal Payment Integration', 'Initializing PayPal payment integration.' );
     45        if ( Logger::is_tracing_enabled() ) {
     46            Logger::log( 'PayPal Payment Integration', 'Initializing PayPal payment integration.' );
     47        }
    4648    }
    4749
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/PayaV1PaymentIntegration.php

    r3475704 r3481543  
    4040     */
    4141    public function initialize(): void {
    42         Logger::log( 'PayaV1 Payment Integration', 'Initializing PayaV1 payment integration.' );
     42        if ( Logger::is_tracing_enabled() ) {
     43            Logger::log( 'PayaV1 Payment Integration', 'Initializing PayaV1 payment integration.' );
     44        }
    4345    }
    4446
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/SagePaymentIntegration.php

    r3475704 r3481543  
    3232     */
    3333    public function initialize(): void {
    34         Logger::log( 'Sage Payment Integration', 'Initializing Sage payment integration.' );
     34        if ( Logger::is_tracing_enabled() ) {
     35            Logger::log( 'Sage Payment Integration', 'Initializing Sage payment integration.' );
     36        }
    3537    }
    3638
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/SquarePaymentIntegration.php

    r3475704 r3481543  
    3131     */
    3232    public function initialize(): void {
    33         Logger::log( 'Square Payment Integration', 'Initializing Square payment integration.' );
     33        if ( Logger::is_tracing_enabled() ) {
     34            Logger::log( 'Square Payment Integration', 'Initializing Square payment integration.' );
     35        }
    3436    }
    3537
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/StripePaymentIntegration.php

    r3462779 r3481543  
    3434     */
    3535    public function initialize(): void {
    36         Logger::log( 'Stripe Payment Integration', 'Initializing Stripe payment integration.' );
     36        if ( Logger::is_tracing_enabled() ) {
     37            Logger::log( 'Stripe Payment Integration', 'Initializing Stripe payment integration.' );
     38        }
    3739    }
    3840
     
    355357        }
    356358
     359        // Stripe plugin 8.8.0+ handles fee/net metadata natively; skip to avoid doubling values.
     360        if ( defined( 'WC_STRIPE_VERSION' ) && version_compare( WC_STRIPE_VERSION, '8.8.0', '>=' ) ) {
     361            return;
     362        }
     363
    357364        $fee_refund = null;
    358365        $net_refund = null;
  • autoship-cloud/trunk/app/Domain/PaymentIntegrations/TrustCommercePaymentIntegration.php

    r3475704 r3481543  
    3939     */
    4040    public function initialize(): void {
    41         Logger::log( 'TrustCommerce Payment Integration', 'Initializing TrustCommerce payment integration.' );
     41        if ( Logger::is_tracing_enabled() ) {
     42            Logger::log( 'TrustCommerce Payment Integration', 'Initializing TrustCommerce payment integration.' );
     43        }
    4244    }
    4345
  • autoship-cloud/trunk/app/Modules/Payments/Compatibility/PaymentsCompatibilityManager.php

    r3475704 r3481543  
    104104            // Check if gateway is enabled via feature flag.
    105105            if ( null !== $feature_manager && ! $feature_manager->is_payment_gateway_enabled( $gateway_id ) ) {
    106                 Logger::log( 'Autoship Payments Compatibility Manager', "Gateway {$gateway_id} disabled by feature flag, skipping registration" );
     106
     107                if ( Logger::is_tracing_enabled() ) {
     108                    Logger::log( 'Autoship Payments Compatibility Manager', "Gateway {$gateway_id} disabled by feature flag, skipping registration" );
     109                }
     110
    107111                continue;
    108112            }
  • autoship-cloud/trunk/app/Modules/Payments/Services/PaymentsCompatibilityService.php

    r3462779 r3481543  
    269269     */
    270270    private function log( string $message ): void {
    271         Logger::log( 'Autoship Payments Compatibility Service', $message );
     271
     272        if ( Logger::is_tracing_enabled() ) {
     273            Logger::log( 'Autoship Payments Compatibility Service', $message );
     274        }
    272275    }
    273276}
  • autoship-cloud/trunk/autoship.php

    r3475704 r3481543  
    88 * Plugin URI: https://autoship.cloud
    99 * Description: Autoship Cloud for WooCommerce
    10  * Version: 2.12.1
     10 * Version: 2.12.2
    1111 * Author: Patterns In the Cloud LLC
    1212 * Author URI: https://qpilot.cloud
     
    1717 */
    1818
    19 define( 'Autoship_Version', '2.12.1' ); // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ConstantNotUpperCase
     19define( 'Autoship_Version', '2.12.2' ); // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ConstantNotUpperCase
    2020
    2121if ( ! defined( 'Autoship_Plugin_Dir' ) ) {
     
    176176function autoship_load_includes() {
    177177    require_once 'src/QPilot/Client.php';
    178     require_once 'src/logger.php';
    179     require_once 'src/upgrade.php';
     178    require_once 'src/legacy/logger.php';
     179
    180180    require_once 'src/admin.php';
    181181    require_once 'src/utilities.php';
    182182    require_once 'src/api.php';
    183183    require_once 'src/api-wc.php';
    184     require_once 'src/api-health.php';
     184    require_once 'src/legacy/healthchecks.php';
    185185    require_once 'src/orders.php';
    186186    require_once 'src/checkout.php';
     
    195195    require_once 'src/shortcodes.php';
    196196    require_once 'src/pages.php';
    197     require_once 'src/languages.php';
    198     require_once 'src/export.php';
    199     require_once 'src/import.php';
     197    require_once 'src/legacy/languages.php';
     198
    200199    require_once 'src/bulk.php';
    201200    require_once 'src/scheduled-orders.php';
    202201    require_once 'src/shipping.php';
    203202    require_once 'src/free-shipping.php';
    204     require_once 'src/deprecated.php';
     203    require_once 'src/legacy/deprecated.php';
    205204    require_once 'src/wholesale-pricing.php';
    206205}
  • autoship-cloud/trunk/js/admin.js

    r3453277 r3481543  
    364364
    365365  /**
    366    * Trigger Migration Ajax form submit
    367    */
    368   var migrationFormsubmit = function( e ) {
    369 
    370     e.preventDefault();
    371 
    372     var form = $(this).closest('form');
    373     form.removeClass('active');
    374 
    375     var migration_targets = [];
    376 
    377     migration_targets.form = $(this).closest('form');
    378     migration_targets.target_btn = form.find('button.action');
    379     migration_targets.target_cancel_btn = form.find('button.cancel-action');
    380     migration_targets.target_notice = form.find('.autoship-bulk-notice');
    381     migration_targets.target_subnotice = form.find('.autoship-bulk-subnotice');
    382     migration_targets.target_success_action = form.find('.autoship-bulk-success-action')
    383 
    384     migration_targets.form.addClass('active');
    385     migration_targets.data = { "action":"autoship_initiate_schedule_export" };
    386     migration_targets.target_subnotice.fadeIn('slow');
    387 
    388     $.ajax({
    389       type: 'POST',
    390       dataType: 'json',
    391       data: migration_targets.data,
    392       url: ajaxurl,
    393       success: function(response) {
    394         migration_targets.target_notice.fadeOut('slow', function() {
    395           if ( response.success ){
    396             $(this).html(response.notice).fadeIn('slow');
    397             migration_targets.target_success_action.fadeIn('slow');
    398           } else {
    399             $(this).html('<span style="color:red;">An Issue was encountered exporting the Scheduled Orders.</span>').fadeIn('slow');
    400             migration_targets.target_success_action.fadeOut('slow');
    401           }
    402         });
    403       },
    404       failure: function(response) {
    405         migration_targets.target_notice.fadeOut('slow', function() {
    406           response.success = false;
    407           $(this).html(response.notice).fadeIn('slow');
    408           migration_targets.target_success_action.fadeOut('slow');
    409         });
    410       }
    411     });
    412 
    413   };
    414 
    415   /**
    416    * Initiates the Scheduled CSV Export
    417    */
    418   $('#autoship-bulk-export-csv').on( 'click', 'button.autoship-export-action', migrationFormsubmit );
    419 
    420   /**
    421366   * Log file download link toggler
    422367   */
  • autoship-cloud/trunk/js/batch.js

    r3475704 r3481543  
    1 jQuery(document).ready(function ($) {
    2 
    3     $("#cancel-msg").hide();
    4     var cancel_btn = $("button.cancel-import-schedules");
    5 
    6     cancel_btn.on("click",function () {
    7         var consent = confirm('Are you sure you want to cancel import?');
    8         if (!consent) {
    9             return;
    10         }
    11 
    12         location.reload();
    13         return;
    14     });
    15 
    16     function initBatch(action, container, getParameters, onComplete) {
    17 
    18         var $container = $(container);
    19         var count = {};
    20         var ids = [];
    21 
    22         function doBatch(lastId, parameters) {
    23             var queryStringData = {
    24                 'action': action,
    25                 'last_id': lastId
    26             };
    27 
    28 
    29             if (lastId !== 0 && action === "autoship_import_schedule_data") {
    30 
    31                 cancel_btn.removeAttr("disabled");
    32 
    33                 ids.push(lastId);
    34 
    35                 uniqueCount = ids;
    36 
    37                 uniqueCount.forEach(function (i) {
    38                     count[i] = (count[i] || 0) + 1;
    39                 });
    40 
    41                 if (count[lastId] >= 100) {
    42                     $('.batch-button').removeAttr('disabled');
    43                     cancel_btn.attr("disabled", "disabled");
    44                     $("#cancel-msg").show();
    45                     return;
    46                 }
    47             }
    48 
    49 
    50             if (parameters) {
    51                 for (var name in parameters) {
    52                     queryStringData[name] = parameters[name];
    53                 }
    54             }
    55             var queryStringPairs = [];
    56             for (var name in queryStringData) {
    57                 var pair = encodeURIComponent(name)
    58                     + '='
    59                     + encodeURIComponent(queryStringData[name]);
    60                 queryStringPairs.push(pair);
    61             }
    62 
    63             var endpoint = ajaxurl + '?' + queryStringPairs.join('&');
    64 
    65             $.get(endpoint, function success(response) {
    66                 updateProgress(response);
    67 
    68                 if (response.result === 1) {
    69 
    70                   if (response.count < response.total) {
    71                       doBatch(response.last_id, parameters);
    72                   } else {
    73                       $('.batch-button').removeAttr('disabled');
    74                       $("button.cancel-import-schedules").attr("disabled", "disabled");
    75                   }
    76 
    77                 }
    78             });
    79         }
    80 
    81         function updateProgress(data) {
    82             var percentProgress = Math.floor( data.complete_percent );
    83             var $batchProgress = $container.find('.batch-progress');
    84             $batchProgress.find('.meter').css('width', percentProgress + '%');
    85             if (percentProgress < 100) {
    86                 $batchProgress.find('.readout').text(percentProgress + '%');
    87             } else {
    88                 $batchProgress.find('.readout').text(percentProgress + '% Finished!');
    89                 if (onComplete) {
    90                     onComplete.call($container, data);
    91                 }
    92             }
    93 
    94             var $batchFailures = $container.find('.batch-failures');
    95             for (var i in data.failed) {
    96                 $batchFailures.append(
    97                     '<li>Error: #' + data.failed[i][0] + ' with message: ' + data.failed[i][1] + '</li>'
    98                 );
    99             }
    100         }
    101 
    102         function resetProgress() {
    103             var $batchProgress = $container.find('.batch-progress');
    104             $batchProgress.addClass('active');
    105             $batchProgress.find('.meter').css('width', '0%');
    106             $batchProgress.find('.readout').text('0%');
    107             $container.find('.batch-failures').empty();
    108         }
    109 
    110         $container.find('.batch-button').on('click', function () {
    111             var consent = confirm('Are you sure you want to continue? This action cannot be undone.');
    112             if (!consent) {
    113                 return;
    114             }
    115             var parameters = null;
    116             if (getParameters) {
    117                 parameters = getParameters.call($container);
    118                 if (null === parameters) {
    119                     return;
    120                 }
    121             }
    122 
    123             $(this).attr('disabled', 'disabled');
    124 
    125 
    126             resetProgress();
    127             doBatch(0, parameters);
    128         });
    129     }
    130 
    131     initBatch('autoship_import_schedule_data', '#autoship-import-schedules');
    132     initBatch('autoship_import_product_settings', '#autoship-import-product-settings');
    133 
    134 });
    135 
    1361jQuery(function ($) {
    1372
  • autoship-cloud/trunk/languages/autoship.pot

    r3462779 r3481543  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Autoship Cloud powered by QPilot 2.12.0\n"
     5"Project-Id-Version: Autoship Cloud powered by QPilot 2.12.1\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/autoship-cloud\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-02-03T19:16:04+00:00\n"
     12"POT-Creation-Date: 2026-03-10T16:30:09+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    7474msgstr ""
    7575
     76#: app/Core/Implementations/WordPressAutoshipSettings.php:56
     77#: src/product-page.php:659
     78#: src/product-page.php:1094
     79#: src/utilities.php:390
     80#: templates/quicklaunch/step-product.php:135
     81#: templates/quicklaunch/step-product.php:150
     82#: templates/quicklaunch/step-product.php:168
     83msgid "Days"
     84msgstr ""
     85
     86#: app/Core/Implementations/WordPressAutoshipSettings.php:57
     87#: src/product-page.php:660
     88#: src/product-page.php:1095
     89#: src/utilities.php:391
     90#: templates/quicklaunch/step-product.php:136
     91#: templates/quicklaunch/step-product.php:151
     92#: templates/quicklaunch/step-product.php:169
     93msgid "Weeks"
     94msgstr ""
     95
     96#: app/Core/Implementations/WordPressAutoshipSettings.php:58
     97#: src/product-page.php:661
     98#: src/product-page.php:1096
     99#: src/utilities.php:392
     100#: templates/quicklaunch/step-product.php:137
     101#: templates/quicklaunch/step-product.php:152
     102#: templates/quicklaunch/step-product.php:170
     103msgid "Months"
     104msgstr ""
     105
     106#: app/Core/Implementations/WordPressAutoshipSettings.php:59
     107#: src/product-page.php:662
     108#: src/product-page.php:1097
     109#: src/utilities.php:393
     110#: templates/quicklaunch/step-product.php:139
     111#: templates/quicklaunch/step-product.php:154
     112#: templates/quicklaunch/step-product.php:172
     113msgid "Day of the week"
     114msgstr ""
     115
     116#: app/Core/Implementations/WordPressAutoshipSettings.php:60
     117#: src/product-page.php:663
     118#: src/product-page.php:1098
     119#: src/utilities.php:394
     120#: templates/quicklaunch/step-product.php:138
     121#: templates/quicklaunch/step-product.php:153
     122#: templates/quicklaunch/step-product.php:171
     123msgid "Day of the month"
     124msgstr ""
     125
    76126#: app/Domain/Nextime/NextimeShippingCalculator.php:74
    77127msgid "Autoship Advanced Shipping - Nextime"
     
    108158#: app/Domain/Nextime/NextimeShippingCalculator.php:112
    109159msgid "Date format to be displayed at checkout."
     160msgstr ""
     161
     162#: app/Modules/Healthcheck/HealthcheckService.php:158
     163msgid "POST: Orders can be created"
     164msgstr ""
     165
     166#: app/Modules/Healthcheck/HealthcheckService.php:159
     167msgid "FAILED POST: Orders cannot be created"
     168msgstr ""
     169
     170#: app/Modules/Healthcheck/HealthcheckService.php:163
     171msgid "GET: Product Data can be synchronized"
     172msgstr ""
     173
     174#: app/Modules/Healthcheck/HealthcheckService.php:164
     175msgid "FAILED GET: Product Data cannot be synchronized"
     176msgstr ""
     177
     178#: app/Modules/Healthcheck/HealthcheckService.php:168
     179msgid "PUT: Data can be updated"
     180msgstr ""
     181
     182#: app/Modules/Healthcheck/HealthcheckService.php:169
     183msgid "FAILED PUT: Data cannot be updated"
     184msgstr ""
     185
     186#. translators: %1$s is the message and %2$s is the api message.
     187#: app/Modules/Healthcheck/HealthcheckService.php:234
     188msgid "Autoship Health Check"
     189msgstr ""
     190
     191#. translators: %1$s is the message and %2$s is the api message.
     192#: app/Modules/Healthcheck/HealthcheckService.php:234
     193#, php-format
     194msgid "%1$s Additional API Error Details: %2$s"
    110195msgstr ""
    111196
     
    139224#, php-format
    140225msgid "Saving order with ID %s."
     226msgstr ""
     227
     228#: app/Modules/Payments/Services/PaymentMethodService.php:69
     229#: app/Modules/Payments/Services/PaymentMethodService.php:93
     230#: src/payments.php:2372
     231#: src/payments.php:2421
     232#: src/payments.php:2464
     233#: src/scheduled-orders.php:4678
     234#: src/scheduled-orders.php:5641
     235#: src/scheduled-orders.php:5646
     236msgid "Autoship Payment Methods"
    141237msgstr ""
    142238
     
    330426#: app/Modules/QuickLinks/Controllers/QuickLinkController.php:642
    331427#: templates/quicklinks/thank-you.php:38
    332 #: templates/quicklinks/thank-you2.old.php:38
    333428msgid "Updated"
    334429msgstr ""
     
    495590#: app/Modules/QuickLinks/Controllers/QuickLinksSettingsController.php:373
    496591#: app/Modules/QuickLinks/Controllers/QuickLinksSettingsController.php:414
     592#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:171
    497593msgid "Invalid security token."
    498594msgstr ""
     
    664760msgstr ""
    665761
     762#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:131
     763msgid "Processing..."
     764msgstr ""
     765
     766#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:132
     767msgid "Bulk update complete."
     768msgstr ""
     769
     770#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:133
     771msgid "An error occurred during the bulk update."
     772msgstr ""
     773
     774#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:134
     775msgid "Bulk update cancelled."
     776msgstr ""
     777
     778#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:135
     779msgid "Please fill in all frequency option fields."
     780msgstr ""
     781
     782#. translators: %1$s is the percentage completed, %2$d is total products.
     783#. translators: %1$s is the percentage completed, %2$d is the total number of products.
     784#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:137
     785#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:223
     786#, php-format
     787msgid "%1$s%% of the %2$d Products have been processed."
     788msgstr ""
     789
     790#: app/Modules/Utilities/Controllers/BulkFrequenciesController.php:175
     791msgid "Unauthorized access"
     792msgstr ""
     793
     794#: app/Modules/Utilities/Services/FrequencyUpdateService.php:109
     795msgid "Frequencies data is missing or invalid."
     796msgstr ""
     797
     798#. translators: %d is the frequency option index.
     799#: app/Modules/Utilities/Services/FrequencyUpdateService.php:117
     800#, php-format
     801msgid "Missing data in frequency option %d."
     802msgstr ""
     803
     804#. translators: %d is the frequency option index.
     805#: app/Modules/Utilities/Services/FrequencyUpdateService.php:127
     806#, php-format
     807msgid "Invalid data in frequency option %d."
     808msgstr ""
     809
     810#. translators: %d is the frequency number.
     811#: app/Modules/Utilities/Services/FrequencyUpdateService.php:133
     812#, php-format
     813msgid "Invalid frequency number in option %d."
     814msgstr ""
     815
    666816#: app/Services/Logging/FileSink.php:386
    667817msgid "Invalid log file requested"
     
    717867
    718868#: autoship.php:104
    719 #: src/admin.php:1089
     869#: src/admin.php:1088
    720870msgid "Options"
    721871msgstr ""
     
    726876
    727877#: autoship.php:105
    728 #: src/admin.php:1094
     878#: src/admin.php:1093
    729879msgid "Utilities"
    730880msgstr ""
     
    749899
    750900#: src/admin.php:336
    751 #: src/admin.php:2061
     901#: src/admin.php:2050
    752902msgid "Autoship - QPilot"
    753903msgstr ""
     
    842992msgstr ""
    843993
    844 #: src/admin.php:1084
     994#: src/admin.php:1083
    845995msgid "Connection Settings"
    846996msgstr ""
    847997
    848 #: src/admin.php:1099
     998#: src/admin.php:1098
    849999#: templates/admin/settings/extensions.php:26
    8501000msgid "Extensions"
    8511001msgstr ""
    8521002
    853 #: src/admin.php:1104
     1003#: src/admin.php:1103
    8541004msgid "Diagnostics"
    8551005msgstr ""
    8561006
    857 #: src/admin.php:1122
     1007#: src/admin.php:1121
    8581008msgid "Coupons"
    8591009msgstr ""
    8601010
    861 #: src/admin.php:1127
     1011#: src/admin.php:1126
    8621012msgid "Retention Workflows"
    8631013msgstr ""
    8641014
    865 #: src/admin.php:1132
     1015#: src/admin.php:1131
    8661016msgid "Dunning"
    8671017msgstr ""
    8681018
    869 #: src/admin.php:1137
     1019#: src/admin.php:1136
    8701020msgid "Quick Actions"
    8711021msgstr ""
    8721022
    873 #: src/admin.php:1155
     1023#: src/admin.php:1154
    8741024msgid "Scheduled Orders Metrics"
    8751025msgstr ""
    8761026
    877 #: src/admin.php:1160
     1027#: src/admin.php:1159
    8781028msgid "Products by Date Summary"
    8791029msgstr ""
    8801030
    881 #: src/admin.php:1165
     1031#: src/admin.php:1164
    8821032msgid "Scheduled Orders by Product"
    8831033msgstr ""
    8841034
    885 #: src/admin.php:1170
     1035#: src/admin.php:1169
    8861036msgid "Churn Reports"
    8871037msgstr ""
    8881038
    889 #: src/admin.php:1175
     1039#: src/admin.php:1174
    8901040msgid "Survey Results"
    8911041msgstr ""
    8921042
    893 #: src/admin.php:1180
     1043#: src/admin.php:1179
    8941044msgid "Customer Metrics"
    8951045msgstr ""
    8961046
    897 #: src/admin.php:1185
     1047#: src/admin.php:1184
    8981048msgid "Email Delivery"
    8991049msgstr ""
    9001050
    901 #: src/admin.php:1428
     1051#: src/admin.php:1426
    9021052msgid "No Current Scheduled Orders"
    9031053msgstr ""
    9041054
    905 #: src/admin.php:1953
     1055#: src/admin.php:1942
    9061056msgid "No response code was received from QPilot."
    9071057msgstr ""
    9081058
    909 #: src/admin.php:1955
     1059#: src/admin.php:1944
    9101060msgid "Autoship Oauth Error"
    9111061msgstr ""
    9121062
    913 #: src/admin.php:1997
    914 #: src/admin.php:2039
     1063#: src/admin.php:1986
     1064#: src/admin.php:2028
    9151065msgid "Autoship Oauth Exception"
    9161066msgstr ""
    9171067
    918 #: src/admin.php:2133
     1068#: src/admin.php:2122
    9191069msgid "Autoship Oauth Status"
    9201070msgstr ""
    9211071
    922 #: src/admin.php:2133
     1072#: src/admin.php:2122
    9231073msgid "Autoship Cloud connection has been disconnected!"
    9241074msgstr ""
     
    9671117#: src/scheduled-orders.php:6061
    9681118#: src/scheduled-orders.php:6066
    969 #: src/wholesale-pricing.php:1424
    970 #: src/wholesale-pricing.php:1428
    971 #: src/wholesale-pricing.php:1771
     1119#: src/wholesale-pricing.php:1432
     1120#: src/wholesale-pricing.php:1436
     1121#: src/wholesale-pricing.php:1779
    9721122msgid "Autoship Orders"
    9731123msgstr ""
    9741124
    975 #: src/api-health.php:435
    976 msgid "POST: Orders can be created"
    977 msgstr ""
    978 
    979 #: src/api-health.php:436
    980 msgid "FAILED POST: Orders cannot be created"
    981 msgstr ""
    982 
    983 #: src/api-health.php:440
    984 msgid "GET: Product Data can be synchronized"
    985 msgstr ""
    986 
    987 #: src/api-health.php:441
    988 msgid "FAILED GET: Product Data cannot be synchronized"
    989 msgstr ""
    990 
    991 #: src/api-health.php:445
    992 msgid "PUT: Data can be updated"
    993 msgstr ""
    994 
    995 #: src/api-health.php:446
    996 msgid "FAILED PUT: Data cannot be updated"
    997 msgstr ""
    998 
    999 #. translators: %1$s is the message and %2$s is the api message.
    1000 #: src/api-health.php:533
    1001 msgid "Autoship Health Check"
    1002 msgstr ""
    1003 
    1004 #. translators: %1$s is the message and %2$s is the api message.
    1005 #: src/api-health.php:533
    1006 #, php-format
    1007 msgid "%1$s Additional API Error Details: %2$s"
    1008 msgstr ""
    1009 
    10101125#: src/api-wc.php:132
    1011 #: src/api.php:629
     1126#: src/api.php:563
    10121127msgid "Order has already been created from scheduled order processing."
    10131128msgstr ""
     
    10471162msgstr ""
    10481163
    1049 #: src/api.php:539
    1050 #: src/api.php:649
     1164#: src/api.php:484
     1165#: src/api.php:583
    10511166msgid "The WooCommerce REST API is either unavailable or not found."
    10521167msgstr ""
     
    11641279msgstr ""
    11651280
    1166 #: src/bulk.php:1213
    1167 msgid "Unauthorized access"
    1168 msgstr ""
    1169 
    1170 #. translators: %1$s is the percentage completed, %2$d is the total number of products.
    1171 #: src/bulk.php:1261
    1172 #, php-format
    1173 msgid "%1$s%% of the %2$d Products have been processed."
    1174 msgstr ""
    1175 
    1176 #: src/bulk.php:1300
    1177 msgid "Frequencies data is missing or invalid."
    1178 msgstr ""
    1179 
    1180 #. translators: %d is the frequency option index.
    1181 #: src/bulk.php:1331
    1182 #, php-format
    1183 msgid "Missing data in frequency option %d."
    1184 msgstr ""
    1185 
    1186 #. translators: %d is the frequency option index.
    1187 #: src/bulk.php:1341
    1188 #, php-format
    1189 msgid "Invalid data in frequency option %d."
    1190 msgstr ""
    1191 
    1192 #. translators: %d is the frequency number.
    1193 #: src/bulk.php:1347
    1194 #, php-format
    1195 msgid "Invalid frequency number in option %d."
    1196 msgstr ""
    1197 
    1198 #: src/bulk.php:1384
    1199 #: src/bulk.php:1402
    1200 #: src/bulk.php:1420
     1281#: src/bulk.php:1134
     1282#: src/bulk.php:1152
     1283#: src/bulk.php:1170
    12011284msgid "The autoship product sync utility feature is not enabled."
    12021285msgstr ""
    12031286
    1204 #: src/bulk.php:1391
     1287#: src/bulk.php:1141
    12051288msgid "The product sync has been enabled."
    12061289msgstr ""
    12071290
    1208 #: src/bulk.php:1409
     1291#: src/bulk.php:1159
    12091292msgid "The product sync has been disabled."
    12101293msgstr ""
    12111294
    1212 #: src/bulk.php:1462
    1213 #: src/bulk.php:1490
     1295#: src/bulk.php:1212
     1296#: src/bulk.php:1240
    12141297msgid "The settings were updated."
    12151298msgstr ""
     
    12181301#: src/cart.php:535
    12191302#: src/checkout.php:53
    1220 #: src/deprecated.php:106
     1303#: src/legacy/deprecated.php:106
    12211304#: src/product-page.php:1215
    12221305#: templates/cart/schedule-options.php:70
     
    12291312#: src/cart.php:498
    12301313#: src/cart.php:545
    1231 #: src/deprecated.php:115
     1314#: src/legacy/deprecated.php:115
    12321315msgid "Next Order"
    12331316msgstr ""
     
    13121395#. translators: %1$s is the label for Scheduled Orders, %2$s is the error message.
    13131396#: src/customers.php:191
    1314 #: src/payments.php:3077
     1397#: src/payments.php:3078
    13151398#, php-format
    13161399msgid "There was a problem updating the information on your %1$s. Additional details: %2$s"
     
    13381421#. translators: %1$s is the label for Scheduled Orders, %2$s is the URL to update the payment method, %3$s is the Update button text.
    13391422#: src/customers.php:268
    1340 #: src/payments.php:3168
     1423#: src/payments.php:3169
    13411424msgid "Update"
    13421425msgstr ""
     
    14351518msgstr ""
    14361519
    1437 #. translators: %1$d is the customer ID, %2$d is the schedule ID.
    1438 #: src/export.php:235
    1439 #, php-format
    1440 msgid "Customer %1$d could not be found or is invalid. This scheduled order #%2$d will not be included."
    1441 msgstr ""
    1442 
    1443 #. translators: %d is the payment token ID.
    1444 #: src/export.php:253
    1445 #, php-format
    1446 msgid "Payment Method with Token ID %d could not be found or is invalid."
    1447 msgstr ""
    1448 
    1449 #. translators: %d is the external product ID.
    1450 #: src/export.php:267
    1451 #, php-format
    1452 msgid "Product %d could not be found or is invalid. This product will not be included."
    1453 msgstr ""
    1454 
    1455 #. translators: %s is the path to the directory that could not be created.
    1456 #. translators: %s is the path to the directory.
    1457 #: src/export.php:362
    1458 #: src/utilities.php:813
    1459 #, php-format
    1460 msgid "The Directory at %s can't be created! Please check permissions."
    1461 msgstr ""
    1462 
    1463 #: src/export.php:370
    1464 #: src/utilities.php:817
    1465 msgid "Writing Column Headers to CSV File failed."
    1466 msgstr ""
    1467 
    1468 #. translators: %1$s is the filename, %2$s is the path to the file.
    1469 #. translators: %1$s is the filename and %2$s is the path.
    1470 #: src/export.php:379
    1471 #: src/utilities.php:822
    1472 #, php-format
    1473 msgid "CSV File %1$s can't be opened and/or created! Please check rights for %2$s."
    1474 msgstr ""
    1475 
    1476 #: src/export.php:387
    1477 msgid "No Scheduled Orders to Export"
    1478 msgstr ""
    1479 
    1480 #. translators: %1$d is the number of Scheduled Orders exported, %2$s is the filename.
    1481 #: src/export.php:410
    1482 #, php-format
    1483 msgid "%1$d Scheduled Orders successfully exported to %2$s."
    1484 msgstr ""
    1485 
    1486 #. translators: %1$d is the number of Scheduled Orders, %2$s is the path to the log file.
    1487 #: src/export.php:417
    1488 #, php-format
    1489 msgid "None of the %1$d Scheduled Orders could be exported. See the log for additional details in %2$s"
    1490 msgstr ""
    1491 
    1492 #. translators: %1$d is the number of Scheduled Orders, %2$s is the filename, %3$d is the number of invalid Scheduled Orders.
    1493 #: src/export.php:420
    1494 #, php-format
    1495 msgid "%1$d Scheduled Orders successfully exported to %2$s.  %3$d Scheduled Orders were missing or invalid and could not be exported."
    1496 msgstr ""
    1497 
    14981520#: src/free-shipping.php:37
    14991521msgid "Autoship Free Shipping (Not editable)"
     
    16301652msgstr ""
    16311653
    1632 #: src/payments.php:2366
    1633 #: src/payments.php:2408
    1634 #: src/payments.php:2450
    1635 #: src/scheduled-orders.php:4678
    1636 #: src/scheduled-orders.php:5641
    1637 #: src/scheduled-orders.php:5646
    1638 msgid "Autoship Payment Methods"
    1639 msgstr ""
    1640 
    1641 #: src/payments.php:3040
     1654#: src/payments.php:3041
    16421655msgid "Invalid payment method."
    16431656msgstr ""
    16441657
    1645 #: src/payments.php:3053
     1658#: src/payments.php:3054
    16461659msgid "You have insufficient rights to make this change."
    16471660msgstr ""
    16481661
    16491662#. translators: %s is the label for Scheduled Orders.
    1650 #: src/payments.php:3088
     1663#: src/payments.php:3089
    16511664#, php-format
    16521665msgid "Your %s Have been successfully updated."
     
    16541667
    16551668#. translators: %1$s is the label for Scheduled Orders, %2$s is the URL to update the payment method, %3$s is the Update button text.
    1656 #: src/payments.php:3168
     1669#: src/payments.php:3169
    16571670#, php-format
    16581671msgid "Use the newly Added Payment Method for your <strong>%1$s</strong> as well? <a href=\"%2$s\" tabindex=\"1\" class=\"button\">%3$s</a>"
     
    16601673
    16611674#. translators: %1$s is the label for Scheduled Orders, %2$s is the URL to update the payment method, %3$s is the Update button text.
    1662 #: src/payments.php:3168
     1675#: src/payments.php:3169
    16631676#, php-format
    16641677msgid "Use the new Payment Method ( %1$s ) for your <strong>%2$s</strong> as well? <a href=\"%3$s\" tabindex=\"1\" class=\"button\">%4$s</a>"
     
    16661679
    16671680#. translators: %s is the label for Scheduled Orders.
    1668 #: src/payments.php:3280
     1681#: src/payments.php:3281
    16691682#, php-format
    16701683msgid "<p><strong><i class=\"autoship_update_all_orders\"></i></strong> Select to apply the payment method to your %s.</p>"
    16711684msgstr ""
    16721685
    1673 #: src/payments.php:3992
     1686#: src/payments.php:3998
    16741687msgid "Autoship Payment Methods Error"
    16751688msgstr ""
     
    19101923#: src/product-page.php:655
    19111924#: src/product-page.php:1089
    1912 #: templates/admin/settings/utilities.php:305
     1925#: templates/admin/settings/utilities/bulk-frequencies.php:33
    19131926msgid "Frequency Type"
    19141927msgstr ""
     
    19221935msgstr ""
    19231936
    1924 #: src/product-page.php:659
    1925 #: src/product-page.php:1094
    1926 #: src/utilities.php:390
    1927 #: templates/quicklaunch/step-product.php:135
    1928 #: templates/quicklaunch/step-product.php:150
    1929 #: templates/quicklaunch/step-product.php:168
    1930 msgid "Days"
    1931 msgstr ""
    1932 
    1933 #: src/product-page.php:660
    1934 #: src/product-page.php:1095
    1935 #: src/utilities.php:391
    1936 #: templates/quicklaunch/step-product.php:136
    1937 #: templates/quicklaunch/step-product.php:151
    1938 #: templates/quicklaunch/step-product.php:169
    1939 msgid "Weeks"
    1940 msgstr ""
    1941 
    1942 #: src/product-page.php:661
    1943 #: src/product-page.php:1096
    1944 #: src/utilities.php:392
    1945 #: templates/quicklaunch/step-product.php:137
    1946 #: templates/quicklaunch/step-product.php:152
    1947 #: templates/quicklaunch/step-product.php:170
    1948 msgid "Months"
    1949 msgstr ""
    1950 
    1951 #: src/product-page.php:662
    1952 #: src/product-page.php:1097
    1953 #: src/utilities.php:393
    1954 #: templates/quicklaunch/step-product.php:139
    1955 #: templates/quicklaunch/step-product.php:154
    1956 #: templates/quicklaunch/step-product.php:172
    1957 msgid "Day of the week"
    1958 msgstr ""
    1959 
    1960 #: src/product-page.php:663
    1961 #: src/product-page.php:1098
    1962 #: src/utilities.php:394
    1963 #: templates/quicklaunch/step-product.php:138
    1964 #: templates/quicklaunch/step-product.php:153
    1965 #: templates/quicklaunch/step-product.php:171
    1966 msgid "Day of the month"
    1967 msgstr ""
    1968 
    19691937#: src/product-page.php:673
    19701938#: src/product-page.php:1103
    1971 #: templates/admin/settings/utilities.php:314
     1939#: templates/admin/settings/utilities/bulk-frequencies.php:42
    19721940msgid "Frequency"
    19731941msgstr ""
     
    19801948
    19811949#: src/product-page.php:685
    1982 #: templates/admin/settings/utilities.php:319
     1950#: templates/admin/settings/utilities/bulk-frequencies.php:47
    19831951msgid "Display Name"
    19841952msgstr ""
     
    29972965#: src/scheduled-orders.php:5012
    29982966#: src/scheduled-orders.php:5059
    2999 #: src/wholesale-pricing.php:1422
     2967#: src/wholesale-pricing.php:1430
    30002968msgid "Orders could not be found in QPilot"
    30012969msgstr ""
     
    30423010#: src/scheduled-orders.php:6473
    30433011#: src/scheduled-orders.php:6479
    3044 #: src/shortcodes.php:280
    30453012#, php-format
    30463013msgid "Error %1$s: %2$s"
     
    31163083
    31173084#: src/scheduled-orders.php:7467
    3118 #: templates/admin/settings/utilities.php:353
     3085#: templates/admin/settings/utilities/bulk-frequencies.php:81
    31193086#: templates/quicklinks/confirm.php:623
    31203087msgid "Cancel"
     
    32243191msgstr ""
    32253192
    3226 #: src/upgrade.php:30
    3227 msgid "Autoship Upgrade"
    3228 msgstr ""
    3229 
    3230 #. translators: %1$s is the link to the upgrade, %2$s is the button text.
    3231 #: src/upgrade.php:132
    3232 #: templates/admin/settings/utilities.php:67
    3233 msgid "Update Product Synchronization"
    3234 msgstr ""
    3235 
    3236 #. translators: %1$s is the link to the upgrade, %2$s is the button text.
    3237 #: src/upgrade.php:209
    3238 msgid "Upgrade Processing Version"
    3239 msgstr ""
    3240 
    3241 #: src/upgrade.php:240
    3242 msgid "<strong>IMPORTANT!</strong> The new PayPal Payments plugin is not currently supported by Autoship Cloud.  Please do not attempt to replace WooCommerce PayPal Checkout Gateway with WooCommerce PayPal Payments."
    3243 msgstr ""
    3244 
    3245 #: src/upgrade.php:266
    3246 msgid "<strong>Invalid or Expired Call.</strong>"
    3247 msgstr ""
    3248 
    3249 #: src/upgrade.php:272
    3250 msgid "<strong>Invalid Upgrade Submission. Please confirm you would like to upgrade processing to v3 and submit your request again.</strong>"
    3251 msgstr ""
    3252 
    3253 #. translators: %1$s is the error code, %2$s is the error message.
    3254 #: src/upgrade.php:284
    3255 #, php-format
    3256 msgid "<strong>Error Upgrading Processing Version:</strong> Error Code %1$s - %2$s"
    3257 msgstr ""
    3258 
    3259 #: src/upgrade.php:289
    3260 msgid "<strong>Autoship Cloud: Scheduled Orders Upgraded Successfully!</strong> You have completed the upgrade to the latest version of Autoship Cloud."
    3261 msgstr ""
    3262 
    3263 #. translators: %1$s is the error code, %2$s is the error message.
    3264 #: src/upgrade.php:323
    3265 #, php-format
    3266 msgid "<strong>Error Downgrading Processing Version:</strong> Error Code %1$s - %2$s"
    3267 msgstr ""
    3268 
    3269 #: src/upgrade.php:326
    3270 msgid "<strong>Autoship Cloud: Plugin Processing Version Downgraded Successfully!</strong>."
    3271 msgstr ""
    3272 
    32733193#. translators: %d is the frequency in days.
    32743194#: src/utilities.php:630
     
    33473267#: src/utilities.php:765
    33483268msgid "Autoship Cloud Export: Failed to create or open the export directory."
     3269msgstr ""
     3270
     3271#. translators: %s is the path to the directory.
     3272#: src/utilities.php:813
     3273#, php-format
     3274msgid "The Directory at %s can't be created! Please check permissions."
     3275msgstr ""
     3276
     3277#: src/utilities.php:817
     3278msgid "Writing Column Headers to CSV File failed."
     3279msgstr ""
     3280
     3281#. translators: %1$s is the filename and %2$s is the path.
     3282#: src/utilities.php:822
     3283#, php-format
     3284msgid "CSV File %1$s can't be opened and/or created! Please check rights for %2$s."
    33493285msgstr ""
    33503286
     
    33753311
    33763312#. translators: %1$s is the file name, %2$s is the path to the file.
    3377 #: src/wholesale-pricing.php:1258
     3313#: src/wholesale-pricing.php:1266
    33783314#, php-format
    33793315msgid "CSV File %1$s can't be opened! Please check rights for %2$s."
    33803316msgstr ""
    33813317
    3382 #: src/wholesale-pricing.php:1472
     3318#: src/wholesale-pricing.php:1480
    33833319msgid "Bulk Scheduled Order Wholesale Pricing Update"
    33843320msgstr ""
    33853321
    33863322#. translators: %s is the list of statuses that will be updated.
    3387 #: src/wholesale-pricing.php:1476
     3323#: src/wholesale-pricing.php:1484
    33883324#, php-format
    33893325msgid "Batch updates all Scheduled Orders ( Statuses Included: %s ) using the Wholesale prices. The Batch Size (default is \"10\") determines the number of products to update in a single round. Decreasing the Batch Size helps prevent timeout issues for sites with many WooCommerce Products."
    33903326msgstr ""
    33913327
    3392 #: src/wholesale-pricing.php:1481
     3328#: src/wholesale-pricing.php:1489
    33933329msgid "- Use the <strong>“Export Changes Only”</strong> option to export a preview of all Scheduled Orders which will be changed when Wholesale prices are re-applied.  Changes will be exported in a csv file and will NOT be applied to any Scheduled Orders."
    33943330msgstr ""
    33953331
    3396 #: src/wholesale-pricing.php:1489
     3332#: src/wholesale-pricing.php:1497
    33973333msgid "- Use the <strong>“Apply Changes Only”</strong> option to update all Scheduled Orders in QPilot by re-applying the current Wholesale price rules and do not export all affected Scheduled Orders to a csv file."
    33983334msgstr ""
    33993335
    3400 #: src/wholesale-pricing.php:1495
     3336#: src/wholesale-pricing.php:1503
    34013337msgid "- Use the <strong>“Apply & Export Changes”</strong> option to update all Scheduled Orders in QPilot by re-applying the current Wholesale price rules and in addition export all affected Scheduled Orders to a csv file so that changes can be reviewed after being applied."
    34023338msgstr ""
    34033339
    3404 #: src/wholesale-pricing.php:1504
     3340#: src/wholesale-pricing.php:1512
    34053341msgid "<b>NOTE:</b> Download the last bulk wholesale pricing changes export file "
    34063342msgstr ""
    34073343
    3408 #: src/wholesale-pricing.php:1506
     3344#: src/wholesale-pricing.php:1514
    34093345msgid "Here"
    34103346msgstr ""
    34113347
    34123348#. translators: %1$d is the total count of Scheduled Orders, %2$s is the list of statuses that will be updated.
    3413 #: src/wholesale-pricing.php:1516
     3349#: src/wholesale-pricing.php:1524
    34143350#, php-format
    34153351msgid "A total of a %1$d %2$s Scheduled Orders can be processed."
    34163352msgstr ""
    34173353
    3418 #: src/wholesale-pricing.php:1517
     3354#: src/wholesale-pricing.php:1525
    34193355msgid "There are no available Scheduled Orders to process."
    34203356msgstr ""
    34213357
    3422 #: src/wholesale-pricing.php:1534
     3358#: src/wholesale-pricing.php:1542
    34233359msgid "Export Changes Only"
    34243360msgstr ""
    34253361
    3426 #: src/wholesale-pricing.php:1545
     3362#: src/wholesale-pricing.php:1553
    34273363msgid "Apply Changes Only"
    34283364msgstr ""
    34293365
    3430 #: src/wholesale-pricing.php:1553
     3366#: src/wholesale-pricing.php:1561
    34313367msgid "Apply & Export Changes"
    34323368msgstr ""
    34333369
    3434 #: src/wholesale-pricing.php:1562
     3370#: src/wholesale-pricing.php:1570
    34353371msgid "Update Scheduled Orders"
    34363372msgstr ""
    34373373
    3438 #: src/wholesale-pricing.php:1567
     3374#: src/wholesale-pricing.php:1575
    34393375#: templates/admin/settings/utilities.php:108
    34403376#: templates/admin/settings/utilities.php:162
    34413377#: templates/admin/settings/utilities.php:216
    34423378#: templates/admin/settings/utilities.php:270
    3443 #: templates/admin/settings/utilities.php:400
    3444 #: templates/admin/settings/utilities.php:440
     3379#: templates/admin/settings/utilities.php:322
     3380#: templates/admin/settings/utilities.php:362
    34453381msgid "Cancel Update"
    34463382msgstr ""
    34473383
    34483384#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders, %3$d is the number of Scheduled Orders updated.
    3449 #: src/wholesale-pricing.php:1814
     3385#: src/wholesale-pricing.php:1822
    34503386#, php-format
    34513387msgid "%1$s%% of the %2$d Scheduled Orders have been processed. A total of %3$d Scheduled Orders have been updated with new pricing and added to the csv export file."
     
    34533389
    34543390#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders, %3$d is the number of Scheduled Orders updated.
    3455 #: src/wholesale-pricing.php:1816
     3391#: src/wholesale-pricing.php:1824
    34563392#, php-format
    34573393msgid "%1$s%% of the %2$d Scheduled Orders have been processed. A total of %3$d Scheduled Orders would have been updated with new pricing.  Pricing changes that would have been applied have been added to the csv export file."
     
    34593395
    34603396#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders, %3$d is the number of Scheduled Orders updated.
    3461 #: src/wholesale-pricing.php:1818
    3462 #: src/wholesale-pricing.php:1831
     3397#: src/wholesale-pricing.php:1826
     3398#: src/wholesale-pricing.php:1839
    34633399#, php-format
    34643400msgid "%1$s%% of the %2$d Scheduled Orders have been processed. A total of %3$d Scheduled Orders have been updated with new pricing."
     
    34663402
    34673403#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders, %3$d is the number of Scheduled Orders updated, %4$s is the download link.
    3468 #: src/wholesale-pricing.php:1827
     3404#: src/wholesale-pricing.php:1835
    34693405#, php-format
    34703406msgid "%1$s%% of the %2$d Scheduled Orders have been processed. A total of %3$d Scheduled Orders have been updated with new pricing and added to the csv export file. Download the export file by <a href=\"%4$s\">clicking here</a>"
     
    34723408
    34733409#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders, %3$d is the number of Scheduled Orders updated, %4$s is the download link.
    3474 #: src/wholesale-pricing.php:1829
     3410#: src/wholesale-pricing.php:1837
    34753411#, php-format
    34763412msgid "%1$s%% of the %2$d Scheduled Orders have been processed. A total of %3$d Scheduled Orders would have been updated with new pricing. All pricing changes that would have been applied have been exported to the csv export file which can be downloaded by <a href=\"%4$s\">clicking here</a>."
     
    34783414
    34793415#. translators: %1$s is the percentage completed, %2$d is the total number of Scheduled Orders.
    3480 #: src/wholesale-pricing.php:1848
     3416#: src/wholesale-pricing.php:1856
    34813417#, php-format
    34823418msgid "%1$s%% of the %2$d Scheduled Orders have been processed. No updates were needed to the Scheduled Orders."
    34833419msgstr ""
    34843420
    3485 #: src/wholesale-pricing.php:1852
     3421#: src/wholesale-pricing.php:1860
    34863422msgid "Autoship Bulk Update Orders Pricing"
    34873423msgstr ""
    34883424
    3489 #: src/wholesale-pricing.php:1860
     3425#: src/wholesale-pricing.php:1868
    34903426msgid "A Problem was encountered processing the Scheduled Orders.  Please try again."
    34913427msgstr ""
     
    43444280msgstr ""
    43454281
     4282#: templates/admin/settings/utilities.php:67
     4283msgid "Update Product Synchronization"
     4284msgstr ""
     4285
    43464286#: templates/admin/settings/utilities.php:68
    43474287msgid "Control which WooCommerce products are synchronized with your connected QPilot Site. Activate or deactivate all products in bulk."
     
    43644304#: templates/admin/settings/utilities.php:205
    43654305#: templates/admin/settings/utilities.php:259
    4366 #: templates/admin/settings/utilities.php:336
    4367 #: templates/admin/settings/utilities.php:390
    4368 #: templates/admin/settings/utilities.php:430
    4369 #: templates/admin/settings/utilities.php:500
     4306#: templates/admin/settings/utilities.php:312
     4307#: templates/admin/settings/utilities.php:352
     4308#: templates/admin/settings/utilities.php:422
     4309#: templates/admin/settings/utilities/bulk-frequencies.php:64
    43704310msgid "Batch Size"
    43714311msgstr ""
     
    43754315#: templates/admin/settings/utilities.php:214
    43764316#: templates/admin/settings/utilities.php:268
    4377 #: templates/admin/settings/utilities.php:398
     4317#: templates/admin/settings/utilities.php:320
    43784318msgid "Update Products"
    43794319msgstr ""
     
    43924332
    43934333#: templates/admin/settings/utilities.php:125
    4394 #: templates/admin/settings/utilities.php:285
    4395 #: templates/admin/settings/utilities.php:366
     4334#: templates/admin/settings/utilities.php:288
     4335#: templates/admin/settings/utilities/bulk-frequencies.php:20
    43964336msgid "Learn more"
    43974337msgstr ""
     
    44404380msgstr ""
    44414381
    4442 #: templates/admin/settings/utilities.php:284
    4443 msgid "Bulk Update Frequency Options"
    4444 msgstr ""
    4445 
    4446 #: templates/admin/settings/utilities.php:285
    4447 msgid "Update the frequency options displayed for all synced Autoship products. Products with individually overridden frequencies will not be affected."
    4448 msgstr ""
    4449 
    4450 #: templates/admin/settings/utilities.php:296
    4451 msgid "There are no available products to bulk update. Please activate the products first by enabling product sync and ensuring they are displayed in Autoship Cloud."
    4452 msgstr ""
    4453 
    4454 #: templates/admin/settings/utilities.php:302
    4455 msgid "Frequency Option"
    4456 msgstr ""
    4457 
    4458 #: templates/admin/settings/utilities.php:307
    4459 msgid "-- Select frequency type--"
    4460 msgstr ""
    4461 
    4462 #. translators: %s: number of products
    4463 #: templates/admin/settings/utilities.php:329
    4464 #, php-format
    4465 msgid "There are %s products that can be set frequency options."
    4466 msgstr ""
    4467 
    4468 #: templates/admin/settings/utilities.php:351
    4469 msgid "Update Frequency Options"
    4470 msgstr ""
    4471 
    4472 #: templates/admin/settings/utilities.php:355
    4473 msgid "Add Another +"
    4474 msgstr ""
    4475 
    4476 #: templates/admin/settings/utilities.php:365
     4382#: templates/admin/settings/utilities.php:287
    44774383msgid "Bulk Enable Product Availability"
    44784384msgstr ""
    44794385
    4480 #: templates/admin/settings/utilities.php:366
     4386#: templates/admin/settings/utilities.php:288
    44814387msgid "Enable or disable the Add to Scheduled Order and Process on Scheduled Orders options for all products in bulk."
    44824388msgstr ""
    44834389
    4484 #: templates/admin/settings/utilities.php:377
     4390#: templates/admin/settings/utilities.php:299
    44854391msgid "Enable Availability"
    44864392msgstr ""
    44874393
    4488 #: templates/admin/settings/utilities.php:382
     4394#: templates/admin/settings/utilities.php:304
    44894395msgid "Disable Availability"
    44904396msgstr ""
    44914397
    4492 #: templates/admin/settings/utilities.php:414
     4398#: templates/admin/settings/utilities.php:336
    44934399msgid "Bulk Update Customer Metrics"
    44944400msgstr ""
    44954401
    4496 #: templates/admin/settings/utilities.php:415
     4402#: templates/admin/settings/utilities.php:337
    44974403msgid "Import subscription customer metrics from QPilot Cloud into your WordPress database."
    44984404msgstr ""
    44994405
    45004406#. translators: %d is the number of customers.
    4501 #: templates/admin/settings/utilities.php:423
     4407#: templates/admin/settings/utilities.php:345
    45024408#, php-format
    45034409msgid "A total of a %d Customers can be processed."
     
    45054411
    45064412#. translators: %d is the number of customers.
    4507 #: templates/admin/settings/utilities.php:423
     4413#: templates/admin/settings/utilities.php:345
    45084414msgid "There are no available customers to process."
    45094415msgstr ""
    45104416
    4511 #: templates/admin/settings/utilities.php:438
     4417#: templates/admin/settings/utilities.php:360
    45124418msgid "Update Customers"
    45134419msgstr ""
    45144420
    4515 #: templates/admin/settings/utilities.php:477
     4421#: templates/admin/settings/utilities.php:399
    45164422msgid "Automatic Product Sync Utility"
    45174423msgstr ""
    45184424
    4519 #: templates/admin/settings/utilities.php:479
     4425#: templates/admin/settings/utilities.php:401
    45204426msgid "ENABLED"
    45214427msgstr ""
    45224428
    4523 #: templates/admin/settings/utilities.php:481
     4429#: templates/admin/settings/utilities.php:403
    45244430msgid "DISABLED"
    45254431msgstr ""
    45264432
    4527 #: templates/admin/settings/utilities.php:485
     4433#: templates/admin/settings/utilities.php:407
    45284434msgid "Automatically sync product data with Autoship Cloud using the WooCommerce Action Scheduler. Configure batch size and run interval to balance performance and server load."
    45294435msgstr ""
    45304436
    4531 #: templates/admin/settings/utilities.php:490
     4437#: templates/admin/settings/utilities.php:412
    45324438#: templates/quicklaunch/step-connection.php:60
    45334439msgid "There are"
    45344440msgstr ""
    45354441
    4536 #: templates/admin/settings/utilities.php:490
     4442#: templates/admin/settings/utilities.php:412
    45374443msgid "products pending to sync for today."
    45384444msgstr ""
    45394445
    4540 #: templates/admin/settings/utilities.php:494
     4446#: templates/admin/settings/utilities.php:416
    45414447msgid "Last synchronization was executed on"
    45424448msgstr ""
    45434449
    4544 #: templates/admin/settings/utilities.php:494
     4450#: templates/admin/settings/utilities.php:416
    45454451msgid "and took"
    45464452msgstr ""
    45474453
    4548 #: templates/admin/settings/utilities.php:494
     4454#: templates/admin/settings/utilities.php:416
    45494455msgid "seconds to process"
    45504456msgstr ""
    45514457
    4552 #: templates/admin/settings/utilities.php:494
     4458#: templates/admin/settings/utilities.php:416
    45534459msgid "products."
    45544460msgstr ""
    45554461
    45564462#. translators: %1$d is the number of the recommended batch size, %2$d is the number of products.
    4557 #: templates/admin/settings/utilities.php:503
     4463#: templates/admin/settings/utilities.php:425
    45584464#, php-format
    45594465msgid "The suggested batch size is %1$d based on your %2$d products using an interval of 5 minutes."
    45604466msgstr ""
    45614467
    4562 #: templates/admin/settings/utilities.php:510
     4468#: templates/admin/settings/utilities.php:432
    45634469msgid "Run Every"
    45644470msgstr ""
    45654471
    4566 #: templates/admin/settings/utilities.php:512
    4567 #: templates/admin/settings/utilities.php:513
    4568 #: templates/admin/settings/utilities.php:514
    4569 #: templates/admin/settings/utilities.php:515
    4570 #: templates/admin/settings/utilities.php:516
     4472#: templates/admin/settings/utilities.php:434
     4473#: templates/admin/settings/utilities.php:435
     4474#: templates/admin/settings/utilities.php:436
     4475#: templates/admin/settings/utilities.php:437
     4476#: templates/admin/settings/utilities.php:438
    45714477msgid "minutes"
    45724478msgstr ""
    45734479
    4574 #: templates/admin/settings/utilities.php:517
     4480#: templates/admin/settings/utilities.php:439
    45754481msgid "hour"
    45764482msgstr ""
    45774483
    4578 #: templates/admin/settings/utilities.php:518
    4579 #: templates/admin/settings/utilities.php:519
    4580 #: templates/admin/settings/utilities.php:520
    4581 #: templates/admin/settings/utilities.php:521
    4582 #: templates/admin/settings/utilities.php:522
    4583 #: templates/admin/settings/utilities.php:523
     4484#: templates/admin/settings/utilities.php:440
     4485#: templates/admin/settings/utilities.php:441
     4486#: templates/admin/settings/utilities.php:442
     4487#: templates/admin/settings/utilities.php:443
     4488#: templates/admin/settings/utilities.php:444
     4489#: templates/admin/settings/utilities.php:445
    45844490msgid "hours"
    45854491msgstr ""
    45864492
    4587 #: templates/admin/settings/utilities.php:524
     4493#: templates/admin/settings/utilities.php:446
    45884494msgid "daily"
    45894495msgstr ""
    45904496
    4591 #: templates/admin/settings/utilities.php:532
     4497#: templates/admin/settings/utilities.php:454
    45924498msgid "Enable synchronization logs to track activity and errors."
    45934499msgstr ""
    45944500
    4595 #: templates/admin/settings/utilities.php:533
     4501#: templates/admin/settings/utilities.php:455
    45964502msgid "If the logs are enabled, you can download them from Autoship > Settings > Logs section."
    45974503msgstr ""
    45984504
    4599 #: templates/admin/settings/utilities.php:538
     4505#: templates/admin/settings/utilities.php:460
    46004506msgid "Warning:"
    46014507msgstr ""
    46024508
    4603 #: templates/admin/settings/utilities.php:538
     4509#: templates/admin/settings/utilities.php:460
    46044510msgid "Using this settings will take more than 1 day to sync the remaining products."
    46054511msgstr ""
    46064512
    4607 #: templates/admin/settings/utilities.php:544
     4513#: templates/admin/settings/utilities.php:466
    46084514msgid "Update Settings"
    46094515msgstr ""
    46104516
    4611 #: templates/admin/settings/utilities.php:545
     4517#: templates/admin/settings/utilities.php:467
    46124518msgid "Disable Product Sync"
    46134519msgstr ""
    46144520
    4615 #: templates/admin/settings/utilities.php:550
     4521#: templates/admin/settings/utilities.php:472
    46164522msgid "Disabling this utility will prevent data from WooCommerce Products being sent to Autoship Cloud unless you manually sync the data for an individual product or perform a bulk update."
    46174523msgstr ""
    46184524
    4619 #: templates/admin/settings/utilities.php:558
     4525#: templates/admin/settings/utilities.php:480
    46204526msgid "Enable Product Sync"
     4527msgstr ""
     4528
     4529#: templates/admin/settings/utilities/bulk-frequencies.php:19
     4530msgid "Bulk Update Frequency Options"
     4531msgstr ""
     4532
     4533#: templates/admin/settings/utilities/bulk-frequencies.php:20
     4534msgid "Update the frequency options displayed for all synced Autoship products. Products with individually overridden frequencies will not be affected."
     4535msgstr ""
     4536
     4537#: templates/admin/settings/utilities/bulk-frequencies.php:24
     4538msgid "There are no available products to bulk update. Please activate the products first by enabling product sync and ensuring they are displayed in Autoship Cloud."
     4539msgstr ""
     4540
     4541#: templates/admin/settings/utilities/bulk-frequencies.php:30
     4542msgid "Frequency Option"
     4543msgstr ""
     4544
     4545#: templates/admin/settings/utilities/bulk-frequencies.php:35
     4546msgid "-- Select frequency type--"
     4547msgstr ""
     4548
     4549#. translators: %s: number of products
     4550#: templates/admin/settings/utilities/bulk-frequencies.php:57
     4551#, php-format
     4552msgid "There are %s products that can be set frequency options."
     4553msgstr ""
     4554
     4555#: templates/admin/settings/utilities/bulk-frequencies.php:79
     4556msgid "Update Frequency Options"
     4557msgstr ""
     4558
     4559#: templates/admin/settings/utilities/bulk-frequencies.php:83
     4560msgid "Add Another +"
    46214561msgstr ""
    46224562
     
    51665106#: templates/quicklaunch/step-payments.php:101
    51675107#: templates/quicklinks/thank-you.php:360
    5168 #: templates/quicklinks/thank-you2.old.php:360
    51695108msgid "Status:"
    51705109msgstr ""
     
    54595398#: templates/quicklinks/already-processed.php:32
    54605399#: templates/quicklinks/already-processed.php:38
    5461 #: templates/quicklinks/already-processed2.old.php:32
    5462 #: templates/quicklinks/already-processed2.old.php:38
    54635400msgid "processed"
    54645401msgstr ""
    54655402
    54665403#: templates/quicklinks/already-processed.php:33
    5467 #: templates/quicklinks/already-processed2.old.php:33
    54685404msgid "failed"
    54695405msgstr ""
    54705406
    54715407#: templates/quicklinks/already-processed.php:34
    5472 #: templates/quicklinks/already-processed2.old.php:34
    54735408msgid "cancelled"
    54745409msgstr ""
    54755410
    54765411#: templates/quicklinks/already-processed.php:35
    5477 #: templates/quicklinks/already-processed2.old.php:35
    54785412msgid "expired"
    54795413msgstr ""
     
    54815415#. translators: %s: site name.
    54825416#: templates/quicklinks/already-processed.php:47
    5483 #: templates/quicklinks/already-processed2.old.php:47
    54845417#, php-format
    54855418msgid "Already Processed - %s"
     
    54885421#. translators: %s: status text (e.g., "processed", "cancelled")
    54895422#: templates/quicklinks/already-processed.php:316
    5490 #: templates/quicklinks/already-processed2.old.php:316
    54915423#, php-format
    54925424msgid "This confirmation has already been %s."
     
    54945426
    54955427#: templates/quicklinks/already-processed.php:323
    5496 #: templates/quicklinks/already-processed2.old.php:323
    54975428msgid "You cannot process the same confirmation multiple times for security reasons."
    54985429msgstr ""
    54995430
    55005431#: templates/quicklinks/already-processed.php:328
    5501 #: templates/quicklinks/already-processed2.old.php:328
    55025432#: templates/quicklinks/cancelled.php:323
    5503 #: templates/quicklinks/cancelled2.old.php:323
    55045433#: templates/quicklinks/error.php:300
    5505 #: templates/quicklinks/error2.old.php:300
    55065434#: templates/quicklinks/expired.php:326
    5507 #: templates/quicklinks/expired2.old.php:326
    55085435msgid "What You Can Do"
    55095436msgstr ""
    55105437
    55115438#: templates/quicklinks/already-processed.php:330
    5512 #: templates/quicklinks/already-processed2.old.php:330
    55135439msgid "Visit your account to manage your subscriptions"
    55145440msgstr ""
    55155441
    55165442#: templates/quicklinks/already-processed.php:331
    5517 #: templates/quicklinks/already-processed2.old.php:331
    55185443msgid "Check your email for the original confirmation result"
    55195444msgstr ""
    55205445
    55215446#: templates/quicklinks/already-processed.php:332
    5522 #: templates/quicklinks/already-processed2.old.php:332
    55235447#: templates/quicklinks/expired.php:330
    5524 #: templates/quicklinks/expired2.old.php:330
    55255448msgid "Contact support if you need assistance"
    55265449msgstr ""
    55275450
    55285451#: templates/quicklinks/already-processed.php:340
    5529 #: templates/quicklinks/already-processed2.old.php:340
    55305452#: templates/quicklinks/cancelled.php:335
    5531 #: templates/quicklinks/cancelled2.old.php:335
    55325453#: templates/quicklinks/error.php:313
    5533 #: templates/quicklinks/error2.old.php:313
    55345454msgid "Go to My Subscriptions"
    55355455msgstr ""
    55365456
    55375457#: templates/quicklinks/already-processed.php:343
    5538 #: templates/quicklinks/already-processed2.old.php:343
    55395458#: templates/quicklinks/cancelled.php:338
    5540 #: templates/quicklinks/cancelled2.old.php:338
    55415459#: templates/quicklinks/error.php:316
    5542 #: templates/quicklinks/error2.old.php:316
    55435460#: templates/quicklinks/expired.php:338
    5544 #: templates/quicklinks/expired2.old.php:338
    55455461msgid "Go to My Account"
    55465462msgstr ""
    55475463
    55485464#: templates/quicklinks/already-processed.php:347
    5549 #: templates/quicklinks/already-processed2.old.php:347
    55505465#: templates/quicklinks/cancelled.php:342
    5551 #: templates/quicklinks/cancelled2.old.php:342
    55525466#: templates/quicklinks/error.php:320
    5553 #: templates/quicklinks/error2.old.php:320
    55545467#: templates/quicklinks/expired.php:341
    55555468#: templates/quicklinks/expired.php:345
    5556 #: templates/quicklinks/expired2.old.php:341
    5557 #: templates/quicklinks/expired2.old.php:345
    55585469msgid "Return to Home"
    55595470msgstr ""
    55605471
    55615472#: templates/quicklinks/already-processed.php:354
    5562 #: templates/quicklinks/already-processed2.old.php:354
    55635473#: templates/quicklinks/cancelled.php:350
    5564 #: templates/quicklinks/cancelled2.old.php:350
    55655474#: templates/quicklinks/error.php:328
    5566 #: templates/quicklinks/error2.old.php:328
    55675475#: templates/quicklinks/expired.php:355
    5568 #: templates/quicklinks/expired2.old.php:355
    55695476#: templates/quicklinks/partials/powered-by.php:19
    55705477#: templates/quicklinks/rate-limited.php:314
    5571 #: templates/quicklinks/rate-limited2.old.php:314
    55725478#: templates/quicklinks/scanner-detected.php:304
    5573 #: templates/quicklinks/scanner-detected2.old.php:304
    55745479#: templates/quicklinks/thank-you.php:412
    5575 #: templates/quicklinks/thank-you2.old.php:412
    55765480msgid "Powered by"
    55775481msgstr ""
    55785482
    55795483#: templates/quicklinks/cancelled.php:27
    5580 #: templates/quicklinks/cancelled2.old.php:27
    55815484msgid "requested"
    55825485msgstr ""
     
    55845487#. translators: %s: site name.
    55855488#: templates/quicklinks/cancelled.php:36
    5586 #: templates/quicklinks/cancelled2.old.php:36
    55875489#, php-format
    55885490msgid "Action Cancelled - %s"
     
    55915493#. translators: %s: action name (e.g., "pause", "resume")
    55925494#: templates/quicklinks/cancelled.php:311
    5593 #: templates/quicklinks/cancelled2.old.php:311
    55945495#, php-format
    55955496msgid "You have cancelled the %s action."
     
    55975498
    55985499#: templates/quicklinks/cancelled.php:318
    5599 #: templates/quicklinks/cancelled2.old.php:318
    56005500msgid "No changes have been made to your subscription."
    56015501msgstr ""
    56025502
    56035503#: templates/quicklinks/cancelled.php:325
    5604 #: templates/quicklinks/cancelled2.old.php:325
    56055504msgid "Manage your subscription from your account dashboard"
    56065505msgstr ""
    56075506
    56085507#: templates/quicklinks/cancelled.php:326
    5609 #: templates/quicklinks/cancelled2.old.php:326
    56105508msgid "Request a new action link if needed"
    56115509msgstr ""
    56125510
    56135511#: templates/quicklinks/cancelled.php:327
    5614 #: templates/quicklinks/cancelled2.old.php:327
    56155512msgid "Contact our support team if you need assistance"
    56165513msgstr ""
     
    56185515#: templates/quicklinks/confirm.php:42
    56195516#: templates/quicklinks/thank-you.php:32
    5620 #: templates/quicklinks/thank-you2.old.php:32
    56215517msgid "subscription"
    56225518msgstr ""
     
    56685564#. translators: %s: site name.
    56695565#: templates/quicklinks/error.php:35
    5670 #: templates/quicklinks/error2.old.php:35
    56715566#, php-format
    56725567msgid "Action Failed - %s"
     
    56745569
    56755570#: templates/quicklinks/error.php:302
    5676 #: templates/quicklinks/error2.old.php:302
    56775571msgid "Try accessing the link again from your original email"
    56785572msgstr ""
    56795573
    56805574#: templates/quicklinks/error.php:303
    5681 #: templates/quicklinks/error2.old.php:303
    56825575msgid "Check if you are logged into your account"
    56835576msgstr ""
    56845577
    56855578#: templates/quicklinks/error.php:304
    5686 #: templates/quicklinks/error2.old.php:304
    56875579msgid "Manage your subscription directly from your account dashboard"
    56885580msgstr ""
    56895581
    56905582#: templates/quicklinks/error.php:305
    5691 #: templates/quicklinks/error2.old.php:305
    56925583msgid "Contact our support team if the issue persists"
    56935584msgstr ""
     
    56955586#. translators: %s: site name.
    56965587#: templates/quicklinks/expired.php:30
    5697 #: templates/quicklinks/expired2.old.php:30
    56985588#, php-format
    56995589msgid "Link Expired - %s"
     
    57015591
    57025592#: templates/quicklinks/expired.php:317
    5703 #: templates/quicklinks/expired2.old.php:317
    57045593msgid "This confirmation link has expired after 30 minutes."
    57055594msgstr ""
    57065595
    57075596#: templates/quicklinks/expired.php:321
    5708 #: templates/quicklinks/expired2.old.php:321
    57095597msgid "For your security, confirmation links expire after a short period."
    57105598msgstr ""
    57115599
    57125600#: templates/quicklinks/expired.php:328
    5713 #: templates/quicklinks/expired2.old.php:328
    57145601msgid "Request a new action link from your email"
    57155602msgstr ""
    57165603
    57175604#: templates/quicklinks/expired.php:329
    5718 #: templates/quicklinks/expired2.old.php:329
    57195605msgid "Visit your account to manage your subscription"
    57205606msgstr ""
    57215607
    57225608#: templates/quicklinks/expired.php:348
    5723 #: templates/quicklinks/expired2.old.php:348
    57245609msgid "Sign in to your account"
    57255610msgstr ""
     
    57275612#. translators: %s: site name.
    57285613#: templates/quicklinks/rate-limited.php:32
    5729 #: templates/quicklinks/rate-limited2.old.php:32
    57305614#, php-format
    57315615msgid "Please Wait - %s"
     
    57335617
    57345618#: templates/quicklinks/rate-limited.php:294
    5735 #: templates/quicklinks/rate-limited2.old.php:294
    57365619msgid "Seconds Remaining"
    57375620msgstr ""
    57385621
    57395622#: templates/quicklinks/rate-limited.php:299
    5740 #: templates/quicklinks/rate-limited2.old.php:299
    57415623msgid "This page will automatically reload when you can try again."
    57425624msgstr ""
    57435625
    57445626#: templates/quicklinks/rate-limited.php:304
    5745 #: templates/quicklinks/rate-limited2.old.php:304
    57465627#: templates/quicklinks/scanner-detected.php:278
    5747 #: templates/quicklinks/scanner-detected2.old.php:278
    57485628msgid "Why Am I Seeing This?"
    57495629msgstr ""
    57505630
    57515631#: templates/quicklinks/rate-limited.php:306
    5752 #: templates/quicklinks/rate-limited2.old.php:306
    57535632msgid "Too many requests were made in a short time"
    57545633msgstr ""
    57555634
    57565635#: templates/quicklinks/rate-limited.php:307
    5757 #: templates/quicklinks/rate-limited2.old.php:307
    57585636msgid "This helps protect against automated attacks"
    57595637msgstr ""
    57605638
    57615639#: templates/quicklinks/rate-limited.php:308
    5762 #: templates/quicklinks/rate-limited2.old.php:308
    57635640msgid "You can retry once the countdown reaches zero"
    57645641msgstr ""
    57655642
    57665643#: templates/quicklinks/scanner-detected.php:30
    5767 #: templates/quicklinks/scanner-detected2.old.php:30
    57685644msgid "Human Verification Required"
    57695645msgstr ""
    57705646
    57715647#: templates/quicklinks/scanner-detected.php:273
    5772 #: templates/quicklinks/scanner-detected2.old.php:273
    57735648msgid "This action requires human confirmation for your security and protection."
    57745649msgstr ""
    57755650
    57765651#: templates/quicklinks/scanner-detected.php:280
    5777 #: templates/quicklinks/scanner-detected2.old.php:280
    57785652msgid "We detected that this link may have been accessed by an automated email security scanner rather than directly by you."
    57795653msgstr ""
    57805654
    57815655#: templates/quicklinks/scanner-detected.php:283
    5782 #: templates/quicklinks/scanner-detected2.old.php:283
    57835656msgid "Email security systems (like Outlook SafeLinks or Gmail Image Proxy) automatically check links in emails for phishing and malware. While this protects you, it can sometimes accidentally trigger subscription actions before you're ready."
    57845657msgstr ""
    57855658
    57865659#: templates/quicklinks/scanner-detected.php:289
    5787 #: templates/quicklinks/scanner-detected2.old.php:289
    57885660msgid "How To Proceed"
    57895661msgstr ""
    57905662
    57915663#: templates/quicklinks/scanner-detected.php:291
    5792 #: templates/quicklinks/scanner-detected2.old.php:291
    57935664msgid "Open the link from your email client"
    57945665msgstr ""
    57955666
    57965667#: templates/quicklinks/scanner-detected.php:291
    5797 #: templates/quicklinks/scanner-detected2.old.php:291
    57985668msgid "Click the link directly in your email"
    57995669msgstr ""
    58005670
    58015671#: templates/quicklinks/scanner-detected.php:292
    5802 #: templates/quicklinks/scanner-detected2.old.php:292
    58035672msgid "Use a different browser"
    58045673msgstr ""
    58055674
    58065675#: templates/quicklinks/scanner-detected.php:292
    5807 #: templates/quicklinks/scanner-detected2.old.php:292
    58085676msgid "If using a work/corporate email, try a personal browser"
    58095677msgstr ""
    58105678
    58115679#: templates/quicklinks/scanner-detected.php:293
    5812 #: templates/quicklinks/scanner-detected2.old.php:293
    58135680msgid "Contact support"
    58145681msgstr ""
    58155682
    58165683#: templates/quicklinks/scanner-detected.php:293
    5817 #: templates/quicklinks/scanner-detected2.old.php:293
    58185684msgid "If you continue to see this message, we can help"
    58195685msgstr ""
    58205686
    58215687#: templates/quicklinks/scanner-detected.php:299
    5822 #: templates/quicklinks/scanner-detected2.old.php:299
    58235688msgid "This security measure ensures that your subscription actions only occur when you intentionally click the link, not when an automated scanner checks it."
    58245689msgstr ""
    58255690
    58265691#: templates/quicklinks/thank-you.php:59
    5827 #: templates/quicklinks/thank-you2.old.php:59
    58285692msgid "Your subscription will resume with the next scheduled delivery."
    58295693msgstr ""
    58305694
    58315695#: templates/quicklinks/thank-you.php:60
    5832 #: templates/quicklinks/thank-you2.old.php:60
    58335696msgid "Your subscription is now paused. No charges will occur until you resume."
    58345697msgstr ""
    58355698
    58365699#: templates/quicklinks/thank-you.php:61
    5837 #: templates/quicklinks/thank-you2.old.php:61
    58385700msgid "We are processing your order now. Check your email for order confirmation and tracking details."
    58395701msgstr ""
    58405702
    58415703#: templates/quicklinks/thank-you.php:62
    5842 #: templates/quicklinks/thank-you2.old.php:62
    58435704msgid "Welcome back! Your subscription is now active again."
    58445705msgstr ""
    58455706
    58465707#: templates/quicklinks/thank-you.php:64
    5847 #: templates/quicklinks/thank-you2.old.php:64
    58485708msgid "You can manage your subscription anytime through your account dashboard."
    58495709msgstr ""
     
    58515711#. translators: %s: site name.
    58525712#: templates/quicklinks/thank-you.php:73
    5853 #: templates/quicklinks/thank-you2.old.php:73
    58545713#, php-format
    58555714msgid "Action Successful - %s"
     
    58575716
    58585717#: templates/quicklinks/thank-you.php:356
    5859 #: templates/quicklinks/thank-you2.old.php:356
    58605718msgid "Subscription Details"
    58615719msgstr ""
    58625720
    58635721#: templates/quicklinks/thank-you.php:366
    5864 #: templates/quicklinks/thank-you2.old.php:366
    58655722msgid "Next Occurrence Date:"
    58665723msgstr ""
    58675724
    58685725#: templates/quicklinks/thank-you.php:373
    5869 #: templates/quicklinks/thank-you2.old.php:373
    58705726msgid "Order ID:"
    58715727msgstr ""
    58725728
    58735729#: templates/quicklinks/thank-you.php:388
    5874 #: templates/quicklinks/thank-you2.old.php:388
    58755730msgid "View My Subscriptions"
    58765731msgstr ""
    58775732
    58785733#: templates/quicklinks/thank-you.php:392
    5879 #: templates/quicklinks/thank-you2.old.php:392
    58805734msgid "Continue Shopping"
    58815735msgstr ""
     
    58835737#. translators: %s: support email link
    58845738#: templates/quicklinks/thank-you.php:403
    5885 #: templates/quicklinks/thank-you2.old.php:403
    58865739#, php-format
    58875740msgid "Questions? Contact us at %s"
  • autoship-cloud/trunk/readme.txt

    r3475704 r3481543  
    1010WC tested up to: 10.4.3
    1111Requires PHP: 7.4
    12 Stable tag: 2.12.1
     12Stable tag: 2.12.2
    1313License: GPLv2 or later
    1414License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    291291
    292292== Changelog ==
     293
     294= 2.12.2 - 2026-03-12 =
     295
     296  - New! Migrated the health check system to the modern module architecture with dedicated REST and AJAX controllers, a centralized health check service, and full legacy compatibility.
     297
     298  - New! Added a Labels service for centralized management of UI labels and display strings.
     299
     300  - Improved: Reorganized legacy code files (logger, deprecated functions, languages, health checks) into a dedicated `src/legacy/` directory with proper deprecation notices.
     301
     302  - Improved: Removed the chatbot (WebChat) feature and its dependencies.
     303
     304  - Improved: Cleaned up unused legacy code including WC-Autoship dead code, export/import utilities, and upgrade routines.
     305
     306  - Improved: Updated positioning of event logs and product dropdown on the scheduled order deletion modal.
     307
     308  - Improved: Added `is_tracing_enabled` support on logs for better debugging control.
     309
     310  - Improved: Updated translations and composer configuration.
     311
     312  - Fixed: Stripe gateway metadata fees compatibility for Stripe plugin versions earlier than 8.8.0.
    293313
    294314= 2.12.1 - 2026-03-04 =
  • autoship-cloud/trunk/src/admin.php

    r3453277 r3481543  
    10221022            'autoship_token_auth'                       => 'autoship-settings-group',
    10231023            'autoship_refresh_token'                    => 'autoship-settings-group',
    1024             'autoship_webchat_directline_secret'        => 'autoship-settings-group',
    10251024            'autoship_product_message'                  => 'autoship-settings-group',
    10261025            'autoship_scheduled_orders_app_enabled'     => 'autoship-settings-group',
     
    12311230            'autoship_product_message',
    12321231            'autoship_dynamic_cart',
    1233             'autoship_webchat_directline_secret',
    12341232            'autoship_health',
    12351233            'autoship_get_checked_utc',
     
    15301528function autoship_exclude_submit_on_tab( $include_submit, $active_tab ) {
    15311529
    1532     return ! in_array( $active_tab, array( 'autoship-extensions', 'autoship-utilities', 'autoship-migrations', 'autoship-logs' ), true );
     1530    return ! in_array( $active_tab, array( 'autoship-extensions', 'autoship-utilities', 'autoship-logs' ), true );
    15331531}
    15341532
     
    16521650function autoship_utilities_section( $autoship_settings ) {
    16531651    autoship_include_template( 'admin/settings/utilities', array( 'autoship_settings' => $autoship_settings ) );
    1654 }
    1655 
    1656 /**
    1657  * Generates the content for a Autoship Cloud > Settings > Migrations section.
    1658  *
    1659  * @param array $autoship_settings The current autoship Settings fields and values.
    1660  */
    1661 function autoship_migrations_section( $autoship_settings ) {
    1662     autoship_include_template( 'admin/migrations', array( 'autoship_settings' => $autoship_settings ) );
    16631652}
    16641653
  • autoship-cloud/trunk/src/api.php

    r3352156 r3481543  
    346346    global $woocommerce;
    347347
    348     $legacy      = autoship_has_legacy_origin();
    349348    $frequencies = autoship_default_frequency_options();
    350349
     
    353352        '_qpilot_wordpress_version'        => get_bloginfo( 'version' ),
    354353        '_qpilot_woocommerce_version'      => $woocommerce->version,
    355         '_qpilot_wc_autoship_legacy'       => $legacy,
    356354        '_qpilot_php_version'              => phpversion(),
    357355        '_qpilot_extensions'               => autoship_get_custom_extensions(),
     
    460458add_action( 'rest_api_init', 'autoship_qpilot_orders_routes', 99 );
    461459
    462 /**
    463  * Registeres new REST API endpoints for QPilot
    464  * Used for integration testing the PUT & POST calls.
    465  *
    466  * Uses the {@see WP_REST_Server} class
    467  * READABLE   = 'GET';
    468  * CREATABLE  = 'POST';
    469  * EDITABLE   = 'POST, PUT, PATCH';
    470  * DELETABLE  = 'DELETE';
    471  * ALLMETHODS = 'GET, POST, PUT, PATCH, DELETE';
    472  */
    473 function autoship_qpilot_statuscheck_routes() {
    474     /*
    475      * Registers a new REST API endpoint for QPilot
    476      *
    477      * @param string $namespace The first URL segment after core prefix. Should be unique to your package/plugin.
    478      * @param string $route The base URL for route you are adding.
    479      * @param array $args Optional. Either an array of options for the endpoint, or an array of arrays for
    480      *                          multiple methods. Default empty array.
    481      */
    482     register_rest_route(
    483         'autoshipcloud/v1',
    484         '/statuscheck/put',
    485         array(
    486             'methods'             => WP_REST_Server::EDITABLE,
    487             'callback'            => 'autoship_qpilot_statuscheck_put_update',
    488             'permission_callback' => 'autoship_qpilot_statuscheck_permission_check',
    489         )
    490     );
    491 
    492     register_rest_route(
    493         'autoshipcloud/v1',
    494         '/statuscheck/post',
    495         array(
    496             'methods'             => WP_REST_Server::CREATABLE,
    497             'callback'            => 'autoship_qpilot_statuscheck_post_update',
    498             'permission_callback' => 'autoship_qpilot_statuscheck_permission_check',
    499         )
    500     );
    501 
    502     register_rest_route(
    503         'autoshipcloud/v1',
    504         '/statuscheck/get',
    505         array(
    506             'methods'             => WP_REST_Server::READABLE,
    507             'callback'            => 'autoship_qpilot_statuscheck_get_update',
    508             'permission_callback' => 'autoship_qpilot_statuscheck_permission_check',
    509         )
    510     );
    511 }
    512 
    513 add_action( 'rest_api_init', 'autoship_qpilot_statuscheck_routes', 99 );
    514 
    515460// ==========================================================
    516461// REST API Permission Callback Functions
     
    550495function autoship_qpilot_products_permissions( $request ) {
    551496    return apply_filters( 'autoship_qpilot_products_permission_check', true, $request );
    552 }
    553 
    554 /**
    555  * Permission Callback for the health check endpoints
    556  *
    557  * @param WP_REST_Request $request The Request.
    558  *
    559  * @return bool|WP_Error True if use has permissions else WP_Error
    560  */
    561 function autoship_qpilot_statuscheck_permission_check( $request ) {
    562     return apply_filters( 'autoship_qpilot_statuscheck_permission_check', true, $request );
    563497}
    564498
     
    652586
    653587/**
    654  * Updates the PUT status check with the current time.
    655  *
    656  * @param WP_REST_Request $request Request data.
    657  *
    658  * @return WP_REST_Response
    659  */
    660 function autoship_qpilot_statuscheck_put_update( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
    661 
    662     // Get current UTC date time.
    663     // Specified date/time in the specified time zone.
    664     $date = new DateTime();
    665     $date->setTimezone( new DateTimeZone( 'UTC' ) );
    666     $timestamp = $date->getTimestamp();
    667 
    668     // Attempt to update the integration status for PUT action.
    669     $result = autoship_update_integration_point_status( 'put', $timestamp );
    670 
    671     if ( false === $result ) {
    672         // Create & return the response object.
    673         $response = new WP_REST_Response(
    674             array(
    675                 'code'    => 'autoship_put_failure',
    676                 'message' => 'Autoship PUT Update Failed. WordPress Update WP Options Record Failed.',
    677             )
    678         );
    679 
    680         $response->set_status( 500 );
    681 
    682         return $response;
    683     } else {
    684         // Create & return the response object.
    685         $response = new WP_REST_Response(
    686             array(
    687                 'code'    => 'autoship_put_success',
    688                 'message' => 'Autoship PUT Update Success',
    689             )
    690         );
    691 
    692         $response->set_status( 200 );
    693 
    694         return $response;
    695     }
    696 }
    697 
    698 /**
    699  * Updates the POST status check with the current time.
    700  *
    701  * @param WP_REST_Request $request Request data.
    702  *
    703  * @return WP_REST_Response
    704  */
    705 function autoship_qpilot_statuscheck_post_update( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
    706 
    707     // Get current UTC date time
    708     // Specified date/time in the specified time zone.
    709     $date = new DateTime();
    710     $date->setTimezone( new DateTimeZone( 'UTC' ) );
    711     $timestamp = $date->getTimestamp();
    712 
    713     // Attempt to update the integration status for POST action.
    714     $result = autoship_update_integration_point_status( 'post', $timestamp );
    715 
    716     if ( false === $result ) {
    717 
    718         // Create & return the response object.
    719         $response = new WP_REST_Response(
    720             array(
    721                 'code'    => 'autoship_post_failure',
    722                 'message' => 'Autoship POST Update Failed. WordPress Update WP Options Record Failed.',
    723             )
    724         );
    725 
    726         $response->set_status( 500 );
    727 
    728         return $response;
    729 
    730     } else {
    731         // Create & return the response object.
    732         $response = new WP_REST_Response(
    733             array(
    734                 'code'    => 'autoship_post_success',
    735                 'message' => 'Autoship POST Update Success',
    736             )
    737         );
    738 
    739         $response->set_status( 200 );
    740 
    741         return $response;
    742     }
    743 }
    744 
    745 /**
    746  * Updates the POST status check with the current time.
    747  *
    748  * @param WP_REST_Request $request Request data.
    749  *
    750  * @return WP_REST_Response
    751  */
    752 function autoship_qpilot_statuscheck_get_update( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
    753 
    754     // Get current UTC date time.
    755     // Specified date/time in the specified time zone.
    756     $date = new DateTime();
    757     $date->setTimezone( new DateTimeZone( 'UTC' ) );
    758     $timestamp = $date->getTimestamp();
    759 
    760     // Attempt to update the integration status for GET action.
    761     $result = autoship_update_integration_point_status( 'get', $timestamp );
    762 
    763     if ( false === $result ) {
    764         // Create & return the response object.
    765         $response = new WP_REST_Response(
    766             array(
    767                 'code'    => 'autoship_get_failure',
    768                 'message' => 'Autoship GET Update Failed. WordPress Update WP Options Record Failed.',
    769             )
    770         );
    771 
    772         $response->set_status( 500 );
    773 
    774         return $response;
    775     } else {
    776         // Create & return the response object.
    777         $response = new WP_REST_Response(
    778             array(
    779                 'code'    => 'autoship_get_success',
    780                 'message' => 'Autoship GET Update Success',
    781             )
    782         );
    783 
    784         $response->set_status( 200 );
    785         return $response;
    786     }
    787 }
    788 
    789 /**
    790588 * Updates the Availability for a product
    791589 *
  • autoship-cloud/trunk/src/payments.php

    r3462779 r3481543  
    36273627    }
    36283628
     3629    // Stripe plugin 8.8.0+ handles fee/net metadata natively; skip to avoid doubling values.
     3630    if ( defined( 'WC_STRIPE_VERSION' ) && version_compare( WC_STRIPE_VERSION, '8.8.0', '>=' ) ) {
     3631        return;
     3632    }
     3633
    36293634    $fee_refund = null;
    36303635    $net_refund = null;
  • autoship-cloud/trunk/src/scripts.php

    r3453277 r3481543  
    5454        // Add the filter to convert scripts to ES modules.
    5555        add_filter( 'script_loader_tag', 'autoship_add_module_type_to_scripts', 10, 3 );
     56
     57        // Fix PrimeNG overlay positioning in WP admin.
     58        wp_enqueue_script( 'autoship-qmc-overlay-fix', plugin_dir_url( Autoship_Plugin_File ) . 'js/admin/qmc-overlay-fix.js', array(), Autoship_Version, true );
    5659    }
    5760}
     
    9699        wp_enqueue_script( 'autoship-select-frequency-dialog', plugin_dir_url( Autoship_Plugin_File ) . 'js/select-frequency-dialog.js', array(), Autoship_Version, true );
    97100        wp_enqueue_script( 'autoship-select-next-occurrence-dialog', plugin_dir_url( Autoship_Plugin_File ) . 'js/select-next-occurrence-dialog.js', array(), Autoship_Version, true );
    98     }
    99 
    100     // Only Load if Chat Bot is Enabled.
    101     if ( ! empty( autoship_get_settings_fields( 'autoship_webchat_directline_secret', true ) ) ) {
    102         wp_enqueue_style( 'autoship-webchat', plugin_dir_url( Autoship_Plugin_File ) . 'WebChat/botchat.css', array(), Autoship_Version );
    103         wp_enqueue_script( 'autoship-webchat', plugin_dir_url( Autoship_Plugin_File ) . 'WebChat/botchat.js', array(), Autoship_Version, true );
    104101    }
    105102
  • autoship-cloud/trunk/src/shortcodes.php

    r3352156 r3481543  
    4545
    4646    // Add Freq and Freqtype.
    47     if ( ! empty( $attributes['schedule'] ) && ! empty( $attributes['schedule'] ) ) {
     47    if ( ! empty( $attributes['schedule'] ) ) {
    4848
    4949        $vals = explode( ':', $attributes['schedule'] );
     
    8484            }
    8585        } else {
    86             $params['mincycle'] = absint( $product[0] );
     86            $params['mincycle'] = absint( $vals[0] );
    8787        }
    8888    }
     
    232232
    233233add_shortcode( 'autoship-schedule-cart', 'autoship_shortcode_schedule_cart' );
    234 
    235 /**
    236  * Outputs the Chat Bot Template
    237  *
    238  * @param array $attributes Attributes.
    239  *
    240  * @return string
    241  */
    242 function autoship_shortcode_customer_bot( $attributes = array() ) {
    243     $attributes = shortcode_atts( array(), $attributes );
    244 
    245     $webchat_directline_secret = get_option( 'autoship_webchat_directline_secret' );
    246     if ( empty( $webchat_directline_secret ) ) {
    247         return '';
    248     }
    249 
    250     $customer_id = get_current_user_id();
    251     if ( empty( $customer_id ) ) {
    252         return '';
    253     }
    254     $autoship_customer_id = get_user_meta( $customer_id, '_autoship_customer_id', true );
    255     if ( ! empty( $autoship_customer_id ) ) {
    256         $client = autoship_get_default_client();
    257         try {
    258             $scheduled_orders       = $client->get_orders( $autoship_customer_id );
    259             $scheduled_orders_count = count( $scheduled_orders );
    260             if ( $scheduled_orders_count < 1 ) {
    261                 return '';
    262             }
    263 
    264             $access_token = $client->generate_customer_access_token( $autoship_customer_id, autoship_get_client_secret() );
    265             $user_data    = get_userdata( $customer_id );
    266 
    267             return autoship_render_template(
    268                 'webchat/customer-bot',
    269                 array(
    270                     'webchat_directline_secret' => $webchat_directline_secret,
    271                     'scheduled_orders_count'    => $scheduled_orders_count,
    272                     'customer_id'               => $customer_id,
    273                     'customer_name'             => $user_data->user_firstname,
    274                     'autoship_customer_id'      => $autoship_customer_id,
    275                     'token_auth'                => $access_token->TokenAuth, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
    276                 )
    277             );
    278         } catch ( Exception $e ) {
    279             // translators: %1$s is the error code, %2$s is the error message.
    280             return sprintf( __( 'Error %1$s: %2$s', 'autoship' ), strval( $e->getCode() ), $e->getMessage() );
    281         }
    282     }
    283 
    284     return '';
    285 }
    286 
    287 add_shortcode( 'autoship-customer-bot', 'autoship_shortcode_customer_bot' );
    288 
    289 // Enable shortcodes in text widgets.
    290 add_filter( 'widget_text', 'do_shortcode' );
  • autoship-cloud/trunk/styles/qmc.css

    r3453277 r3481543  
    21072107    line-height: 1rem;
    21082108}
     2109
     2110/* --------------------------------------------------------------------------
     2111   QMC Dialog / Overlay z-index fix
     2112   WordPress admin sidebar (#adminmenuwrap) uses z-index: 9990.
     2113   PrimeNG overlays must sit above it so modals (e.g. Event Logs) and
     2114   dropdown panels (e.g. Order Items combobox) are not hidden behind
     2115   the sidebar on the scheduled-order edit view.
     2116   -------------------------------------------------------------------------- */
     2117.p-dialog-mask,
     2118.p-overlay-mask,
     2119.cdk-overlay-container {
     2120    z-index: 99999 !important;
     2121}
     2122
     2123.p-autocomplete-overlay,
     2124.p-dropdown-overlay,
     2125.p-multiselect-overlay,
     2126.p-select-overlay,
     2127.p-overlay,
     2128.p-popover,
     2129.p-connected-overlay {
     2130    z-index: 99999 !important;
     2131}
     2132
     2133/* --------------------------------------------------------------------------
     2134   QMC Overlay width constraint
     2135   The QMC component sets .product-search-panel { width: calc(100vw - 350px) !important }
     2136   which overflows the viewport when the overlay left is corrected by JS.
     2137   Override with inherit so the panel respects the overlay container width
     2138   set by qmc-overlay-fix.js.
     2139   -------------------------------------------------------------------------- */
     2140body.wp-admin .product-search-panel {
     2141    width: inherit !important;
     2142    min-width: inherit !important;
     2143    max-width: 100% !important;
     2144}
  • autoship-cloud/trunk/templates/admin/settings/options.php

    r3453277 r3481543  
    432432
    433433</div><!-- .asc-settings-columns -->
    434 
    435 <input type="hidden" id="autoship_webchat_directline_secret" name="autoship_webchat_directline_secret" value="<?php echo esc_attr( $autoship_settings['autoship_webchat_directline_secret'] ); ?>"/>
  • autoship-cloud/trunk/vendor/composer/autoload_classmap.php

    r3475704 r3481543  
    4444    'Autoship\\Domain\\AutoshipProduct' => $baseDir . '/app/Domain/AutoshipProduct.php',
    4545    'Autoship\\Domain\\FrequencyOption' => $baseDir . '/app/Domain/FrequencyOption.php',
     46    'Autoship\\Domain\\Healthcheck\\HttpErrorCodes' => $baseDir . '/app/Domain/Healthcheck/HttpErrorCodes.php',
    4647    'Autoship\\Domain\\Nextime\\DeliveryDate' => $baseDir . '/app/Domain/Nextime/DeliveryDate.php',
    4748    'Autoship\\Domain\\Nextime\\NextimeShippingCalculator' => $baseDir . '/app/Domain/Nextime/NextimeShippingCalculator.php',
     
    7475    'Autoship\\Domain\\QuickLinks\\QuickLinkVerification' => $baseDir . '/app/Domain/QuickLinks/QuickLinkVerification.php',
    7576    'Autoship\\Domain\\QuickLinks\\RedirectType' => $baseDir . '/app/Domain/QuickLinks/RedirectType.php',
     77    'Autoship\\Modules\\Healthcheck\\Compatibility\\HealthcheckCompatibility' => $baseDir . '/app/Modules/Healthcheck/Compatibility/HealthcheckCompatibility.php',
     78    'Autoship\\Modules\\Healthcheck\\Controllers\\HealthcheckAjaxController' => $baseDir . '/app/Modules/Healthcheck/Controllers/HealthcheckAjaxController.php',
     79    'Autoship\\Modules\\Healthcheck\\Controllers\\HealthcheckRestController' => $baseDir . '/app/Modules/Healthcheck/Controllers/HealthcheckRestController.php',
     80    'Autoship\\Modules\\Healthcheck\\HealthcheckModule' => $baseDir . '/app/Modules/Healthcheck/HealthcheckModule.php',
     81    'Autoship\\Modules\\Healthcheck\\HealthcheckService' => $baseDir . '/app/Modules/Healthcheck/HealthcheckService.php',
    7682    'Autoship\\Modules\\Nextime\\NextimeModule' => $baseDir . '/app/Modules/Nextime/NextimeModule.php',
    7783    'Autoship\\Modules\\Nextime\\NextimeService' => $baseDir . '/app/Modules/Nextime/NextimeService.php',
     
    120126    'Autoship\\Repositories\\Implementations\\WordPressProductRepository' => $baseDir . '/app/Repositories/Implementations/WordPressProductRepository.php',
    121127    'Autoship\\Repositories\\ProductRepositoryInterface' => $baseDir . '/app/Repositories/ProductRepositoryInterface.php',
     128    'Autoship\\Services\\Healthcheck\\HealthcheckSettingsInterface' => $baseDir . '/app/Services/Healthcheck/HealthcheckSettingsInterface.php',
     129    'Autoship\\Services\\Healthcheck\\Implementations\\WordPressHealthcheckSettings' => $baseDir . '/app/Services/Healthcheck/Implementations/WordPressHealthcheckSettings.php',
     130    'Autoship\\Services\\Labels\\Implementations\\WordPressLabelService' => $baseDir . '/app/Services/Labels/Implementations/WordPressLabelService.php',
     131    'Autoship\\Services\\Labels\\LabelServiceInterface' => $baseDir . '/app/Services/Labels/LabelServiceInterface.php',
    122132    'Autoship\\Services\\Logging\\AutoshipLogger' => $baseDir . '/app/Services/Logging/AutoshipLogger.php',
    123133    'Autoship\\Services\\Logging\\FileSink' => $baseDir . '/app/Services/Logging/FileSink.php',
  • autoship-cloud/trunk/vendor/composer/autoload_static.php

    r3475704 r3481543  
    5959        'Autoship\\Domain\\AutoshipProduct' => __DIR__ . '/../..' . '/app/Domain/AutoshipProduct.php',
    6060        'Autoship\\Domain\\FrequencyOption' => __DIR__ . '/../..' . '/app/Domain/FrequencyOption.php',
     61        'Autoship\\Domain\\Healthcheck\\HttpErrorCodes' => __DIR__ . '/../..' . '/app/Domain/Healthcheck/HttpErrorCodes.php',
    6162        'Autoship\\Domain\\Nextime\\DeliveryDate' => __DIR__ . '/../..' . '/app/Domain/Nextime/DeliveryDate.php',
    6263        'Autoship\\Domain\\Nextime\\NextimeShippingCalculator' => __DIR__ . '/../..' . '/app/Domain/Nextime/NextimeShippingCalculator.php',
     
    8990        'Autoship\\Domain\\QuickLinks\\QuickLinkVerification' => __DIR__ . '/../..' . '/app/Domain/QuickLinks/QuickLinkVerification.php',
    9091        'Autoship\\Domain\\QuickLinks\\RedirectType' => __DIR__ . '/../..' . '/app/Domain/QuickLinks/RedirectType.php',
     92        'Autoship\\Modules\\Healthcheck\\Compatibility\\HealthcheckCompatibility' => __DIR__ . '/../..' . '/app/Modules/Healthcheck/Compatibility/HealthcheckCompatibility.php',
     93        'Autoship\\Modules\\Healthcheck\\Controllers\\HealthcheckAjaxController' => __DIR__ . '/../..' . '/app/Modules/Healthcheck/Controllers/HealthcheckAjaxController.php',
     94        'Autoship\\Modules\\Healthcheck\\Controllers\\HealthcheckRestController' => __DIR__ . '/../..' . '/app/Modules/Healthcheck/Controllers/HealthcheckRestController.php',
     95        'Autoship\\Modules\\Healthcheck\\HealthcheckModule' => __DIR__ . '/../..' . '/app/Modules/Healthcheck/HealthcheckModule.php',
     96        'Autoship\\Modules\\Healthcheck\\HealthcheckService' => __DIR__ . '/../..' . '/app/Modules/Healthcheck/HealthcheckService.php',
    9197        'Autoship\\Modules\\Nextime\\NextimeModule' => __DIR__ . '/../..' . '/app/Modules/Nextime/NextimeModule.php',
    9298        'Autoship\\Modules\\Nextime\\NextimeService' => __DIR__ . '/../..' . '/app/Modules/Nextime/NextimeService.php',
     
    135141        'Autoship\\Repositories\\Implementations\\WordPressProductRepository' => __DIR__ . '/../..' . '/app/Repositories/Implementations/WordPressProductRepository.php',
    136142        'Autoship\\Repositories\\ProductRepositoryInterface' => __DIR__ . '/../..' . '/app/Repositories/ProductRepositoryInterface.php',
     143        'Autoship\\Services\\Healthcheck\\HealthcheckSettingsInterface' => __DIR__ . '/../..' . '/app/Services/Healthcheck/HealthcheckSettingsInterface.php',
     144        'Autoship\\Services\\Healthcheck\\Implementations\\WordPressHealthcheckSettings' => __DIR__ . '/../..' . '/app/Services/Healthcheck/Implementations/WordPressHealthcheckSettings.php',
     145        'Autoship\\Services\\Labels\\Implementations\\WordPressLabelService' => __DIR__ . '/../..' . '/app/Services/Labels/Implementations/WordPressLabelService.php',
     146        'Autoship\\Services\\Labels\\LabelServiceInterface' => __DIR__ . '/../..' . '/app/Services/Labels/LabelServiceInterface.php',
    137147        'Autoship\\Services\\Logging\\AutoshipLogger' => __DIR__ . '/../..' . '/app/Services/Logging/AutoshipLogger.php',
    138148        'Autoship\\Services\\Logging\\FileSink' => __DIR__ . '/../..' . '/app/Services/Logging/FileSink.php',
Note: See TracChangeset for help on using the changeset viewer.