2017-12-19 1 views
1

Ich muß WooCommerce Telefonnummer mit +370 beginnen zu machen ... Ich habe diese Funktion versucht:Rechnungsnummer Telefon mit einem bestimmten Muster Überprüfung der Kasse in WooCommerce

add_action('woocommerce_checkout_update_order_meta', 'dd_Testval'); 

function dd_Testval() { 
    $billing_phone = filter_input(INPUT_POST, 'billing_phone'); 

    if (strlen(trim(preg_replace('[\+]\d{2}[\(]\d{2}[\)]\d{4}[\-]\d{4}', '', $billing_phone))) > 0) { 
     wc_add_notice(__('Invalid <strong>Phone Number</strong>, please check your input.'), 'error'); 
    } 
} 

Es hat keine Auswirkungen.

Irgendwelche Vorschläge?

Antwort

0

Der richtige Weg ist:

  • eine benutzerdefinierte Funktion in Aktion woocommerce_checkout_process hook anstelle gehakt zu verwenden.
  • preg_match() zu verwenden, statt preg_replace()

Jetzt wird die Regex überprüfen, dass die Anzahl von Telefon +370 beginnt. Akzeptiert werden nur Ziffern, Leerzeichen und Bindestriche, mit einer Gesamtlänge von mindestens 9 Zeichen.

add_action('woocommerce_checkout_process', 'custom_checkout_field_process'); 
function custom_checkout_field_process() { 
    // Check the number phone 
    if (isset($_POST['billing_phone']) && ! preg_match("/^(\+370)?[0-9 \-]{5,}/i", $_POST['billing_phone'])) 
     wc_add_notice(__('Invalid <strong>Phone Number</strong>, please check your input.'), 'error'); 
} 

Dieser Code geht in function.php Datei Ihres aktiven Kind Thema (oder Thema) oder auch in jeder Plugin-Datei.

Getestet und funktioniert

Verwandte Themen