Support » WooCommerce » Checkout Felder: Prüfcode ob Postleitzahl UND Text im Feld steht

  • Gelöst jabadabadu

    (@jabadabadu)


    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?’ );
    }
    }
    • Dieses Thema wurde geändert vor 7 Monaten, 3 Wochen von Hans-Gerd Gerhards. Grund: Formatierung als Code
Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Es wäre sinnvoll, wenn du uns deinen Quellcode zeigen würdest und wenn du dabei eine Fehlermeldung bekommst, sollte man die auch vollständig posten.

    Allerdings ist das hier ein WordPress-Anwender-Forum und kein WordPress-Entwicklerforum.

    Thread-Ersteller jabadabadu

    (@jabadabadu)

    Der Code ist doch dabei. Die Fehlermeldungen kann ich leider nicht mehr reproduzieren, denn durch mehrfaches ausprobieren habe ich mir die nicht alle gemerkt. Sorry. Vielleicht kann mir mit diesem Code (der ja so auch funktioniert) der Eine oder Andere trotzdem beim vervollständigen behilflich sein. Wäre ganz toll. Danke.

    Hallo,
    das können wir in diesem Rahmen kaum testen. Wie @bscu bereits geschrieben hat, wäre es da günstiger, wenn du dich entweder an das Woocommerce-Forum wendest oder das Problem hier postest.
    Viele Grüße
    Hans-Gerd

    Thread-Ersteller jabadabadu

    (@jabadabadu)

    Ich dachte in deutsch bin ich hier im richtigen Forum? Ich blicke nicht durch. Was ist das denn dann hier für ein Forum? Die Links zu den Anderen sind was und wie anders? Ich suche einfach nur jemanden der mir meinen Code ergänzt, nicht NEU programmiert. Ich bin Neu hier und deshalb stehe ich etwas auf dem Schlauch…

    Thread-Ersteller jabadabadu

    (@jabadabadu)

    Mit einer ausführlichen englischen Beschreibung meines Problems komme ich sicher nicht klar.

    Was ist das denn dann hier für ein Forum?

    Sagte ich schon:

    Allerdings ist das hier ein WordPress-Anwender-Forum und kein WordPress-Entwicklerforum.

    Hallo,

    Was ist das denn dann hier für ein Forum?

    … ich bin schon ein wenig erstaunt über deine Reaktion. Wenn du dir hier die Beiträge im Forum (z. B. die Titel) ansiehst, wirst du sehr schnell feststellen, dass wir hier (übrigens in unserer Freizeit) Hilfe bei Anwendungsproblemen anbieten.
    Bei programmierungstechnischen Problemen (und dann auch noch in Zusammenhang mit Woocommerce) ist (zumindest mir persönlich) der Aufwand zu hoch, um in dieser Hinsicht Hilfe zu leisten. Daher auch mein Verweis auf das genannte Forum. Wenn ich bei PHP-Problemen nicht weiterkomme, dann poste ich das in der Tat auch genau da.
    Sorry, aber die Zeit musst du dann schon investieren.
    Viele Grüße
    Hans-Gerd

    Thread-Ersteller jabadabadu

    (@jabadabadu)

    Ok. Danke trotzdem. Ich hatte das nicht so auf dem Schirm.

    kein Problem.

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „Checkout Felder: Prüfcode ob Postleitzahl UND Text im Feld steht“ ist für neue Antworten geschlossen.