Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Überprüfen eines Social-Media-URL-Felds in Ihrem Formular

Einführung

Möchten Sie eine Social-Media-URL in Ihrem Formular validieren? Für diese Dokumentation lassen wir den Benutzer eine Twitter-URL und eine Facebook-URL eingeben, aber wir möchten die Social-Media-URLs validieren können, bevor das Formular abgeschickt wird. Dazu verwenden wir PHP. In diesem Tutorial führen wir Sie durch die Schritte, wie Sie dies erreichen können.

Erstellung des Formulars

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

Wenn Sie Hilfe beim Erstellen Ihres Formulars benötigen, lesen Sie bitte diese Dokumentation.

Fügen Sie das Feld Website / URL hinzu, damit Ihre Benutzer ihre Social-Media-URL eingeben können

Hinzufügen des Snippets

Nachdem Sie die Felder hinzugefügt haben, ist es an der Zeit, den Code-Snippet auf Ihrer Website hinzuzufügen, der eine Social-Media-URL in Ihrem Formular validiert.

Wenn Sie nicht sicher sind, wie oder wo Sie Snippets auf Ihrer Website hinzufügen können, lesen Sie bitte dieses 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 );

Im obigen Code-Snippet verwenden wir dieses Snippet nur für die Formular-ID 902 und nur für das Feld-ID 25, welches das Facebook-URL-Feld ist, und Feld 26, welches das Twitter-URL-Feld ist.

Wenn Benutzer einen Link in diese Felder eingeben, der nicht mit dem in unserem obigen Code-Snippet aufgeführten übereinstimmt, sehen sie nach dem Absenden des Formulars eine Fehlermeldung.

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

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

Und das ist alles! Sie konnten erfolgreich eine Social-Media-URL validieren. Möchten Sie auch, dass sich die Benutzer automatisch anmelden, nachdem sie das Registrierungsformular ausgefüllt haben? Sehen Sie sich unseren Artikel über automatische Benutzeranmeldung nach der Registrierung an.

Aktionsreferenz: wpforms_process

FAQ

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

A: Absolut! Um das obige Snippet für LinkedIn zu erweitern, 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 );