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

So stellen Sie eine zusätzliche Validierung für das Telefonfeld bereit

Möchten Sie eine zusätzliche Validierung für das Telefonfeld bereitstellen? Wenn Sie beispielsweise verhindern möchten, dass Benutzer kostenlose Nummern in Ihrem Telefonfeld eingeben, können Sie dies mit einem kleinen PHP-Snippet ganz einfach erreichen. In diesem Tutorial führen wir Sie durch die Schritte, wie Sie die Eingabe von kostenlosen Nummern in Ihrem Formular verhindern können.

Erstellung des Formulars

Um zu beginnen, müssen Sie Ihr Formular erstellen und Ihr Telefonfeld sowie alle zusätzlichen Felder, die Sie in Ihrem Formular benötigen, hinzufügen.

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

Um eine zusätzliche Telefonfeldvalidierung bereitzustellen, müssen Sie zuerst Ihr Formular erstellen.

Festlegen des Telefonfeldformats

Für diese Dokumentation werden wir verhindern, dass jede Telefonnummer mit 8 oder +8 beginnt. Abhängig vom Format, das Sie für das Telefonformularfeld verwenden, benötigen Sie den unten stehenden Codeausschnitt.

Wählen Sie das Format, das Sie für Ihr Telefonfeld verwenden möchten

Zusätzliche Telefonfeldvalidierung

Jetzt ist es an der Zeit, den benötigten PHP-Snippet hinzuzufügen. Es gibt zwei verschiedene Snippets, abhängig davon, welches Format für das Telefonfeld beim Erstellen Ihres Formulars festgelegt wurde.

Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, sehen Sie sich dieses Tutorial an.

US-Telefonformat

/**
 * Custom US format phone field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone($field_id, $field_submit, $form_data)
{
        //  Only check for US phone field format
	if ( 'us' === $form_data[ 'fields' ][$field_id][ 'format' ]) { 

		$stripped_phone = str_replace(array( '(', ')'), '', (string) $field_submit);

		$prefixes = [ '8', '+8' ];

		$regexp = implode( '|', $prefixes);

		if (preg_match( '/^[' . $regexp . ']/', $stripped_phone)) {
			wpforms()->process->errors[$form_data[ 'id' ]][$field_id] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes ) . '"', 'plugin-domain' );
		}
	}
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3);

Smart- und internationales Telefonformat

/**
 * Custom Smartphone and International field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone( $field_id, $field_submit, $form_data ) {

   $prefixes = [ '8', '+8' ];

   $regexp = implode( '|', $prefixes );

   if ( preg_match( '/^[' . $regexp . ']/', (string) $field_submit ) ) {
      wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes) . '"', 'plugin-domain' );
   }
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3 );

Beide Snippets prüfen den Wert des Telefonfeldes bei der Übermittlung des Formulars. Wenn es mit der Zahl 8 oder +8 beginnt, wird das Formular nicht übermittelt und eine Fehlermeldung angezeigt.

Durch die Bereitstellung einer zusätzlichen Telefonfeldvalidierung können Sie problemlos verhindern, dass kostenlose Nummern in Ihr Formular eingegeben werden.

Und das ist alles! Sie haben erfolgreich eine zusätzliche Validierung für Ihr Telefonformularfeld hinzugefügt. Möchten Sie auch verhindern, dass bestimmte E-Mails eingegeben werden? Schauen Sie sich unser Tutorial So beschränken Sie E-Mail-Domains an.

Referenzfilter

wpforms_process_validate_phone