Introduzione
Volete convalidare un URL di social media nel vostro modulo? Per lo scopo di questa documentazione, permetteremo all'utente di inserire un URL di Twitter e un URL di Facebook, ma vogliamo avere la possibilità di convalidare gli URL dei social media prima che il modulo venga inviato; per farlo, utilizzeremo PHP. In questo tutorial, vi illustreremo i passaggi per raggiungere questo obiettivo.
Creazione del modulo
Per prima cosa, è necessario creare il 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 avete bisogno di aiuto per creare il vostro modulo, consultate questa documentazione.
Aggiunta dello snippet
Ora che avete aggiunto i campi, è il momento di aggiungere al vostro sito lo snippet di codice che convaliderà l'URL di un social media nel vostro modulo.
Se non sapete come o dove aggiungere gli snippet al vostro sito, consultate 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 qui sopra, utilizziamo questo snippet solo sull'ID 902 del modulo 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 frammento di codice qui sopra, vedranno un errore dopo aver inviato il modulo.
È necessario aggiornare gli ID dei moduli e dei campi in modo che corrispondano a quelli presenti sul sito. Se avete bisogno di aiuto per trovare questi ID, consultate questo tutorial.
Ed ecco fatto! Siete riusciti a convalidare un URL di social media. Volete che gli utenti effettuino automaticamente il login una volta completato il modulo di registrazione? Date un'occhiata al nostro articolo su Come registrare automaticamente gli utenti dopo la registrazione.
Correlato
Riferimento azione: wpforms_process
FAQ
D: Posso aggiungere LinkedIn a questo frammento?
R: Assolutamente sì! Per aggiungere lo snippet di cui sopra per LinkedIn, utilizzate questo snippet e aggiornate gli ID del modulo e del campo per il modulo che state 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 );