Beiträge von jabadabaduh

    @b3317133 ....dann passe doch einfach das Erstellen der Bestell-Mail an.

    Die E-Mail zeigt dem Kunden zwar alle Eingaben an, aber die liest er meistens nicht mehr, ob er was vergessen hat, oder ob was falsch ist.

    Ich schreibe doch nur Zahlen und Text in ein Textfeld!

    Ihr tut ja Alle gerade so, als ob ich eine Rakete bauen möchte, die bei der Landung explodiert. Und selbst das ist heute schon kein Problem mehr, wird halt eine neue bei SpaceEx gebaut.

    Woocommerce/WordPress kann man doch seinen Vorstellungen anpassen, dachte ich und hatte das auch vorher so gelesen.
    Avada-Child functions.php ist doch für solche Sachen gemacht, dass eben die Rakete nicht explodiert.
    Übrigens: Der Ganze bisherige PHP-Code kam aus diversen Foren von Woocommerce und WordPress und läuft doch auch.

    Davon hat ja auch keiner gesprochen.

    Also weiterhin viel Glück beim Demontieren von WooCommerce. Möglicherweise lesen wir ja in 4-6 Monaten einen Beitrag mit dem Titel 'Paypal akzeptiert keine Zahlungsanfragen mehr'.

    Ich bin raus aus dem Thread.

    Nein, liest Du eben nicht, weil, wie ich oben schrieb, andere Zusatzgeschichten (diesen anderen Quatsch), so auch PayPal, nicht benötige.

    Trotzdem Danke und cool bleiben. Ich bin erst seit kurzem bei Woocommerce und hatte auf mehr Verständnis von Dir gehofft.

    UPDATE: Shipping-PLZ-Zahlen-Check läuft jetzt auch.

    Also, falls mir jetzt noch jemand meinen Check-Code vervollständigen könnte, sodass auch Buchstaben + Zahlen Pflicht sind...

    In einem Feld muss beides stehen um "KAUFEN" freizugeben. Um es nochmals zu verdeutlichen:
    --------
    99999: Keine KAUFEN Button Freigabe + Error Hinweis: Wohnort vergessen?
    Berlin: Keine KAUFEN Button Freigabe + Error Hinweis: Postleitzahl vergessen?.

    99999 Berlin: KAUFEN Button Freigabe.
    ---------
    Unter den Linden: Keine KAUFEN Button Freigabe + Error Hinweis: Hausnummer vergessen?
    122e: Keine KAUFEN Button Freigabe + Error Hinweis: Straße vergessen?

    Unter den Linden 122e: KAUFEN Button Freigabe.
    ---------

    So sieht die funtions.php jetzt aus und funktioniert auch mit dem Zahlencheck:

    // // Prüfung bei WooCommerce ob Hausnummer 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 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' ] ) || ! preg_match('/[0-9]/', $data[ 'shipping_city' ] ) ){
    if(function_exists('wc_add_notice'))
    wc_add_notice( __('Haben Sie die PLZ (Postleitzahl) vergessen?'), 'error' );
    else
    $woocommerce->add_error( __('Haben Sie die PLZ (Postleitzahl) vergessen?') );
    }
    }

    Mir würde es mittlerweile eigentlich auch schon reichen, wenn mir jemand den funktionsfähigen Code für die PLZ im Shippingbereich anpassen könnte.
    Wie gesagt, einfaches kopieren und billing_city in shipping_city auszutauschen geht nicht ohne Fehlermeldung in der function.php: File error.

    Ansonsten funktioniert dieser Code genauso:

    // 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?' );
    }
    }

    Zu dem Code von @Michi91: Es gibt zwar keine Fehlermeldung, wenn ich den alten rausschneide und Deinen einfüge,
    aber funktioneren tut damit nix. Weder wird die Fehlermeldung ausgegeben, wenn die Zahlen fehlen (so wie es im alten Code schon bestens funktioniert), noch gibt es eine Meldung bei fehlenden Buchstaben. Auch mein Problem (des noch fehlenden Checks) der PLZ in der Liefeadresse löst das nicht.

    Zu @mensmaximus
    Ich denke Sie gehen immer davon aus, das ein jahrelanger Shopbetreiber Otto-Versand o.ä. Grössenordnungen hat.
    Ich bin ein kleiner regionaler Händler. Das hat alles seinen Grund und der Shop ist bereits erstellt, den müssen Sie mir nicht erstellen.
    Wenn im Original PLZ Feld von WC auch eeeee fffff zzzzz usw. eingetragen werden können, dann ist das kein brauchbares Feld für mich. Deshal hatte ich dann umgestellt auf ein Kombifeld, weil's eh wurscht war und die Adresse einfacher für die Kunden hineinzukopieren ist.

    Ich sagte auch nie, dass das PLZ-Feld Quatsch ist, sondern (weil Sie mir mit Plugins, DHL Versand usw. gekommen sind) das ich DHL, und andere Zusatzgeschichten (diesen anderen Quatsch) nicht benötige. >> Genau lesen erspart viel geschreibs'l auf beiden Seiten.

    Dann stieß ich auf den obigen Code für die Hausnummern was 1a funktioniert hat. Beim kopieren, hinzufügen und ändern für die PLZ kamen aber Fehlermelungen. In einem anderen Forum hatte ich dann den unteren Code für die PLZ entdeckt. Leider hat bei der PLZ die Shipping Geschichte nicht funktioniert, weshalb ich die dann weggelassen habe. Seitdem funktioniert das auch so.

    Ich möchte von niemenaden einen Shop erstellt haben, denn der läuft bereits. Ich dachte, dass ich mich Forenkonform verhalte, wenn ich nur für mein letztes Problem ein wenig Unterstützung erfahren könnte. Ich bin NEU hier und kann keinen PHP-Code schreiben, sondern allenfalls leicht verändern, wenn ich weiß wie und WO es geht.

    Hättest Du mir gleich geschrieben, dass Dein /\w{1,}\s\d{1,}/ig hinter !preg_match eingetragen wird, hätte ich das auch geschafft.
    Allerdings hätte ich nicht gewusst ob [0-9] dann drinnen stehen hätte müssen.

    Ich glaube nicht, das ich Dich damit überfordert hätte, den Code zu kopieren und an der einen Stelle auszubessern.
    Dann kann ich den Code auch als Laie reinkopieren in die function.php und ausprobieren ob es funktioniert.

    Nich falsch verstehen, ich weiß Eure Hilfe zu schätzen, aber mit Allem infrage zu stellen komme ich nicht weiter.

    Also bitte: Kann mir jemand den Code so vervollständigen, das es passt?

    Danke @mensmaximus für Deine 2. Antwort.

    Ich will ja die vielen Mechanismen auch nicht nutzen. Ich will nur eine einfache und korrekte Adresse in der Bestell-Mail stehen haben.
    Warum versteht niemand, das es auch User gibt die den ganzen Quatsch außenrum nicht brauchen.

    Danke für den erneuten Code. Aber das ist so wie wenn mir jemand von einem 1000er Puzzle 2 Teile zusammensetzt und sagt jetzt schaffst du den Rest wohl alleine.

    Ich kenne mich mit dem Code nicht aus, wie ich mehrmals andeutete. Wohin gehört das?
    Und die Frage mit einem funktionierenden Code für den PLZ-Check im Shipping-Feld beantwortet das leider auch nicht.

    Könnte mir das jemand zumindest in die richtigen Zeilen meiner Vorlage einbauen? Und wie gesagt, check soll auf Zahl und Buchstaben funktionieren: Nicht eins von beiden und dann schon die Freigabe von KAUFEN, sondern beides, ZAHL & Buchstaben muss da sein um den KAUFEN-Button freizugeben.

    In einem Feld muss beides stehen. Um es nochmals zu verdeutlichen:
    --------
    99999: Keine KAUFEN Button Freigabe.
    Berlin: Keine KAUFEN Button Freigabe.

    99999 Berlin: KAUFEN Button Freigabe.
    ---------
    Unter den Linden: Keine KAUFEN Button Freigabe.
    122e: Keine KAUFEN Button Freigabe.

    Unter den Linden 122e: KAUFEN Button Freigabe.

    Danke @[size=14]mensmaximus für Deine Antwort.
    Alle Fragen beantwortet mein ausführlicher Text, aber bitte nochmal:
    1. woocommerce_after_checkout_validation habe ich aus anderen Foren übernommen.
    Falsch codiert? ES FUNKTIONIERT! Wie gesagt: Ich bin kein Programmierer.
    2. Es hat seinen Grund (Autovervollständugen, Adresse kopieren, weniger Felder = übersichtlicher) warum das in einem Feld steht.

    So und jetzt noch ein drittes mal meine Bitte: Kann mir bitte jemand beim vervollständigen oder umschreiben des Code's helfen?[/SIZE]

    Danke für die Antwort @r23. Es ist ja nicht nur die Hausnummer. Ich hatte deshalb eine ausführliche Beschreibung beigefügt. Bitte keine guten Tips, was ich so alles machen könnte. Übrigens: Die KI auf github ist für Australien gemacht.
    Es hat seine Gründe (langjährige Shop-Erfahrung) warum ich das so mache. Der Code funktioniert ja (bis auf den check der PLZ in der Lieferadresse) einwandfrei! Kann mir bitte jemand beim vervollständigen des Code's helfen?

    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?' );
    }
    }