Implementar a validação de senha personalizada no WPForms

Gostaria de aplicar uma política de palavra-passe rigorosa nos seus WPForms que requer uma combinação de letras maiúsculas, letras minúsculas, números e símbolos? Embora a opção de senha forte integrada do WPForms não implemente estritamente esses requisitos, você pode conseguir isso usando um trecho de código personalizado.

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

Adicionar o snippet de código

Para implementar a validação de palavra-passe personalizada, terá de adicionar um fragmento de código personalizado ao seu site. Se precisar de ajuda para adicionar código personalizado, consulte o nosso tutorial sobre adicionar 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 snippet

Pode modificar este snippet para se adequar às suas necessidades específicas:

  1. ID do campo: Substituir 100 no if ( $field_id == 100 && $field['type'] === 'password' ) { com o ID real do seu campo de palavra-passe. Para encontrar o ID do campo, consulte o nosso guia sobre como encontrar IDs de campo.
  2. Mensagem de erro: É possível personalizar a mensagem de erro modificando o texto no esc_html__() função.
  3. Requisitos da palavra-passe: Se pretender alterar os requisitos da palavra-passe, pode modificar as expressões regulares no preg_match() funções ou adicionar/remover controlos conforme necessário.

Depois de adicionar o snippet, certifique-se de que testa minuciosamente o formulário para garantir que a validação da palavra-passe está a funcionar como esperado. Tente enviar o formulário com várias combinações de senha para verificar se a validação personalizada é aplicada corretamente.

E é isso! Agora você implementou a validação de senha personalizada em seus 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 nos seus formulários? Consulte o nosso tutorial sobre como alterar as mensagens de validação para obter mais pormenores.