Der Filter für die Inhaltsprüfung eines Formularfeldes bezieht sich auf den Typ. Hierbei ist zu unterscheiden, ob es sich um ein Pflichtfeld handelt oder nicht. Es macht also einen Unterschied, ob man auf wpcf7_validate_text
prüft oder wpcf7_validate_text*
.
Auf diese Weise kann ein bestimmten Feldtyp global geprüft werden, ober aber innnerhalb der Funktion ein Feldname explizit angesprochen werden. if ( 'name-des-zu-validierenden-feldes' == $tag->name )
.
Im nachfolgenden Beispiel sollen in einem bestimmten Pflicht-Textfeld nur Kleinbuchstaben und Ziffern erlaubt sein.
add_filter( 'wpcf7_validate_text*', 'username_validation_filter', 20, 2 );
function username_validation_filter( $result, $tag ) {
if ( 'wp-username' == $tag->name ) {
$username = isset( $_POST['wp-username'] ) ? trim( $_POST['wp-username'] ) : '';
if ( !preg_match ('/^[a-z0-9]/', $username ) ) {
$result->invalidate( $tag, "Bitte nur Kleinbuchstaben und Ziffern verwenden" );
}
}
return $result;
}
Schreibe einen Kommentar