WooCommerce – Ein Shop-Plugin für WordPress – Teil 5
Mittlerweile sind wir schon beim 5. Teil unserer Woocommerce Shop-Plugin Serie angekommen. Und jetzt stehen wir vor der wichtigsten Herausforderung, nämlich der Gestaltung des Checkout-Prozesses. Im Besonderen möchte ich hier den Fokus auf das Thema der rechtssicheren Gestaltung des Checkout für den deutschen Markt legen.
Die Ausgangssituation
So in etwa dürfte auch bei Euch der "Kassen"-Bereich von WooCommerce aussehen:
Der Checkout von WooCommerce ist der Teil, der mir sowohl von der Optik als auch aus Sicht der Rechtssicherheit am wenigsten zusagt. Sicher sind nicht alle folgenden Veränderungen unbedingt erforderlich, aber unterstützen den Kaufabschluss unmittelbar. OK, was sind also die Dinge, die wir ändern wollen.
- Unbedingt erforderlich, ist ein Hinweis auf und die Akzeptanz unserer AGB
- Die Kenntnisnahme des Widerrufrechtes
- Die Änderung des "Kaufen"-Buttons in "kostenpflichtig bestellen". Dies erfordert die sogenannte "Button-Lösung", die zum 1. August 2012 in Kraft trat.
- Kurzbeschreibung der gekauften Artikel, um dem Käufer die wesentlichen Eigenschaften wie Farbe, Größe etc. zu vermitteln
- Ein Bild zum jeweiligen Produkt
- Die gekaufte Menge deutlicher in einer separaten Spalte herausstellen
- Den Einzelpreis der gekauften Artikel aufführen
- Ein Hinweis unter "Gesamtsumme", dass Mehrwertsteuer und Versandkosten enthalten sind
Da ist einiges zusammen gekommen. Aber dies sind die Punkte, die wir jetzt nacheinander in unseren Checkout-Prozess integrieren. In diesem Teil unserer Serie reicht es nicht mehr aus, unsere "functions.php" zu ergänzen, sondern wir müssen auch umfangreiche Änderungen in einer PHP-Datei von WooCommerce vornehmen. Damit diese Änderungen bei einem Update nicht verloren gehen, müssen wir diese Datei in unseren Theme Ordner integrieren. Zum Glück hat WooCommerce für diesen Zweck vorgesorgt. Und zwar können wir alle Dateien, die im Template-Ordner von WooCommerce liegen, durch gleichnamige Dateien in unserem Theme-Ordner ersetzen.
Bitte geht deshalb jetzt in Euer Theme-Verzeichnis und erstellt einen neuen Ordner. Diesen nennt Ihr bitte "woocommerce" (ohne Anführungszeichen). Im Ordner "woocommerce" erstellen wir zwei weitere Ordner, und zwar den Ordner "order" (ohne Anführungszeichen) und den Ordner "checkout" (ohne Anführungszeichen). Den letzteren benötigen wir aber erst später.
Jetzt navigiert bitte in Euer Plugin-Verzeichnis. In einer normalen WordPress-Umgebung findet Ihr dies unter "wp-content/plugins". Dort findet Ihr den Ordner "woocommerce". Bitte diesen nicht verwechseln mit "wocommerce-de". Dies ist nämlich die deutsche Spracherweiterung. Jetzt öffnet den Ordner "templates/checkout/" und kopiert die Datei "review-order.php" in Euren eben erstellten Ordner "checkout". WooCommerce erkennt dies automatisch und greift zukünftig auf die Datei in unserem Ordner zu. Damit ist sicher gestellt, dass durchgeführte Updates nicht unsere individuellen Anpassungen überschreiben.
Für die später ersichtliche Bestellbestätigung benötigen wir noch die Datei "order-details.php". Daher kopiert bitte diese Datei von "/wp-content/plugins/woocommerce/templates/order/" in "/euertheme/woocommerce/order/". Damit sind die Vorarbeiten abgeschlossen und wir können mit den ersten Änderungen beginnen.
AGB
Punkt 1 und 2 auf unserer Liste erledigen wir in einem Aufwasch, da letztlich das Prozedere gleich ist. Ich möchte, dass meine Kunden meine AGB bestätigen und das Widerrufsrecht zur Kenntnis nehmen müssen. Für diesen Zweck soll jeweils eine Checkbox eingerichtet werden. Wird diese nicht angehakt und dennoch versucht den Bestellvorgang abzuschließen, erscheint ein entsprechender Hinweis. Beide Checkboxen sind somit Pflicht. An dieser Stelle möchte ich nicht unerwähnt lassen, dass WooCommerce hierfür schon eine Lösung hat. Diese wird in der Nähe des "Kaufen"-Buttons eingeblendet, sobald man unter "Einstellungen->Seiten" eine AGB-Seite ausgewählt hat. Diese Lösung sagt mir aber aus mehreren Gründen nicht zu. Zum einen, weil ich eh noch eine Lösung für das Widerrufsrecht benötige und weil ich die Bestätigung weiter oben haben möchte. Der Kunde soll am Ende, nachdem er schon alle möglichen Angaben gemacht hat, nicht mehr von der Auslösung einer Bestellung abgelenkt werden. Entscheidend ist für mich aber ein anderer Punkt. Mit dieser Lösung ist nicht sicher, was im Falle eines Updates genau passiert, ob hier Änderungen vorgenommen werden oder nicht. Die Anpassungen für den deutschen Markt und die Rechtssicherheit möchte ich hier nicht aus der Hand geben. Schließlich muss ich im Falle eines Falles ja auch dafür haften!
Jetzt aber zu unserer eigenen Lösung. Unter WooCommerce ist es möglich jegliche Felder im Checkout-Prozess sowohl individuell anzupassen als auch neue Felder hinzuzufügen. Wir möchten 2 neue hinzufügen. Diese Aufgabe können wir noch mittels eines Action Hooks in der "functions.php" erledigen. Ich stelle hier kurz den Code vor und gehe im Anschluss darauf ein:
/*-------------- Hinweis auf AGB mit Checkbox --------------*/ add_action('woocommerce_after_order_notes', 'agb_abfrage'); function agb_abfrage( $check ) { echo '<div id="agb_check">'; woocommerce_form_field( 'agb_check', array( 'type' => 'checkbox', 'class' => array('notes'), 'label' => __('Mit Abgabe einer Bestellung bestätigen Sie, unsere <a href="http://vertrieb-im-netz.de/agb">AGB</a> gelesen, verstanden und akzeptiert zu haben.'), 'placeholder' => __('AGB'), 'required' => true, ), $check->get_value( 'agb_check' )); echo '</div>'; } /*-------------- AGB Feld prüfen --------------*/ add_action('woocommerce_checkout_process', 'agb_check_gueltig'); function agb_check_gueltig() { global $woocommerce; if (!isset($_POST['agb_check'])) $woocommerce->add_error( __('Bitte bestätigen Sie unsere <a href="http://vertrieb-im-netz.de/agb">AGB</a>.') ); }
In der ersten Zeile rufen wir den Hook "woocommerce_after_order_notes" mit unserer Funktion "agb_abfrage" auf. Dieser führt unsere Funktion direkt unter den persönlichen Angaben aus. Die Funktion haben wir in ein "div " gepackt, um gegebenenfalls die Ausgabe in unserer "CSS-Datei " gestalten zu können. Bei dem Typ der Abfrage/Eingabe handelt es sich um eine "Checkbox" (Zeile 7), d. h. wir können abfragen, ob diese angehakt wurde oder nicht. Wenn nicht, wird eine entsprechende Fehlermeldung nach Betätigen des Kauf-Buttons ausgegeben. In dieser Fehlermeldung verlinken wir auf unsere AGB-Seite (Zeile 21). Unter 'label' wird der Ausgabetext mit der Verlinkung auf unsere AGB-Seite hinterlegt (Zeile 9). Wichtig ist noch die Angabe 'required' (Zeile 11). Hier lautet der Wert 'true' und besagt zweierlei. Zum einen, dass diese Checkbox angehakt werden muss und zum anderen, dass am Ende unseres Textes ein Sternchen gesetzt wird. Dies verdeutlicht unseren Kunden, dass die Angabe verpflichtend ist. Die Prüfung erfolgt mit der Funktion "agb_check_gueltig" und einer eventuellen Fehlermeldung.
Widerrufsbelehrung
Bevor wir uns das Endergebnis anschauen, setzen wir den Hook "woocommerce_after_order_notes" analog für die Widerrufsbelehrung um. Der Code hierfür sieht folgenermaßen aus:
/*---------- Hinweis auf WRB mit Checkbox --------------*/ add_action('woocommerce_after_order_notes', 'wrb_abfrage'); function wrb_abfrage( $check ) { echo '<div id="wrb_check">'; woocommerce_form_field( 'wrb_check', array( 'type' => 'checkbox', 'class' => array('notes'), 'label' => __('Mit Abgabe einer Bestellung bestätigen Sie, das <a href="http://vertrieb-im-netz.de/widerrufsrecht">Widerrufsrecht</a> zur Kenntnis genommen zu haben.'), 'placeholder' => __('WRB'), 'required' => true, ), $check->get_value( 'wrb_check' )); echo '</div>'; } /*-------------- WRB Feld prüfen --------------*/ add_action('woocommerce_checkout_process', 'wrb_check_gueltig'); function wrb_check_gueltig() { global $woocommerce; if (!isset($_POST['wrb_check'])) $woocommerce->add_error( __('Bitte bestätigen Sie die Kenntnisnahme des <a href="http://vertrieb-im-netz.de/widerrufsrecht">Widerrufsrechts</a>.') ); }
Das Endergebnis sieht dann so aus. Beide Checkboxen müssen angehakt werden, sonst kann der Bestellvorgang nicht abgeschlossen werden.
Schauen wir uns doch kurz einmal an, was wir von unseren Vorhaben bisher umgesetzt haben:
- Unbedingt erforderlich, ist ein Hinweis auf und die Akzeptanz unserer AGB
- Die Kenntnisnahme des Widerrufrechtes
- Die Änderung des "Kaufen"-Buttons in "kostenpflichtig bestellen". Dies erfordert die sogenannte "Button-Lösung", die zum 1. August 2012 in Kraft trat.
- Kurzbeschreibung der gekauften Artikel, um dem Käufer die wesentlichen Eigenschaften wie Farbe, Größe etc. zu vermitteln
- Ein Bild zum jeweiligen Produkt
- Die gekaufte Menge deutlicher in einer separaten Spalte herausstellen
- Den Einzelpreis der gekauften Artikel aufführen
- Ein Hinweis unter "Gesamtsumme", dass Mehrwertsteuer und Versandkosten enthalten sind
Wie Ihr seht war der 5. Teil zwar relativ umfangreich, aber bisher haben wir nur die ersten beiden Punkte umgesetzt. Zuerst wollte ich alles in diesen 5. Teil packen. Dieser wäre dann aber viel zu umfangreich geworden. Daher mache ich jetzt hier einen Cut und fahre mit der Änderung des Kaufen-Buttons im 6. Teil fort. Die angekündigten umfangreichen Änderungen in einer PHP-Datei von WooCommerce muss also noch warten. Ich hoffe, es waren einige interessante Ansätze für Euch dabei. Also, bis zum 6. Teil.
[fb_share]
Hallo Ralf,
Dein Tutorial ist wirklich toll, mit der Anleitung habe ich es als IT-Laie vor zwei Jahren geschafft, einen kleinen Shop einzurichten (WP, Woocommerce, Pinboard Theme), der problemlos läuft. Danke dafür!
Nun bin ich gerade dabei, alles upzudaten auf WordPress 4.5.2 mit Pinboard-Child-Theme und Woocommerce 2.5.5, glücklicherweise erstmal auf meiner Testinstallation. Ein Punkt macht dabei immer noch Probleme: Die Bestätigung von AGB und Widerruf. Ich habe in den Kommentaren hier einen Hinweis vom letzten Jahr (Frank Schultze) gefunden und habe daraufhin in meiner functions.php bei AGB und Widerruf statt
$woocommerce->add_error( __(‚Bitte bestätigen Sie die Kenntnisnahme der AGB.‘) );
nun das stehen:
wc_add_notice(__(‚Bitte bestätigen Sie die Kenntnisnahme der AGB.‘), $notice_type = ‘error’ );
Die Folge ist nun leider, dass ich (test)bestellen kann, ohne die Kreuzchen bei AGB und Widerruf zu setzen. Hast Du vielleicht eine Idee, woran das liegen könnte? Ich wäre wirklich superdankbar für einen Hinweis.
Viele Grüße
Wilde Möhren
Hallo,
leider kann ich aus der einen Zeile nicht viel erkennen. Wahrscheinlich hast du aber diese Zeile per Copy & Paste eingefügt. Da kann es schon mal vorkommen, dass die Hochkommata nicht richtig übernommen wurden. Bitte tippe dies noch einmal über die Tastatur ein. Sollte dies nicht die Ursache sein, kannst du mir gerne deine functions.php per Mail zukommen lassen. Ich schaue dann mal drüber.
Grüße Ralf
Hallo Ralf,
genial! Es funktioniert! Ich hatte tatsächlich nicht bemerkt, dass bei „error“ noch die falschen Zeichen standen – so ist das leider, wenn man keine Programmiererin ist. Mit Deinem Hinweis (so schnell!) hat es gleich geklappt. Danke, danke! Und ich bin gespannt auf die weiteren Teile Deines Tutorials. Ein großartiges Projekt, dass Du da hast und ohne das es meinen Shop nicht gäbe.
Viele Grüße
Wilde Möhren
Freut mich, dass ich schnell und unkompliziert helfen konnte. Weiterhin viel Erfolg mit deinem Projekt.
Grüße Ralf
Hallo Ralf,
Danke für deine super Anleitung. Das wäre genau das was ich suche. Leider funktionierts bei mir nicht.
– habe deinen AGB Code kopiert und in meiner functions.php des Templates am Ende hinzugefügt.
– Aber wie und vor allem wo scheint das dann im checkout auf ? Wie kann ich die Position dort verändern ? Derzeit sehe ich nichts.
– Muss ich trotzdem die AGB in den Einstellungen des Woocommerce aktivieren ?
danke dir
lg
Patrick
Hallo Patrick,
nein, die AGB Einstellungen von WooCommerce dürfen nicht aktiviert werden.
Bitte schicke mir doch mal Deine functions.php als Anhang per Mail zu. Bitte nicht den Inhalt heraus kopieren.
Grüße
Ralf
Hallo Ralf,
ich habe alles gemacht, aber bei mir funktioniert es nicht bzw. die Checkbox erscheint nicht.
Ich brauche lediglich nur die Checkbox für die Wiederrufsbelehrung.
Was könnte ich falsch machen?
Wie sollte der Ordner von meinem Child Theme sein, habe eins selber erstellt mit style.css und functions.php.
In functions.php ist der Text (änderung) von oben drin.
Würde mich um eine schnelle Antwort freuen.
Lg
Hallo Murat,
Du solltest erst einmal prüfen, ob Dein Child-Theme auch korrekt aktiviert ist. Dies kannst Du im WP Backend unter „Design->Themes“ nachschauen. Sollte dies der Fall sein, kannst Du mir gerne mal Deine functions.php per Mail zukommen lassen. Dann schaue ich mal drüber.
Grüße
Ralf
Hallo Ralf,
Ich bräuchte deine Mail Adresse.
Wenn ich den Child Theme aktiviere kommt der Text der in functions.php steht einfach ganz oben auf der Seite, was mach ich falsch?
Grüße
Hallo Murat,
findest Du im Impressum:
https://www.vertrieb-im-netz.de/impressum/
Schaffe ich wohl erst morgen.
Grüße
Ralf
Hallo, ich sehe, dass der letzte Kommentar schon über ein halbes Jahr her ist. Ich hoffe, du bekommst meine Frage trotzdem. Bis hierhin hast du mir schon sehr weitergeholfen. Du hast genau das geändert, was mir auch an Woocommerce missfiel. Nur jetzt habe ich ein Problem. Bei dem Nichtankreuzen der AGB und des Widerrufrechts bekomme ich keine Meldungen, die den Kunden dazu bringen anzukreuzen, sondern es erscheint ohne beide Kreuze der Fehler:
Fatal error: Call to undefined method WooCommerce::add_error() in C:\xampp\htdocs\wordpressshop\wordpress-4.1.1-de_DE\wordpress\wp-content\themes\travelify\functions.php on line 146
und wenn ich die AGB ankreuze und den Widerruf nicht, dann kommt zu dem Fehler Zeile 146 noch
Fatal error: Call to undefined method WooCommerce::add_error() in C:\xampp\htdocs\wordpressshop\wordpress-4.1.1-de_DE\wordpress\wp-content\themes\travelify\functions.php on line 170 hinzu. Beide Fehler weisen jeweils auf folgende Zeilen hin::
146 ist: $woocommerce->add_error( __(‚Bitte bestätigen Sie unsere AGB.‘) );
170 ist: $woocommerce->add_error( __(‚Bitte bestätigen Sie die Kenntnisnahme des Widerrufsrecht.‘) );
Kannst du dir das erklären? Oder hast du eine Möglichkeit, das zu ändern. Die eingearbeiteten Links sind in Ordnung.
So sieht die Fehlermeldung für den Kunden nach einem Fehler der Homepage aus. Es wäre aber doch schön, wenn er merkt, dass er eteas übersehen hat. Wäre schön, wenn du helfen könntest.
Vielen Dank und ich bin gespannt, wie es weitergeht. Insgesamt alles extrem hilfreich, was du da ausgearbeitet hast.
Frank
PS sollte ich auf deine Entgegnung oder Fragen nicht sofort antworten können, liegt das daran, dass ich aus Zeitgründen immer nur nachts an meiner Homepage arbeiten kann.
Hallo Frank,
klar bekomme ich Deine Frage. So schnell werdet ihr mich nicht los 🙂
Hin und wieder ändert sich bei WooCommerce auch Grundlegendes. Dazu gehört auch die Funktion „add_error“. Diese gibt es nicht mehr. Die neue Funktion lautet „wp_add_notice“. Der Aufbau ist wie folgt:
wc_add_notice(__(‚Bitte bestätigen Sie unserer AGB.‘), $notice_type = ‚error‘ );
Du musst also alle add_error Funktionen ersetzen. Dann sollte alles wieder wie gewohnt funktionieren. Habe es leider noch nicht gesschafft, dazu einen neuen Beitrag zu machen.
Grüße
Ralf
Hallo Ralf, danke für deine Antwort, super, dass du dich um Probleme anderer kümmerst. Ich bin leider erst heute dazu gekommen, es auszuprobieren. Ich komme dennoch nicht weiter. Die Anzeigen sind jetzt nach der Änderung wie folgt:
Fatal error: Call to undefined method WooCommerce::wc_add_notice() in C:\xampp\htdocs\wordpressshop\wordpress-4.1.1-de_DE\wordpress\wp-content\themes\travelify\functions.php on line 170
Fatal error: Call to undefined method WooCommerce::wc_add_notice() in C:\xampp\htdocs\wordpressshop\wordpress-4.1.1-de_DE\wordpress\wp-content\themes\travelify\functions.php on line 146
In der functions Php habe ich in den Zeilen folgende Codes:
$woocommerce->wc_add_notice( __(‚Bitte bestätigen Sie unsere AGB.‘), $notice_type = ‘error’ ); in der Zeile 146
$woocommerce->wc_add_notice( __(‚Bitte bestätigen Sie die Kenntnisnahme des Widerrufsrecht.‘), $notice_type = ‘error’ ); in der Zeile 170
Da aus deiner Antwort nicht ganz klar war, ob es wp_…. oder wc_….. heißen sollte, habe ich beides ausprobiert. Nachdem das nicht funktionierte, habe ich deine Angabe alleine eingefügt, also ohne $woocommerce-> davor und ohne den Link, aber auch da bekomme ich die Anzeige. Hast du noch eine Idee???
Gruß Frank
Hallo Frank,
Du musst bitte die Funktion so übernehmen, wie ich es Dir geschrieben habe. Also nicht noch „$woocommerce->“ davor setzen, sondern einfach
wc_add_notice( __(‚Bitte bestätigen Sie die Kenntnisnahme des Widerrufsrecht.‘), $notice_type = ‚error‘ );
Solltest Du nicht weiter kommen, kannst Du mir auch Deine functions.php einfach per Mail schicken. Ich schaue dann mal drüber.
Grüße
Ralf
Hallo Zusammen,
es wird hier auf eine functions.php Bezug genommen, leider habe ich keinen Hinweis darauf gefunden, wo ich diese functions.php finde. Um welche Datei handelt es sich? Und um welches PlugIn was sich in der Endphase befindet handelt es sich? Fragen über fragen …
Viele Grüße
Benjamin
Hallo Ralf,
immer, wenn ich die Checkboxen versetzen möchte (hätte sie gerne oberhalb der customer details), erhalte ich den Fehler:
Call to a member function get_value() on a non-object in …
Oder warte ich einfach auf dein Plugin? :o)
Hallo Petra,
wie versuchst Du denn die Boxen zu versetzen? Verstehe ich das richtig, dass Du die Boxen ganz nach oben ziehen möchtest? Das deckt nämlich mein Plugin nicht ab. Würde ich auch nicht zu raten. Mit dem Plugin kannst Du entweder den mehrseitigen Checkout wählen, dann sind die Boxen auf der letzten Seite über der Bestellübersicht. Oder aber Du wählst den normalen Checkout, dann hast Du die Wahl unter der Versandanschrift oder über der Checkout Tabelle.
Grüße
Ralf
Hallo Ralf,
ich habe endlich eine Lösung gefunden für fast alle WordPress-WooCommerce-Probleme denke ich. Ich warte nur darauf dein Plugin auf http://www.puenktchenkommastrich.com zu installieren.
Aber was anderes warum ich eigentlich schreibe. Ich würde gerne über dein Plugin auf mein Blog http://www.emart-digital.com/blog-digitale-gesellschaft-und-forschung/ berichten. Wann ist die Lancierung?
Viele grüße
Elvis Martínez @eMART Digital
Hallo Elvis,
danke für Dein Interesse an meinem Plugin. Das Plugin ist jetzt in der finalen Testphase. Wollte es schon viele früher rausbringen, aber der Funktionsumfang wurde immer größer. Hoffe, dass ich das Plugin in den nächsten 4 Wochen veröffentlilchen kann. Für kurze Zeit beträgt dann der Preis € 19,-. Diesen werde ich dann aber rasch anheben, da die € 19,- mal für einen deutlich geringeren Funktionsumfang gedacht waren. Bei weiteren Fragen kannst Du mich gerne kontaktieren.
Grüße Ralf
Vielen Dank für die gute Anleitung!
Leider funktioniert auf unserer Seite die Weiterleitung zur Kasse nicht mehr, nachdem die functions.php angepasst wurde. Manuell lässt sich die Seite noch laden. Wir wären sehr dankbar für Lösungsvorschläge.
Nach welchen Änderungen an der functions.php genau? AGB und Widerruf? Kann man sich dies anschauen? Funktioniert die Weiterleitung wieder, wenn die Änderungen rückgängig gemacht werden?
Sorry für die vielen Fragen, aber sonst ist dies aus der Ferne schwierig zu beurteilen.
Grüße Ralf
Danke für die schnelle Rückmeldung. Konnte das Problem beheben, war wohl ein Fehler mit dem child-theme
Vielen Dank für die tolle Anleitung. Hat alles wunderbar funktioniert!
Ich hätte allerdings eine Frage:
Ist es möglich die beiden Felder für AGB und Widerruf ganz am Ende einzublenden? Für mich wäre es optimal zwischen Gesamtsumme und Zahlung oder zwischen Zahlung und Kaufen-Button. Habe es mit verschiedenen Hooks probiert ohne Erfolg.
Grüße,
Peter
Hallo Peter,
ja, Du kannst diese Hinweise auch an einer anderen Stelle einbinden. Schaue dafür in die “ review-order.php “ und suche Dir die gewünschte Stelle. Sollte es da keine Möglichkeit mittels eines Hooks geben, kannst Du auch Deinen eigenen Hook erstellen. Dies machst Du mit “ “ an Deiner Wunschposition. Diesen Hook-Namen musst Du dann wie im Artikel beschrieben verwenden. Also “ woocommerce_after_order_notes “ durch Deinen Hook ersetzen.
Allerdings kann ich nicht empfehlen, diese Hinweise nach unten zu ziehen. Musst mal ein wenig “ googlen „. Aber Du läufts hier Gefahr, eine Abmahnung zu kassieren.
Grüße
Ralf
Super Anleitung, danke!
Habe ich so 1:1 übernommen und die Anzeige der Checkboxen und das Prüfen, ob die Haken gesetzt wurden, funktioniert wunderbar. Nur die Fehlermeldung wenn der Haken nicht gesetzt wird erscheint nicht. Irgendeine Idee, woran das liegen könnte?
Danke!
Hallo Klaus,
ist von hier aus nicht einfach zu sagen. Oftmals passieren Fehler bei folgenden Zeilen:
woocommerce_form_field (’name‘, array(…. und
… if ( !isset($_POST[’name‘])) …
“ name “ muss in beiden Fällen identisch sein. Solltest Du nicht weiterkommen, kannst Du mir auch mal Deinen Codeschnipsel aus der functions.php per Mail schicken. Dann schau ich da mal drüber.
Grüße Ralf
[…] Funktionen in der ” functions.php ” haben sich nicht geändert. Diese könnte Ihr in Teil 5 meiner WooCommerce Reihe […]
Hallo und vielen Dank,
für die vielen Tipps!
Ich bastele grad an einem Shop und konnte einiges von dem, was du geschrieben hast schon umsetzen.
Eine Sache aber verstehe ich nicht, vielleicht kannst du mir helfen ?!:
Wie auch in deinem Warenkorb und Checkout habe auch ich in den meinigen Radiobuttons für die Versandmethoden. Bei dir macht es Sinn, weil vielleicht jemand das Produkt abholen soll. Bei mir aber ist es so: Bis 39,00€ gibts eine Versandkostenpauschale von 3,00€…funktioniert. Darüber ist alles versandkostenfrei…funktioniert auch. Nun aber hat der Kunde die Möglichkeit, eben zwischen diesen beiden Methoden zu wählen. Wir könnten meinen er wäre schön dumm, wenn er sich statt für die kostenfreie Variante nun doch die Versandkosten wählte. Lieber wäre mir, wenn in diesem Falle die Wahl für ihn nicht mit Auswahlfeld/Radiobutton stünde, sondern eben einfach nur : Versandkostenfrei.
Hoffe du hast mein Problem verstehen können. Wenn du eine Idee hast, wie ich das anstellen könne, die Versandkosten, welche ja ab 39€ nicht mehr anstehen, verbergen kann, so gib mir bitte bescheid.
Danke,
Mathias Illing
Hallo Mathias,
vielen Dank für Deine Nachricht. Freut mich, dass Dir meine Tipps geholfen haben.
Ja, ich verstehen Dein Problem und Dein Ansatz klingt logisch. Für die Darstellung ist die Datei „shipping-methods.php“ im Ordner „Cart“ im Template-Ordner verantwortlich. Diese müsste auf Deine Bedürfnisse angepasst werden. Bevor Du aber irgendwelche Änderungen vornimmst, erstelle Dir bitte wie beschrieben einen woocommerce-Ordner in Deinem Theme-Ordner und kopiere die erforderlichen Datein dorthin. Jetzt kannst Du Änderungen vornehmen und ggf. auch wieder auf die Originale zugreifen. Weiterhin werden Deine Änderungen nicht durch ein Update überschrieben.
Grüße Ralf