Implementando Validação de Senha Personalizada no WPForms

Você gostaria de impor uma política de senha rigorosa em seu WPForms que exija uma combinação de letras maiúsculas, letras minúsculas, números e símbolos? Embora a opção Senha Forte integrada do WPForms não implemente estritamente esses requisitos, você pode alcançá-los usando um trecho de código personalizado.

Neste tutorial, mostraremos como adicionar validação de senha personalizada aos seus WPForms.

Adicionando o Trecho de Código

Para implementar a validação de senha personalizada, você precisará adicionar um trecho de código personalizado ao seu site. Se precisar de ajuda para adicionar código personalizado, consulte nosso tutorial sobreadicionar trechos de código.

Adicione o seguinte trecho de código ao seu site:

/**
 * 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' );
            }
        }
    }
}

Personalizando o Trecho

Você pode modificar este trecho para atender às suas necessidades específicas:

  1. ID do Campo: Substitua 100 na linha if ( $field_id == 100 && $field['type'] === 'password' ) { pelo ID real do seu campo de senha. Para encontrar o ID do seu campo, consulte nosso guia sobre como encontrar IDs de campo.
  2. Mensagem de Erro: Você pode personalizar a mensagem de erro modificando o texto na função esc_html__().
  3. Requisitos de Senha: Se você quiser alterar os requisitos de senha, pode modificar as expressões regulares nas funções preg_match() ou adicionar/remover verificações conforme necessário.

Após adicionar o trecho, certifique-se de testar completamente seu formulário para garantir que a validação de senha esteja funcionando como esperado. Tente enviar o formulário com várias combinações de senhas para verificar se a validação personalizada está sendo aplicada corretamente.

E é isso! Você implementou a validação de senha personalizada em seu WPForms. Isso garantirá que os usuários criem senhas fortes que atendam aos seus requisitos específicos.

Gostaria de saber mais sobre as mensagens de validação que aparecem em seus formulários? Confira nosso tutorial sobre alterar mensagens de validação para mais detalhes.