Checkout Felder: Prüfen ob Postleitzahl UND Text im Feld steht
-
Hallo, ich bin neu hier (kein Programmierer) und br?uchte bitte mal eure Hilfe. Was ich machen m?chte: Ich habe zwei Felder dort muss rein: Text und Zahlen. Stra?e mit Hausnummer "billing_address_1" und shipping Postleitzahl mit Wohnort "billing_city" und shipping Oft vergessen Kunden (habe viele ?ltere), wegen der Autovervollst?ndigen-Funktion, das Ganze nachher nochmal zu kontrollieren und mir fehlen wichtige Adressdaten. So gibt der eine keine Postleitzahl ein, ein Anderer vergisst den Wohnort oder die Hausnummer im Stra?enfeld. Ich br?uchte also bestenfalls einen Check von Zahl- und von Texteingabe, unabh?ngig voneinander, so dass wenn das Ein oder das Andere fehlt eine dementsprechende Fehlermeldung kommt und "KAUFEN" solange nicht ausgeführt werden kann. Ich bin schon in diesem und einem anderen Forum weit gekommen, aber es funktioniert nur mit Zahlen und das mit der PLZ brachte ich bei der Lieferadresse "shipping_city" leider auch nicht hin. Da kommen nach Code-?nderung immer Fehlermeldungen (File error etc.) Denn wenn statt der Zahl die Buchstaben vergessen wurde sollte dann auch ein dementsprechender Hinweis ausgegeben werden, selbst wenn die Postleitzahl bereits eingetragen wurde. Zur Zeit funktioniert das nur mit der fehlenden Zahl. Wenn die aber drin steht, wird das Feld schon freigegeben und man kann "KAUFEN" ohne das der Wohnort (Text) angegeben wurde. Bitte kann mir jemand von Euch Spezialisten den Code vervollst?ndigen? Ich bendanke mich schon mal im Voraus für die Mithilfe. Dieser Code hier funktioniert in meiner AVADA-Child function.php zur Zeit einwandfrei:
// Prüfung bei WooCommerce ob Hausnummer bei der Adresse eingetragen wurde.
add_action(‘woocommerce_checkout_process’, ‘custom_validation_process’);
function custom_validation_process()
{
global $woocommerce;if(isset($_POST[‘billing_address_1’]) and $_POST[‘billing_address_1’] != ”)
{
if (!preg_match(‘/([0-9]+)/Uis’, $_POST[‘billing_address_1’]))
{
if(function_exists(‘wc_add_notice’))
wc_add_notice( __(‘Haben Sie die Hausnummer bei der Straße vergessen?’), ‘error’ );
else
$woocommerce->add_error( __(‘Haben Sie die Hausnummer bei der Straße vergessen?’) );
}
}if(isset($_POST[‘ship_to_different_address’]))
{
if(isset($_POST[‘shipping_address_1’]) and $_POST[‘shipping_address_1’] != ”)
{
if (!preg_match(‘/([0-9]+)/Uis’, $_POST[‘shipping_address_1’]))
{
if(function_exists(‘wc_add_notice’))
wc_add_notice( __(‘Haben Sie die Hausnummer bei der Lieferadresse vergessen?’), ‘error’ );
else
$woocommerce->add_error( __(‘Haben Sie die Hausnummer bei der Lieferadresse vergessen?’) );
}
}
}
}
// Prüfung bei WooCommerce ob Postleitzahl bei der Adresse eingetragen wurde.add_action( ‘woocommerce_after_checkout_validation’, ‘validate_checkout’, 10, 2);
function validate_checkout( $data, $errors ){
if ( ! preg_match(‘/[0-9]/’, $data[ ‘billing_city’ ] ) ){
$errors->add( ‘address’, ‘Haben Sie die Postleitzahl zum Wohnort vergessen?’ );
}
}`
- The topic ‘Checkout Felder: Prüfen ob Postleitzahl UND Text im Feld steht’ is closed to new replies.