/* global wp, pwsL10n, wc_password_strength_meter_params */ jQuery( function( $ ) { /** * Password Strength Meter class. */ var wc_password_strength_meter = { /** * Initialize strength meter actions. */ init: function() { $( document.body ) .on( 'keyup', 'form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1', this.strengthMeter ) .on( 'submit', 'form.register, form.edit-account, form.lost_reset_password', this.onSubmit ); $( 'form.checkout #createaccount' ).change(); }, /** * Strength Meter. */ strengthMeter: function() { var wrapper = $( 'form.register, form.checkout, form.edit-account, form.lost_reset_password' ), submit = $( 'input[type="submit"]', wrapper ), field = $( '#reg_password, #account_password, #password_1', wrapper ), strength = 1; wc_password_strength_meter.includeMeter( wrapper, field ); strength = wc_password_strength_meter.checkPasswordStrength( field ); // Add class to wrapper if ( 3 === strength || 4 === strength ) { wrapper.removeClass( 'has-weak-password' ); } else { wrapper.addClass( 'has-weak-password' ); } // Stop form if password is weak... But not in checkout form! if ( 3 === strength || 4 === strength ) { submit.removeClass( 'disabled' ); } else if ( ! wrapper.hasClass( 'checkout' ) ) { submit.addClass( 'disabled' ); } }, /** * When the form is submitted, prevent if weak. */ onSubmit: function() { $( '.woocommerce-password-error' ).remove(); if ( $( this ).is( '.has-weak-password' ) ) { $( this ).prepend( '