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 valider un champ d'URL de réseau social dans votre formulaire

Introduction

Voulez-vous valider une URL de réseau social dans votre formulaire ? Aux fins de cette documentation, nous allons permettre à l'utilisateur de saisir une URL Twitter et une URL Facebook, mais nous voulons pouvoir valider les URL de réseaux sociaux avant la soumission du formulaire. Pour ce faire, nous utiliserons PHP. Dans ce tutoriel, nous vous guiderons à travers les étapes pour y parvenir.

Création du formulaire

Tout d'abord, vous devrez créer votre formulaire. Notre formulaire comprendra deux champs Site Web / URL. L'un sera pour une URL de suivi Twitter et l'autre pour une URL de suivi Facebook.

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

ajouter le champ Site Web / URL pour que vos utilisateurs saisissent leur URL de réseau social

Ajout du snippet

Maintenant que vous avez ajouté les champs, il est temps d'ajouter l'extrait de code à votre site qui validera une URL de réseau social dans votre formulaire.

Si vous ne savez pas comment ou où ajouter des extraits de code à votre site, veuillez consulter ce tutoriel.

/**
 * Confirm the correct social network link in the form.
 *
 * @link   https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/
 */

function wpf_dev_process_check_social_url( $fields, $entry, $form_data ) {
      
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #902.
    if ( absint( $form_data['id'] ) !== 902 ) {
        return $fields;
    }
    
	
	$fb_url = $fields[25][ 'value' ];
	$findfb   = 'facebook.com';
	$find_fb_url = strpos($fb_url, $findfb);

	if ($find_fb_url === false) {
            // Check the field ID 25 to make sure it contains facebook.com
               wpforms()->process->errors[ $form_data[ 'id' ] ] [ '25' ] = esc_html__( 'Please enter a valid Facebook Profile URL.', 'plugin-domain' );
  
        }
	
	$twitter_url = $fields[26][ 'value' ];
	$findtwitter   = 'twitter.com';
	$find_twitter_url = strpos($twitter_url, $findtwitter);

	if ($find_twitter_url === false) {

            // Check the field ID 26 to make sure it contains twitter.com
               wpforms()->process->errors[ $form_data[ 'id' ] ] [ '26' ] = esc_html__( 'Please enter a valid Twitter Profile URL.', 'plugin-domain' );
  
        }
	
    }
add_action( 'wpforms_process', 'wpf_dev_process_check_social_url', 10, 3 );

Dans l'extrait de code ci-dessus, nous utilisons cet extrait uniquement sur l'ID de formulaire 902 et uniquement sur le champ ID 25 qui est le champ URL Facebook et le champ 26 qui est le champ URL Twitter.

Lorsque les utilisateurs saisissent un lien dans ces champs qui ne correspond pas à ce qui est indiqué dans notre extrait de code ci-dessus, ils verront une erreur après avoir soumis le formulaire.

Vous devrez mettre à jour les ID de formulaire et de champ pour qu'ils correspondent à ce que vous avez sur votre site. Si vous avez besoin d'aide pour trouver ces ID, veuillez consulter ce tutoriel.

avec cet extrait ajouté, vous pouvez facilement valider une URL de réseau social dans votre formulaire

Et voilà ! Vous avez réussi à valider une URL de réseau social. Souhaitez-vous également que les utilisateurs se connectent automatiquement une fois qu'ils ont terminé le formulaire d'inscription ? Consultez notre article sur Comment connecter automatiquement les utilisateurs après l'inscription.

Référence d'action : wpforms_process

FAQ

Q : Puis-je ajouter LinkedIn à cet extrait ?

R : Absolument ! Pour ajouter au snippet ci-dessus pour LinkedIn, utilisez ce snippet et mettez à jour les ID de formulaire et de champ pour le formulaire que vous utilisez.

/**
 * Confirm the correct social network link in the form.
 *
 * @link   https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/
 */

function wpf_dev_process_check_social_url( $fields, $entry, $form_data ) {
      
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #902.
    if ( absint( $form_data['id'] ) !== 902 ) {
        return $fields;
    }
    
	
	$fb_url = $fields[25][ 'value' ];
	$findfb   = 'facebook.com';
	$find_fb_url = strpos($fb_url, $findfb);

	if ($find_fb_url === false) {
            // Check the field ID 25 to make sure it contains facebook.com
               wpforms()->process->errors[ $form_data[ 'id' ] ] [ '25' ] = esc_html__( 'Please enter a valid Facebook Profile URL.', 'plugin-domain' );
  
        }
	
	$twitter_url = $fields[26][ 'value' ];
	$findtwitter   = 'twitter.com';
	$find_twitter_url = strpos($twitter_url, $findtwitter);

	if ($find_twitter_url === false) {

            // Check the field ID 26 to make sure it contains twitter.com
               wpforms()->process->errors[ $form_data[ 'id' ] ] [ '26' ] = esc_html__( 'Please enter a valid Twitter Profile URL.', 'plugin-domain' );
  
        }

	$linkedin_url = $fields[27][ 'value' ];
	$findlinkedin   = 'linkedin.com';
	$find_linkedin_url = strpos($linkedin_url, $findlinkedin);

	if ($find_linkedin_url === false) {

            // Check the field ID 27 to make sure it contains linkedin.com
               wpforms()->process->errors[ $form_data[ 'id' ] ] [ '27' ] = esc_html__( 'Please enter a valid LinkedIn Profile URL.', 'plugin-domain' );
  
        }
	
    }
add_action( 'wpforms_process', 'wpf_dev_process_check_social_url', 10, 3 );