Hallo, ich bin neu (kein Programmierer) und hoffentlich richtig hier und bräuchte bitte mal eure Hilfe.
Was ich machen möchte: Ich habe zwei Felder dort muss rein: Text und Zahlen.
FELD1: Straße mit Hausnummer = „billing_address_1“ und " shipping_address_1"
FELD2: Postleitzahl mit Wohnort = „billing_city“ und "shipping_city"
Oft vergessen gerade ältere Kunden (meist wegen der Autovervollständigen-Funktion) nach der Eingabe die Felder 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 jeweilige Fehlermeldung kommt und „KAUFEN“ solange nicht ausgeführt werden kann.
Ich bin schon in Dr. Google und anderen Foren 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 in Avada-Child (File error etc., genaueres weiß ich leider nicht mehr). Denn wenn statt der Zahl die Buchstaben vergessen wurden, 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/Lieferadresse 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?' );
}
}