Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Come convalidare un campo URL di social media nel tuo modulo

Introduzione

Vuoi convalidare un URL di social media nel tuo modulo? Ai fini di questa documentazione, consentiremo all'utente di inserire un URL di Twitter e un URL di Facebook, ma vogliamo la possibilità di convalidare gli URL dei social media prima che il modulo venga inviato. Per fare ciò, useremo PHP. In questo tutorial, ti guideremo attraverso i passaggi su come ottenere questo risultato.

Creazione del modulo

Per prima cosa, dovrai creare il tuo modulo. Il nostro modulo includerà due campi Sito Web / URL. Uno sarà per un URL di follow di Twitter e l'altro per un URL di follow di Facebook.

Se hai bisogno di aiuto nella creazione del tuo modulo, esamina questa documentazione.

aggiungi il campo Sito Web / URL per consentire agli utenti di inserire il proprio URL di social media

Aggiunta dello snippet

Ora che hai aggiunto i campi, è ora di aggiungere lo snippet di codice al tuo sito che convaliderà un URL di social media nel tuo modulo.

Se non sei sicuro di come o dove aggiungere snippet al tuo sito, consulta questo tutorial.

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

Nello snippet di codice sopra, stiamo usando questo snippet solo sul modulo ID 902 e solo sul campo ID 25 che è il campo URL di Facebook e sul campo 26 che è il campo URL di Twitter.

Quando gli utenti inseriscono un link in quei campi che non corrispondono a quanto elencato nel nostro snippet di codice sopra, vedranno un errore dopo aver inviato il modulo.

Dovrai aggiornare gli ID del modulo e dei campi per farli corrispondere a quelli che hai sul tuo sito. Se hai bisogno di aiuto per trovare questi ID, dai un'occhiata a questo tutorial.

con questo snippet aggiunto puoi facilmente convalidare un URL di social media all'interno del tuo modulo

E questo è tutto! Sei riuscito a convalidare con successo un URL di social media. Vuoi anche che gli utenti accedano automaticamente una volta completato il modulo di registrazione? Dai un'occhiata al nostro articolo su Come accedere automaticamente agli utenti dopo la registrazione.

Riferimento azione: wpforms_process

FAQ

D: Posso aggiungere LinkedIn a questo snippet?

R: Assolutamente! Per aggiungere allo snippet sopra per LinkedIn, usa questo snippet e aggiorna gli ID del modulo e dei campi per il modulo che stai utilizzando.

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