Comment fournir une validation supplémentaire pour les champs du téléphone

Souhaitez-vous fournir une validation supplémentaire pour le champ téléphone ? Par exemple, si vous souhaitez empêcher les utilisateurs de saisir des numéros verts dans votre champ Téléphone, vous pouvez facilement y parvenir à l'aide d'un petit extrait de code PHP. Dans ce tutoriel, nous allons vous expliquer comment empêcher les numéros verts d'être saisis dans votre formulaire.

Création du formulaire

Pour commencer, vous devez créer votre formulaire et y ajouter le champ Téléphone ainsi que tous les autres champs dont vous aurez besoin dans votre formulaire.

Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter cette documentation.

pour fournir une validation supplémentaire du champ téléphone, vous devez d'abord créer votre formulaire.

Réglage du format du champ téléphonique

Dans le cadre de cette documentation, nous allons empêcher tout numéro de téléphone commençant par 8 ou +8. Selon le type de Format que vous utilisez pour le Téléphone dépendra de l'extrait de code que vous devrez utiliser ci-dessous.

Sélectionnez le format que vous souhaitez utiliser dans le champ de votre téléphone.

Validation de champs téléphoniques supplémentaires

Il est maintenant temps d'ajouter l'extrait de code PHP dont vous aurez besoin. Il y a deux snippets différents et cela dépend du format qui a été défini pour le champ Téléphone lorsque vous avez créé votre formulaire.

Si vous avez besoin d'aide pour ajouter des snippets à votre site, consultez ce tutoriel.

Format du téléphone aux États-Unis

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

Format des téléphones intelligents et internationaux

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

Ces deux snippets examineront la valeur du champ Téléphone lorsque le formulaire sera soumis et si elle commence par le chiffre 8 ou +8, le formulaire ne sera pas soumis et un message d'erreur s'affichera.

En prévoyant une validation supplémentaire du champ téléphone, vous pouvez facilement empêcher que des numéros gratuits soient saisis dans votre formulaire.

Et c'est tout ! Vous avez réussi à ajouter une validation supplémentaire pour votre champ de formulaire Téléphone. Souhaitez-vous également empêcher la saisie de certains courriels ? Consultez notre tutoriel sur la façon de restreindre les domaines de messagerie.

Filtre de référence

wpforms_process_validate_phone