Come fornire una convalida aggiuntiva del campo telefonico

Si desidera fornire un'ulteriore convalida del campo Telefono? Ad esempio, se si desidera impedire agli utenti di inserire numeri verdi nel campo Telefono, è possibile farlo facilmente con un piccolo snippet PHP. In questo tutorial, vi illustreremo i passaggi per impedire l'inserimento di numeri verdi nel vostro modulo.

Creazione del modulo

Per iniziare, è necessario creare il modulo e aggiungere il campo Telefono al modulo, oltre a tutti i campi aggiuntivi di cui si ha bisogno nel modulo.

Se avete bisogno di aiuto per creare il vostro modulo, consultate questa documentazione.

per fornire un'ulteriore convalida del campo del telefono, è necessario prima creare il modulo.

Impostazione del formato del campo Telefono

Per lo scopo di questa documentazione, eviteremo qualsiasi numero di telefono che inizia per 8 o +8. A seconda di quale Formato che si sta utilizzando per il file Telefono Il campo del modulo dipenderà dallo snippet di codice che dovrete utilizzare di seguito.

Selezionare il formato che si vuole utilizzare sul campo del telefono

Convalida del campo telefonico aggiuntivo

Ora è il momento di aggiungere lo snippet PHP necessario. Ci sono due diversi snippet e questo dipende dal formato impostato per il campo Telefono quando si è creato il modulo.

Se avete bisogno di aiuto per aggiungere gli snippet al vostro sito, consultate questo tutorial.

Formato del telefono USA

/**
 * 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 di telefono intelligente e internazionale

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

Entrambi questi snippet guardano il valore del campo Telefono quando il modulo viene inviato e se inizia con il numero 8 o +8 il modulo non viene inviato e viene visualizzato un messaggio di errore.

Fornendo un'ulteriore convalida del campo telefonico, si può facilmente impedire l'inserimento di numeri verdi nel modulo.

Ed ecco fatto! Avete aggiunto con successo un'ulteriore convalida per il campo del modulo Telefono. Volete anche impedire l'inserimento di determinate e-mail? Consultate il nostro tutorial su Come limitare i domini e-mail.

Filtro di riferimento

wpforms_process_validate_phone