Validierung eines Social Media URL-Feldes in Ihrem Formular

Einführung

Möchten Sie eine URL für soziale Medien in Ihrem Formular validieren? In dieser Dokumentation möchten wir dem Benutzer die Möglichkeit geben, eine Twitter-URL und eine Facebook-URL einzugeben, aber wir möchten die Möglichkeit haben, die Social Media-URLs zu validieren, bevor das Formular abgeschickt wird. Dazu werden wir PHP verwenden. In diesem Tutorial führen wir Sie durch die einzelnen Schritte, wie Sie dies erreichen können.

Erstellen des Formulars

Zunächst müssen Sie Ihr Formular erstellen. Unser Formular wird zwei Website-URL-Felder enthalten. Eines ist für eine Twitter-Follow-URL und das andere für eine Facebook-Follow-URL.

Wenn Sie Hilfe bei der Erstellung Ihres Formulars benötigen, lesen Sie bitte diese Dokumentation.

Fügen Sie das Feld Website/URL hinzu, damit Ihre Nutzer ihre URL für soziale Medien eingeben können.

Hinzufügen des Snippets

Jetzt, wo Sie die Felder hinzugefügt haben, ist es an der Zeit, das Code-Snippet zu Ihrer Website hinzuzufügen, das eine URL für soziale Medien in Ihrem Formular validiert.

Wenn Sie nicht sicher sind, wie oder wo Sie Snippets zu Ihrer Website hinzufügen können, lesen Sie bitte diese Anleitung.

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

Im obigen Codeschnipsel verwenden wir diesen Schnipsel nur für die Formular-ID 902 und nur für die Feld-ID 25, die das Facebook-URL-Feld ist, und für Feld 26, das das Twitter-URL-Feld ist.

Wenn die Benutzer einen Link in diese Felder eingeben, der nicht mit den Angaben in unserem obigen Codeschnipsel übereinstimmt, wird eine Fehlermeldung angezeigt, nachdem sie das Formular abgeschickt haben.

Sie müssen die Formular- und Feld-IDs aktualisieren, damit sie mit denen auf Ihrer Website übereinstimmen. Wenn Sie Hilfe bei der Suche nach diesen IDs benötigen, sehen Sie sich bitte dieses Tutorial an.

Mit diesem Snippet können Sie ganz einfach eine Social Media URL in Ihrem Formular validieren

Und das war's! Sie haben erfolgreich eine URL für soziale Medien validiert. Möchten Sie auch, dass sich die Benutzer automatisch anmelden, sobald sie das Registrierungsformular ausgefüllt haben? Schauen Sie sich unseren Artikel über die automatische Anmeldung von Benutzern nach der Registrierung an.

Referenz der Aktion: wpforms_process

FAQ

F: Kann ich LinkedIn zu diesem Snippet hinzufügen?

A: Auf jeden Fall! Um das obige Snippet für LinkedIn zu ergänzen, verwenden Sie dieses Snippet und aktualisieren Sie die Formular- und Feld-IDs für das von Ihnen verwendete Formular.

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