Zusätzliche Validierung von Telefonfeldern bereitstellen

Möchten Sie eine zusätzliche Validierung von Telefonfeldern einrichten? Wenn Sie zum Beispiel verhindern möchten, dass Benutzer gebührenfreie Nummern in Ihr Telefonfeld eingeben, können Sie dies ganz einfach mit einem kleinen PHP-Snippet erreichen. In diesem Tutorial zeigen wir Ihnen, wie Sie die Eingabe von gebührenfreien Nummern in Ihr Formular verhindern können.

Erstellen des Formulars

Zunächst müssen Sie Ihr Formular erstellen und das Feld " Telefon" sowie alle weiteren Felder, die Sie für Ihr Formular benötigen, hinzufügen.

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

um eine zusätzliche Validierung der Telefonfelder zu ermöglichen, müssen Sie zunächst Ihr Formular erstellen.

Einstellen des Telefonfeldformats

Für die Zwecke dieser Dokumentation werden wir alle Telefonnummern, die mit 8 oder +8. Je nachdem, welche Format die Sie für die Telefon Formularfeldes hängt von dem unten stehenden Codeschnipsel ab, den Sie verwenden müssen.

Wählen Sie das Format, das Sie auf Ihrem Telefonfeld verwenden möchten

Zusätzliche Validierung von Telefonfeldern

Nun ist es an der Zeit, das benötigte PHP-Snippet hinzuzufügen. Es gibt zwei verschiedene Snippets, und das hängt davon ab, welches Format für das Feld " Phone" bei der Erstellung Ihres Formulars festgelegt wurde.

Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, lesen Sie bitte dieses Tutorial.

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

Smartes 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 Schnipsel überprüfen den Wert des Feldes Phone, wenn das Formular abgeschickt wird, und wenn er mit der Zahl 8 oder +8 beginnt, wird das Formular nicht abgeschickt und eine Fehlermeldung erscheint.

Durch eine zusätzliche Überprüfung des Telefonfeldes können Sie ganz einfach verhindern, dass gebührenfreie Nummern in Ihr Formular eingegeben werden.

Und das war's! Sie haben erfolgreich eine zusätzliche Validierung für Ihr Telefonformularfeld hinzugefügt. Möchten Sie auch verhindern, dass bestimmte E-Mail-Adressen eingegeben werden? Sehen Sie sich unser Tutorial über die Einschränkung von E-Mail-Domains an.

Referenzfilter

wpforms_process_validate_phone