Gostaria de fornecer validação adicional para o campo Telefone? Por exemplo, se quiser impedir que os utilizadores introduzam números gratuitos no seu campo Telefone, pode fazê-lo facilmente com um pequeno snippet de PHP. Neste tutorial, vamos guiá-lo pelas etapas de como impedir que números gratuitos sejam inseridos no seu formulário.
Criar o formulário
Para começar, terá de criar o seu formulário e adicionar o campo Telefone ao formulário, bem como quaisquer campos adicionais de que necessite no formulário.
Se precisar de ajuda para criar o seu formulário, consulte esta documentação.
Definir o formato do campo Telefone
Para efeitos desta documentação, vamos impedir que qualquer número de telefone que comece por 8
ou +8
. Dependendo de qual Formato que está a utilizar para o Telefone dependerá do fragmento de código que terá de utilizar abaixo.
Validação adicional de campos telefónicos
Agora é hora de adicionar o snippet PHP que você precisa. Existem dois snippets diferentes e isso depende do Formato definido para o campo Telefone quando criou o formulário.
Se precisar de ajuda para adicionar snippets ao seu site, consulte este tutorial.
Formato de telefone dos EUA
/** * Custom US format phone field Validation on submit (reject defined prefixes). * * @link https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/ */ function wpf_dev_process_validate_phone($field_id, $field_submit, $form_data) { // Only check for US phone field format if ( 'us' === $form_data[ 'fields' ][$field_id][ 'format' ]) { $stripped_phone = str_replace(array( '(', ')'), '', (string) $field_submit); $prefixes = [ '8', '+8' ]; $regexp = implode( '|', $prefixes); if (preg_match( '/^[' . $regexp . ']/', $stripped_phone)) { wpforms()->process->errors[$form_data[ 'id' ]][$field_id] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes ) . '"', 'plugin-domain' ); } } } add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3);
Formato de telefone inteligente e internacional
/** * Custom Smartphone and International field Validation on submit (reject defined prefixes). * * @link https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/ */ function wpf_dev_process_validate_phone( $field_id, $field_submit, $form_data ) { $prefixes = [ '8', '+8' ]; $regexp = implode( '|', $prefixes ); if ( preg_match( '/^[' . $regexp . ']/', (string) $field_submit ) ) { wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes) . '"', 'plugin-domain' ); } } add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3 );
Ambos os snippets analisarão o valor do campo Telefone quando o formulário for enviado e, se começar com o número 8 ou +8, o formulário não será enviado e aparecerá uma mensagem de erro.
E é isso! Adicionou com êxito uma validação adicional ao campo do formulário Telefone. Também gostaria de impedir que determinados emails sejam inseridos? Confira nosso tutorial sobre Como restringir domínios de email.