Implementación de validación de contraseña personalizada en WPForms

¿Le gustaría aplicar una estricta política de contraseñas en sus WPForms que requiera una combinación de letras mayúsculas, minúsculas, números y símbolos? Si bien la opción de contraseña segura incorporada en WPForms no implementa estrictamente estos requisitos, puede lograrlo utilizando un fragmento de código personalizado.

En este tutorial, le mostraremos cómo agregar validación de contraseña personalizada a sus WPForms.

Añadir el fragmento de código

Para implementar la validación de contraseña personalizada, tendrás que añadir un fragmento de código personalizado a tu sitio. Si necesita ayuda para añadir código personalizado, consulte nuestro tutorial sobre cómo añadir fragmentos de código.

Añada el siguiente fragmento de código a su sitio:

/**
 * Implement Custom Password Validation.
 *
 * @link https://wpforms.com/developers/implementing-custom-password-validation-in-wpforms
 *
 */
add_action('wpforms_process', 'custom_password_validation', 10, 3);
function custom_password_validation($fields, $entry, $form_data) {
    foreach ( $fields as $field_id => $field ) {
        // Check if this is the correct field (replace 100 with your actual field ID) and it's a password field
        if ( $field_id == 100 && $field['type'] === 'password' ) {
            $password = $field['value'];
            
            // Define the password validation pattern
            $uppercase = preg_match('@[A-Z]@', $password);
            $lowercase = preg_match('@[a-z]@', $password);
            $number    = preg_match('@[0-9]@', $password);
            $symbol    = preg_match('@[\W]@', $password);

            // Check if password meets all requirements
            if ( !$uppercase || !$lowercase || !$number || !$symbol ) {
                wpforms()->process->errors[$form_data['id']][$field_id] = esc_html__( 'Password must include at least one uppercase letter, one lowercase letter, one number, and one symbol.', 'plugin-domain' );
            }
        }
    }
}

Personalización del fragmento

Puede modificar este fragmento para adaptarlo a sus necesidades específicas:

  1. ID de campo: Sustituir 100 en el if ( $field_id == 100 && $field['type'] === 'password' ) { con el ID real de su campo de contraseña. Para encontrar el ID de su campo, consulte nuestra guía sobre cómo encontrar los ID de campo.
  2. Mensaje de error: Puede personalizar el mensaje de error modificando el texto del campo esc_html__() función.
  3. Requisitos de contraseña: Si desea cambiar los requisitos de contraseña, puede modificar las expresiones regulares en el campo preg_match() funciones o añadir/eliminar controles según sea necesario.

Después de añadir el fragmento, asegúrese de probar el formulario para comprobar que la validación de la contraseña funciona correctamente. Pruebe a enviar el formulario con varias combinaciones de contraseñas para comprobar que la validación personalizada se aplica correctamente.

Y ¡listo! Ahora ha implementado la validación de contraseña personalizada en sus WPForms. Esto asegurará que los usuarios creen contraseñas seguras que cumplan con sus requisitos específicos.

¿Quieres saber más sobre los mensajes de validación que aparecen en tus formularios? Echa un vistazo a nuestro tutorial sobre cómo cambiar los mensajes de validación para obtener más detalles.