Update 2.5.2019 – Achtung: die vorgeschlagene Lösung funktioniert mit der aktuellen Version 2.0.4 nicht mehr!
Es scheint aber eine funktionierende Lösung zu geben: https://gist.github.com/vendidero/9e9dbe056c044bf8b5be44a5c994a344
Vielen Dank an Julius für die Übermittlung dieser Lösung!!
Das WooCommerce-Germanized (WPGZD) ist ein großartiges (in der Basisversion kostenfreies) Plugin, das den Online-Shop unter WordPress/WooCommerce ganz bequem an deutsche Rechtsgrundlagen anpasst, d.h. rechtssicher in Deutschland macht. (vendidero.de)
Mir hat jedoch nicht gefallen, dass der „Legal“-Hinweis auf AGBs und Datenschutz und die Checkbox zum Akzeptieren derselben mitten in der Order Review
Anzeige eher unscheinbar untergebracht ist. Um die Checkbox und den Textblock oberhalb des „kostenpflichtig bestellen
„–Buttons (Button Text in Österreich zum Absenden der Bestellung) anzuordnen, sind Änderungen am Plugin notwendig. *)
Dazu macht man sich am Besten selbst ein Plugin, damit man nicht den WPGZD-Core-Code verändert und so diese Änderungen bei Updates verloren gehen würden. Dieses, eigene Plugin kann in der Folge dann für alle Erweiterungen des WooCommerce Online-Shops dienen. Will man sich die Arbeit an einem Plugin ersparen, reicht es auch den Code in der Datei functions.php
des (Child-)Themes anzuführen. Für den AGB-Hinweistext brauchen wir eine Aktion am Hook wp_loaded
, d.h. der Code wird ausgeführt wenn das WPGZD-Plugin schon vollständig geladen wurde:
add_action( 'wp_loaded', 'change_wc_gzd_checkout' );Danach die Funktion, welche die Vertauschung durchführt:
function change_wc_gzd_checkout() { if ( is_plugin_active( 'woocommerce-germanized/woocommerce-germanized.php' ) ) { include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); ## Legal Text incl. checkbox before the checkout button remove_action( 'woocommerce_review_order_after_payment', 'woocommerce_gzd_template_checkout_legal', wc_gzd_get_hook_priority( 'checkout_legal' ) ); add_action( 'woocommerce_review_order_before_submit', 'woocommerce_gzd_template_checkout_legal', wc_gzd_get_hook_priority( 'checkout_legal' ) ); } }Hinweise:
Reihenfolge der scripts und styles beim Laden von WordPress
WordPress AJAX calls in pluginsFür Webshops in Österreich gelten folgende Gesetze:
Medien-Gesetz(MedienG), E-Commerce Gesetz (ECG), Fernabsatz Gesetz(FAGG) und das Telekommunikationsgesetz(TKG).Hinweise zur „Cookie“-Richtlinie der EU: Arge Daten
*) Für die Rechtssicherheit nach dieser Änderung in ihrem Webshop kann ich allerdings keinerlei Garantie übernehmen, ich biete hier lediglich den Code für ein besseres Verständnis von Hooks und Aktionen in WordPress/WooCommerce an.
Hi =)
Danke für’s teilen. Mich stört die Platzierung auch. Der Ansatz mit dem Child-Theme klingt sehr gut. Ich habe den Code in mein Storefront-Child-Theme kopiert, aber leider klappt es nicht. Ich nutze die aktuellsten Versionen von WordPress, Woocommerce und woocommerce-germanized. Ich steh auf dem Schlauch. Spontan eine Idee, woran es liegt?
Beste Grüße
Hi Ash,
Sorry, der add_action-Aufruf war im Artikel für ein plugin aus einer Class heraus.
In der functions.php musst Du folgendes angeben:
Habe den Artikel dahingehend korrigiert.
Gruß Ronnie
Hi Ronnie,
richtig klasse, jetzt geht es!
Allerdings gab es noch einen „PHP Fatal error: Call to undefined function is_plugin_active()“ in den Serverlogs und die Seite blieb weiß. Konnte ich aber lösen, indem ich „include_once(ABSPATH.’wp-admin/includes/plugin.php‘);“ deinem Code vorangestellt habe.
Nochmals vielen Dank für’s Teilen und beste Grüße
Ash
Hatte ich beim Übertragen von meiner functions.php vergessen.
Artikel wurde entsprechend angepasst.
Danke Ash für den Hinweis!
Parse error: syntax error, unexpected ‚public‘ (T_PUBLIC) in /….-child/functions.php on line 32
🙁
na ja, nicht gerade viel Information um einen Fehler zu finden 😉
Ich tippe mal auf eine nicht geschlossene Klammer….
Hey,
danke für den Beitrag. Das ist genau was ich suche. Leider klappts bei mir auch noch nicht. Habs auch mit der include function probiert, hat leider nicht geklappt. Klammern hab ich alle gecheckt. Ich bekomme den gleichen Fehler wie tom:
Parse error: syntax error, unexpected ‚public‘ (T_PUBLIC) in /var/www/vhosts/…httpdocs/wp-content/themes/enfold-child/functions.php on line 13
In line 13 ist bei mir der Anfang der change_wc_gzd_checkout() function.
Kann ich sonst noch irgendwas zur Lösung bereitstellen?
Danke dir schonmal
Hi,
mit meiner Fehlerdiagnose war ich schon richtig, eine Klammer fehlte.
Nur leider bei meinem Code, wofür ich mich entschuldigen möchte.
Das private vor function gehört auch weg (eine Altlast, da die Funktion ursprünglich in einem Plugin war….)
Der Code wurde nun korrigiert und sollte funktionieren.
Jedenfalls danke für deinen Kommentar!!!
Super,
hat perfekt geklappt!!! Danke dir.
hat hier jemand auch nen Tipp wie ich die sepa lastschrift mandant checkbox entferne bzw. vor den AGB’s anzeige
Hallo,
Hättest du auch ein fertiges Plugin für diese Änderung?
Bekomme leider beim Einfügen einen Error 500. Wo genau stellt man den Code ein?
Hallo Daniel,
leider habe ich kein fertiges Plugin.
Hast du die vorgeschlagenen Änderungen in der functions.php in deinem Child Theme gemacht?
Was sagt das Fehlerlog des Webservers?
Hi, nachdem ich deinen Code in meinem Child Theme php eingefügt habe, hab ich eine Fehlermeldung bekommen.
So liegt es im php File:
/* WoCommerce Germanized Checkout Box über Kostenpflichtig bestellen Button*/
add_action( ‚wp_loaded‘, ‚change_wc_gzd_checkout‘ );
function change_wc_gzd_checkout() {
if ( is_plugin_active( ‚woocommerce-germanized/woocommerce-germanized.php‘ ) ) {
include_once( ABSPATH . ‚wp-admin/includes/plugin.php‘ );
/* Legal Text incl. checkbox before the checkout button */
remove_action( ‚woocommerce_review_order_after_payment‘, ‚woocommerce_gzd_template_checkout_legal‘, wc_gzd_get_hook_priority( ‚checkout_legal‘ ) );
add_action( ‚woocommerce_review_order_before_submit‘, ‚woocommerce_gzd_template_checkout_legal‘, wc_gzd_get_hook_priority( ‚checkout_legal‘ ) );
}
}
Die Fehlermeldung:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‚woocommerce_gzd_template_checkout_legal‘ not found or invalid function name in /kunden/530064_81476/webseiten/wordpress/wp-includes/class-wp-hook.php on line 286
Hi,
danke für den Hinweis. Dieser Artikel ist im Dez. 2016 geschrieben worden und inzwischen wurde das Woocommerce Germanized verändert. Die function ‚woocommerce_gzd_template_checkout_legal‘ gibt es nicht mehr im aktuellen Plugin.
Hallo, ich habe das selbe Problem. Wahrscheinlich wurde der Name verändert.
Gibt es eine Übersicht mit allen Bezeichnungen von den „Hooks“ oder eine andere Alternative?
Wie kann man es aktuell lösen? Danke!
Ah es gibt schon eine Lösung online:
https://gist.github.com/vendidero/9e9dbe056c044bf8b5be44a5c994a344
dank dir Julius, jetzt geht es bei mir auch, ohne deinen Beitrag hätte ich das nie gefunden. Jetzt geht es auch bei mir.