Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Comment fournir une validation supplémentaire pour le champ 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 gratuits dans votre champ Téléphone, vous pouvez facilement y parvenir avec un petit extrait de code PHP. Dans ce tutoriel, nous vous guiderons à travers les étapes pour empêcher la saisie de numéros gratuits dans votre formulaire.

Création du formulaire

Pour commencer, vous devrez créer votre formulaire et y ajouter votre champ Téléphone ainsi que tous les champs supplémentaires dont vous aurez besoin sur 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 devrez d'abord créer votre formulaire.

Définir le format du champ Téléphone

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

Sélectionnez le format que vous souhaitez utiliser pour votre champ téléphone

Validation supplémentaire du champ Téléphone

Il est maintenant temps d'ajouter le fragment de code PHP dont vous aurez besoin. Il existe deux fragments différents, et cela dépend du Format qui a été défini pour le champ Téléphone lors de la création de votre formulaire.

Si vous avez besoin d'aide pour ajouter des extraits de code à votre site, veuillez consulter ce tutoriel.

Format Téléphone US

/**
 * 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 Téléphone Intelligent et International

/**
 * 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 fragments examineront la valeur du champ Téléphone lors de la soumission du formulaire et s'il commence par le chiffre 8 ou +8, le formulaire ne sera pas soumis et un message d'erreur apparaîtra.

En fournissant une validation supplémentaire pour le champ téléphone, vous pouvez facilement empêcher la saisie de numéros gratuits dans votre formulaire.

Et voilà ! Vous avez ajouté avec succès une validation supplémentaire pour votre champ de formulaire Téléphone. Souhaitez-vous également empêcher la saisie de certains e-mails ? Consultez notre tutoriel sur Comment restreindre les domaines d'e-mails.

Filtre de référence

wpforms_process_validate_phone