Introduction
Souhaitez-vous valider l'URL d'un média social dans votre formulaire ? Dans le cadre de cette documentation, nous allons permettre à l'utilisateur d'entrer une URL Twitter et une URL Facebook, mais nous voulons avoir la possibilité de valider les URL des médias sociaux avant que le formulaire ne soit soumis, pour ce faire, nous allons utiliser PHP. Dans ce tutoriel, nous allons vous guider à travers les étapes pour y parvenir.
Création du formulaire
Tout d'abord, vous devez créer votre formulaire. Notre formulaire comprendra deux champs Site web / URL. L'un sera destiné à l'URL de suivi de Twitter et l'autre à l'URL de suivi de Facebook.
Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter cette documentation.
Ajout du snippet
Maintenant que vous avez ajouté les champs, il est temps d'ajouter à votre site l'extrait de code qui validera l'URL d'un média social dans votre formulaire.
Si vous ne savez pas comment ou où ajouter des snippets à votre site, consultez 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 n'utilisons cet extrait que sur le formulaire ID 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 correspondent pas à ce qui est indiqué dans notre extrait de code ci-dessus, ils verront apparaître une erreur après avoir soumis le formulaire.
Vous devrez mettre à jour les ID des formulaires et des champs pour qu'ils correspondent à ce que vous avez sur votre site. Si vous avez besoin d'aide pour trouver ces identifiants, consultez ce tutoriel.
Et le tour est joué ! Vous avez réussi à valider l'URL d'un média social. Souhaitez-vous également que les utilisateurs se connectent automatiquement une fois qu'ils ont rempli le formulaire d'inscription ? Consultez notre article sur la connexion automatique des utilisateurs après l'inscription.
En rapport
Référence de l'action : wpforms_process
FAQ
Q : Puis-je ajouter LinkedIn à cet extrait ?
R : Absolument ! Pour compléter l'extrait ci-dessus pour LinkedIn, utilisez cet extrait 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 );