diff --git a/assets/js/frontend/password-strength-meter.js b/assets/js/frontend/password-strength-meter.js index 7d88d97eff9..a1c33755c64 100644 --- a/assets/js/frontend/password-strength-meter.js +++ b/assets/js/frontend/password-strength-meter.js @@ -11,7 +11,12 @@ */ init: function() { $( document.body ) - .on( 'keyup change', 'form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1', this.strengthMeter ); + .on( + 'keyup change', + 'form.register #reg_password, form.checkout #account_password, ' + + 'form.edit-account #password_1, form.lost_reset_password #password_1', + this.strengthMeter + ); $( 'form.checkout #createaccount' ).change(); }, @@ -19,17 +24,28 @@ * Strength Meter. */ strengthMeter: function() { - var wrapper = $( 'form.register, form.checkout, form.edit-account, form.lost_reset_password' ), - submit = $( 'button[type="submit"]', wrapper ), - field = $( '#reg_password, #account_password, #password_1', wrapper ), - strength = 1, - fieldValue = field.val(); + var wrapper = $( 'form.register, form.checkout, form.edit-account, form.lost_reset_password' ), + submit = $( 'button[type="submit"]', wrapper ), + field = $( '#reg_password, #account_password, #password_1', wrapper ), + strength = 1, + fieldValue = field.val(), + stop_checkout = ! wrapper.is( 'form.checkout' ); // By default is disabled on checkout. wc_password_strength_meter.includeMeter( wrapper, field ); strength = wc_password_strength_meter.checkPasswordStrength( wrapper, field ); - if ( fieldValue.length > 0 && strength < wc_password_strength_meter_params.min_password_strength && ! wrapper.is( 'form.checkout' ) && -1 !== strength ) { + // Allow password strength meter stop checkout. + if ( wc_password_strength_meter_params.stop_checkout ) { + stop_checkout = true; + } + + if ( + fieldValue.length > 0 && + strength < wc_password_strength_meter_params.min_password_strength && + -1 !== strength && + stop_checkout + ) { submit.attr( 'disabled', 'disabled' ).addClass( 'disabled' ); } else { submit.removeAttr( 'disabled', 'disabled' ).removeClass( 'disabled' ); diff --git a/assets/js/frontend/password-strength-meter.min.js b/assets/js/frontend/password-strength-meter.min.js index 128e6dd7e4d..ad20fb23c5e 100644 --- a/assets/js/frontend/password-strength-meter.min.js +++ b/assets/js/frontend/password-strength-meter.min.js @@ -1 +1 @@ -!function(a){"use strict";var d={init:function(){a(document.body).on("keyup change","form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1",this.strengthMeter),a("form.checkout #createaccount").change()},strengthMeter:function(){var s,r=a("form.register, form.checkout, form.edit-account, form.lost_reset_password"),e=a('button[type="submit"]',r),t=a("#reg_password, #account_password, #password_1",r),o=t.val();d.includeMeter(r,t),s=d.checkPasswordStrength(r,t),0'),a(document.body).trigger("wc-password-strength-added")):(e.show(),a(document.body).trigger("wc-password-strength-show"))},checkPasswordStrength:function(s,r){var e=s.find(".woocommerce-password-strength"),t=s.find(".woocommerce-password-hint"),o=''+wc_password_strength_meter_params.i18n_password_hint+"",a=wp.passwordStrength.meter(r.val(),wp.passwordStrength.userInputBlacklist()),d="";if(e.removeClass("short bad good strong"),t.remove(),e.is(":hidden"))return a;switch(a'),d(document.body).trigger("wc-password-strength-added")):(e.show(),d(document.body).trigger("wc-password-strength-show"))},checkPasswordStrength:function(s,r){var e=s.find(".woocommerce-password-strength"),t=s.find(".woocommerce-password-hint"),o=''+wc_password_strength_meter_params.i18n_password_hint+"",a=wp.passwordStrength.meter(r.val(),wp.passwordStrength.userInputBlacklist()),d="";if(e.removeClass("short bad good strong"),t.remove(),e.is(":hidden"))return a;switch(a apply_filters( 'woocommerce_min_password_strength', 3 ), + 'stop_checkout' => apply_filters( 'woocommerce_enforce_password_strength_meter_on_checkout', false ), 'i18n_password_error' => esc_attr__( 'Please enter a stronger password.', 'woocommerce' ), 'i18n_password_hint' => esc_attr( wp_get_password_hint() ), );