Implementar Validação Personalizada de Senha no WPForms

Gostaria de impor uma política de palavra-passe rigorosa nos seus WPForms que exija uma combinação de letras maiúsculas, letras minúsculas, números e símbolos? Embora a opção de Palavra-passe Forte integrada do WPForms não implemente estritamente estes requisitos, pode alcançá-los utilizando um trecho de código personalizado.

Neste tutorial, vamos mostrar-lhe como adicionar validação personalizada de palavra-passe aos seus WPForms.

Adicionar o Excerto de Código

Para implementar a validação personalizada de palavra-passe, terá de adicionar um trecho de código personalizado ao seu site. Se precisar de ajuda para adicionar código personalizado, consulte o 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' );
            }
        }
    }
}

Personalizar o Trecho

Pode modificar este trecho para se adequar à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 palavra-passe. Para encontrar o ID do seu campo, consulte o nosso guia sobre como encontrar IDs de campo.
  2. Mensagem de Erro: Pode personalizar a mensagem de erro modificando o texto na função esc_html__().
  3. Requisitos da Palavra-passe: Se quiser alterar os requisitos da palavra-passe, 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 exaustivamente o seu formulário para garantir que a validação da palavra-passe está a funcionar como esperado. Tente submeter o formulário com várias combinações de palavras-passe para verificar se a validação personalizada está a ser aplicada corretamente.

E é tudo! Implementou agora a validação personalizada de palavra-passe nos seus WPForms. Isto garantirá que os utilizadores criam palavras-passe fortes que cumprem os seus requisitos específicos.

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