Changeset 3337514
- Timestamp:
- 07/31/2025 10:03:51 PM (7 months ago)
- Location:
- autoship-cloud/trunk
- Files:
-
- 182 added
- 7 edited
-
app/Core/FeatureManager.php (modified) (1 diff)
-
app/Modules/Quicklaunch/SetupStepHandler.php (modified) (3 diffs)
-
assets/libs (added)
-
assets/libs/intl-tel-input (added)
-
assets/libs/intl-tel-input/css (added)
-
assets/libs/intl-tel-input/css/demo.css (added)
-
assets/libs/intl-tel-input/css/intlTelInput.css (added)
-
assets/libs/intl-tel-input/css/intlTelInput.min.css (added)
-
assets/libs/intl-tel-input/img (added)
-
assets/libs/intl-tel-input/img/flags.png (added)
-
assets/libs/intl-tel-input/img/flags.webp (added)
-
assets/libs/intl-tel-input/img/flags@2x.png (added)
-
assets/libs/intl-tel-input/img/flags@2x.webp (added)
-
assets/libs/intl-tel-input/img/globe.png (added)
-
assets/libs/intl-tel-input/img/globe.webp (added)
-
assets/libs/intl-tel-input/img/globe@2x.png (added)
-
assets/libs/intl-tel-input/img/globe@2x.webp (added)
-
assets/libs/intl-tel-input/img/globe_light.png (added)
-
assets/libs/intl-tel-input/img/globe_light.webp (added)
-
assets/libs/intl-tel-input/img/globe_light@2x.png (added)
-
assets/libs/intl-tel-input/img/globe_light@2x.webp (added)
-
assets/libs/intl-tel-input/js (added)
-
assets/libs/intl-tel-input/js/data.js (added)
-
assets/libs/intl-tel-input/js/data.min.js (added)
-
assets/libs/intl-tel-input/js/i18n (added)
-
assets/libs/intl-tel-input/js/i18n/ar (added)
-
assets/libs/intl-tel-input/js/i18n/ar/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ar/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ar/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/bg (added)
-
assets/libs/intl-tel-input/js/i18n/bg/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/bg/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/bg/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/bn (added)
-
assets/libs/intl-tel-input/js/i18n/bn/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/bn/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/bn/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/bs (added)
-
assets/libs/intl-tel-input/js/i18n/bs/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/bs/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/bs/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ca (added)
-
assets/libs/intl-tel-input/js/i18n/ca/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ca/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ca/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/cs (added)
-
assets/libs/intl-tel-input/js/i18n/cs/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/cs/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/cs/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/da (added)
-
assets/libs/intl-tel-input/js/i18n/da/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/da/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/da/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/de (added)
-
assets/libs/intl-tel-input/js/i18n/de/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/de/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/de/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ee (added)
-
assets/libs/intl-tel-input/js/i18n/ee/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ee/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ee/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/el (added)
-
assets/libs/intl-tel-input/js/i18n/el/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/el/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/el/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/en (added)
-
assets/libs/intl-tel-input/js/i18n/en/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/en/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/en/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/es (added)
-
assets/libs/intl-tel-input/js/i18n/es/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/es/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/es/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/fa (added)
-
assets/libs/intl-tel-input/js/i18n/fa/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/fa/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/fa/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/fi (added)
-
assets/libs/intl-tel-input/js/i18n/fi/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/fi/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/fi/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/fr (added)
-
assets/libs/intl-tel-input/js/i18n/fr/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/fr/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/fr/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/hi (added)
-
assets/libs/intl-tel-input/js/i18n/hi/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/hi/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/hi/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/hr (added)
-
assets/libs/intl-tel-input/js/i18n/hr/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/hr/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/hr/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/hu (added)
-
assets/libs/intl-tel-input/js/i18n/hu/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/hu/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/hu/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/id (added)
-
assets/libs/intl-tel-input/js/i18n/id/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/id/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/id/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/it (added)
-
assets/libs/intl-tel-input/js/i18n/it/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/it/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/it/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ja (added)
-
assets/libs/intl-tel-input/js/i18n/ja/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ja/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ja/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ko (added)
-
assets/libs/intl-tel-input/js/i18n/ko/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ko/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ko/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/mr (added)
-
assets/libs/intl-tel-input/js/i18n/mr/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/mr/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/mr/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/nl (added)
-
assets/libs/intl-tel-input/js/i18n/nl/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/nl/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/nl/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/no (added)
-
assets/libs/intl-tel-input/js/i18n/no/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/no/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/no/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/pl (added)
-
assets/libs/intl-tel-input/js/i18n/pl/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/pl/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/pl/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/pt (added)
-
assets/libs/intl-tel-input/js/i18n/pt/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/pt/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/pt/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ro (added)
-
assets/libs/intl-tel-input/js/i18n/ro/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ro/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ro/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ru (added)
-
assets/libs/intl-tel-input/js/i18n/ru/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ru/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ru/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/sk (added)
-
assets/libs/intl-tel-input/js/i18n/sk/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/sk/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/sk/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/sv (added)
-
assets/libs/intl-tel-input/js/i18n/sv/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/sv/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/sv/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/te (added)
-
assets/libs/intl-tel-input/js/i18n/te/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/te/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/te/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/th (added)
-
assets/libs/intl-tel-input/js/i18n/th/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/th/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/th/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/tr (added)
-
assets/libs/intl-tel-input/js/i18n/tr/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/tr/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/tr/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/uk (added)
-
assets/libs/intl-tel-input/js/i18n/uk/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/uk/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/uk/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/ur (added)
-
assets/libs/intl-tel-input/js/i18n/ur/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/ur/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/ur/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/vi (added)
-
assets/libs/intl-tel-input/js/i18n/vi/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/vi/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/vi/interface.js (added)
-
assets/libs/intl-tel-input/js/i18n/zh (added)
-
assets/libs/intl-tel-input/js/i18n/zh/countries.js (added)
-
assets/libs/intl-tel-input/js/i18n/zh/index.js (added)
-
assets/libs/intl-tel-input/js/i18n/zh/interface.js (added)
-
assets/libs/intl-tel-input/js/intlTelInput.d.ts (added)
-
assets/libs/intl-tel-input/js/intlTelInput.js (added)
-
assets/libs/intl-tel-input/js/intlTelInput.min.js (added)
-
assets/libs/intl-tel-input/js/intlTelInputWithUtils.js (added)
-
assets/libs/intl-tel-input/js/intlTelInputWithUtils.min.js (added)
-
assets/libs/intl-tel-input/js/utils.js (added)
-
autoship.php (modified) (2 diffs)
-
js/quicklaunch.js (modified) (5 diffs)
-
readme.txt (modified) (3 diffs)
-
styles/quicklaunch.css (modified) (1 diff)
-
templates/quicklaunch/step-register.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
autoship-cloud/trunk/app/Core/FeatureManager.php
r3303202 r3337514 32 32 'quicklaunch_reset' => false, 33 33 'quicklaunch_display_beacon' => true, 34 'quicklaunch_phone_required' => true, 34 35 ); 35 36 -
autoship-cloud/trunk/app/Modules/Quicklaunch/SetupStepHandler.php
r3299545 r3337514 10 10 11 11 use Autoship\Core\Environment; 12 use Autoship\Core\FeatureManager; 12 13 13 14 /** … … 30 31 } 31 32 32 33 34 33 /** 35 34 * Handles the quicklaunch steps. … … 244 243 'autoship_quicklauncher', 245 244 array( 246 'ajax_url' => admin_url( 'admin-ajax.php' ), 247 'admin_url' => admin_url( 'admin.php?page=dashboard' ), 245 'ajax_url' => admin_url( 'admin-ajax.php' ), 246 'admin_url' => admin_url( 'admin.php?page=dashboard' ), 247 'phone_required' => FeatureManager::is_enabled( 'quicklaunch_phone_required' ), 248 248 ) 249 249 ); 250 251 wp_enqueue_style( 'autoship_intl_tel_utils_styles', $plugin_url . 'assets/libs/intl-tel-input/css/intlTelInput.min.css', array(), $version ); 252 wp_enqueue_script( 'autoship_intl_tel_utils_script', $plugin_url . 'assets/libs/intl-tel-input/js/intlTelInputWithUtils.min.js', array(), $version, true ); 250 253 } 251 254 -
autoship-cloud/trunk/autoship.php
r3336191 r3337514 8 8 * Plugin URI: https://autoship.cloud 9 9 * Description: Autoship Cloud for WooCommerce 10 * Version: 2.9. 310 * Version: 2.9.4 11 11 * Author: Patterns In the Cloud LLC 12 12 * Author URI: https://qpilot.cloud … … 17 17 */ 18 18 19 define( 'Autoship_Version', '2.9. 3' ); // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ConstantNotUpperCase19 define( 'Autoship_Version', '2.9.4' ); // phpcs:ignore Generic.NamingConventions.UpperCaseConstantName.ConstantNotUpperCase 20 20 21 21 if ( ! defined( 'Autoship_Plugin_Dir' ) ) { -
autoship-cloud/trunk/js/quicklaunch.js
r3299545 r3337514 92 92 } 93 93 94 const iti = window.intlTelInput.getInstance(document.querySelector("#autoship-registration-phone-local")); 95 94 96 let account = { 95 97 action: 'autoship_quicklaunch_registration_handler', 96 98 email: $('#autoship-registration-email').val().trim(), 97 99 password: $('#autoship-registration-password').val(), 98 phone: $('#autoship-registration-phone').val().trim()100 phone: '' 99 101 }; 100 102 103 // Up to this point, the phone number is valid or empty if it's not required. 104 account.phone = iti.getNumber(); 101 105 if (account.phone === '') { 102 106 account.phone = '0000000000'; 103 107 } 108 109 // Remove the '+' sign from the phone number. 110 account.phone = account.phone.replace(/\+/g, ''); 104 111 105 112 $.ajax({ … … 515 522 $.post(autoship_quicklauncher.ajax_url, data, function(response) { 516 523 $('#autoship-quicklaunch-content').html(response); 524 525 enablePhoneInput(); 517 526 }); 518 527 } … … 596 605 597 606 const confirmation = $('#autoship-registration-confirmation').val(); 598 if (confirmation === '' || !isValidPassword( password)) {607 if (confirmation === '' || !isValidPassword(confirmation)) { 599 608 showFieldErrorLabel($('#autoship-registration-confirmation')); 600 609 showFormErrorMessage('The password must be between 10 and 16 characters.'); … … 607 616 608 617 valid = false; 618 } 619 620 // Check if the phone number is required. 621 autoship_quicklauncher.phone_required = autoship_quicklauncher.phone_required ?? true; 622 623 const iti = window.intlTelInput.getInstance(document.querySelector("#autoship-registration-phone-local")); 624 let phone = iti.getNumber(); 625 626 if (autoship_quicklauncher.phone_required || (phone !== '')) { 627 628 if (valid && iti && !iti.isValidNumber()) { 629 $('#autoship-registration-phone-local-label').addClass('autoship-invalid-field'); 630 showFormErrorMessage('The phone number must be valid.'); 631 632 valid = false; 633 } 609 634 } 610 635 … … 833 858 } 834 859 860 const enablePhoneInput = function() { 861 const phoneNumberInput = document.querySelector('#autoship-registration-phone-local'); 862 if (phoneNumberInput != null) { 863 const iti = window.intlTelInput(phoneNumberInput, { 864 separateDialCode: false, 865 initialCountry: 'us', 866 preferredCountries: ['us'] 867 }); 868 869 phoneNumberInput.addEventListener('input', function(event) { 870 this.value = this.value.replace(/[^0-9]/g, ''); 871 }); 872 } 873 } 874 875 enablePhoneInput(); 835 876 }); -
autoship-cloud/trunk/readme.txt
r3336191 r3337514 10 10 WC tested up to: 10.0.4 11 11 Requires PHP: 7.4 12 Stable tag: 2.9. 312 Stable tag: 2.9.4 13 13 License: GPLv2 or later 14 14 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 292 292 == Changelog == 293 293 294 = 2.9.4 - 2025-07-31 = 295 296 - Improved! The plugin onboarding "Quicklaunch" now requires a Merchant's phone number, enabling merchants to receive faster support and timely updates. 297 294 298 = 2.9.3 - 2025-07-29 = 295 299 … … 362 366 = 2.8.4 - 2025-03-24 = 363 367 364 - Fixed: Improved the customer experience when adding and updating Items in My Account > Scheduled Orders when using the Native Ui. This is due to corrected HTML properties ver fication when loading products in the Native Ui over JS.368 - Fixed: Improved the customer experience when adding and updating Items in My Account > Scheduled Orders when using the Native Ui. This is due to corrected HTML properties verification when loading products in the Native Ui over JS. 365 369 366 370 - New! Added a new bulk utility in Autoship Cloud > Settings >> Utilities that enable wholesale suite customers to sync wholesale pricing rules to existing Scheduled Orders -
autoship-cloud/trunk/styles/quicklaunch.css
r3299545 r3337514 468 468 margin-top: 10px !important; display:block; 469 469 } 470 471 .iti { 472 width: 100% !important; 473 } -
autoship-cloud/trunk/templates/quicklaunch/step-register.php
r3299545 r3337514 7 7 */ 8 8 9 use Autoship\Core\FeatureManager; 10 9 11 defined( 'ABSPATH' ) || exit; 10 12 11 $wizard_user = wp_get_current_user(); 12 $username = $wizard_user->user_login; 13 $email = $wizard_user->user_email; 13 $wizard_user = wp_get_current_user(); 14 $username = $wizard_user->user_login; 15 $email = $wizard_user->user_email; 16 $phone_required = FeatureManager::is_enabled( 'quicklaunch_phone_required' ); 14 17 ?> 15 18 … … 43 46 44 47 <div class="autoship-mb-20"> 45 <label for="autoship-registration-phone" class="autoship-quicklaunch-field-label"> 46 <?php echo esc_html( __( 'Phone Number', 'autoship' ) ); ?> <small><?php echo esc_html( __( '(optional)', 'autoship' ) ); ?> 47 </label> 48 <input type="text" minlength="10" maxlength="16" id="autoship-registration-phone" name="autoship-registration-phone" class="autoship-quicklaunch-field-text" placeholder="<?php echo esc_attr( __( 'Enter your phone number', 'autoship' ) ); ?>"/> 48 <div class="autoship-mb-20"> 49 <label id="autoship-registration-phone-local-label" for="autoship-registration-phone-local" class="autoship-quicklaunch-field-label"> 50 <?php echo esc_html( __( 'Phone Number', 'autoship' ) ); ?> 51 <?php if ( ! $phone_required ) : ?> 52 <small><?php echo esc_html( __( '(optional)', 'autoship' ) ); ?></small> 53 <?php endif; ?> 54 </label> 55 <input type="text" id="autoship-registration-phone-local" class="autoship-quicklaunch-field-text" placeholder="<?php echo esc_attr( __( 'Enter your phone number', 'autoship' ) ); ?>" inputmode="numeric" pattern="\d{7,15}" maxlength="15" /> 56 </div> 49 57 </div> 50 58
Note: See TracChangeset
for help on using the changeset viewer.