Wenn du seit Jahren erfolgreich einen Shop führst, bist du doch sicher in der Lage einen Entwickler zu beauftragen dass für dich zu übernehmen oder? Das Forum hier hilft gerne mit Tipps & häufig auch mit ganzem Code, aber letzlich sollte man auch in der Lage sein die Antworten zu interpretieren und selbst auszuprobieren...
Probier mal folgenden Code:
PHP
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('/\w{1,}\s\d{1,}/ig', $_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('/\w{1,}\s\d{1,}/ig', $_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_checkout_process', 'validate_checkout', 10, 2);
function validate_checkout($data, $errors)
{
if (!preg_match('/\d{1,}\s\w{1,}/ig', $data['billing_city'])) {
$errors->add('address', 'Haben Sie die Postleitzahl zum Wohnort vergessen?');
}
}
Alles anzeigen
PS: Das Postleitzahl/ZIP-Code Feld nicht zu nutzen würde ich mir wieder abgewöhnen, so ne Abweichung vom Standard sorgt auf Dauer doch nur für Ärger...