Streichpreisen in WooCommerce einen Hinweistext hinzufügen

Das folgende Mini-Plugin fügt WooCommerce-Produkten mit Streichpreisen einen eigene Hinweistext hinzu. Der text selbst kann zu Beginn des Plugin-Codes, innerhalb der Funktion wc_min_max_price_suffix__defaults(), angepasst werden.

Das Plugin nutzt die filterbare WooCommerce-Option Zusatz zur Preisangabe (WooCommerce ? Einstellungen ? Mehrwertsteuer). Hat ein Produkt Streichpreise, fügt das Plugin programmatisch ein Sternchen (Asterisk) an den Streichpreis an und schleust an der Stelle, wo sonst der Wert der Option Zusatz zur Preisangabe ausgegeben würde, den im Plugin eingangs definierten Texthinweis ein.

Der Link innerhalb des Hinweistextes verweist standardmäßig auf die für WooCommerce German Market zwingend vorhandene Informationsseite Bestellvorgang. Dort könnten/müssten dann spezielle Informationen zu Streichpreisen hinterlegt sein. Alternativ lässt sich auch jede andere Seite aus WordPress verlinken. Für eine Seite mit der ID 123 sähe die Code-Zeile z.B. so aus:

Das Mini-Plugin gibt es hier als Gist:

https://gist.github.com/marketpress-support-team/649e4d510948eb4836b7

Herunterladen lässt es sich u.a. als ZIP über das Button Download ZIP. Das ZIP kannst du dann ganz normal als Plugin über dein WordPress-Backend installieren.

Bitte vor dem produktiven Einsatz in einer Testumgebung testen!

Englische Ausgabe von Preis pro Einheit

Im Zuge eines Supportthema aus dem Helpdesk, ergab sich folgende Problemstellung:

Wenn man im Backend die Sprache auf Englisch stellt, kommt es bei der gewünschten Preis pro Einheit Eingabe, im Dropdown zu keiner Ausgabe.

Preis Pro Einheit - Eigenschaftenauswahl
Preis Pro Einheit – Eigenschaftenauswahl

Actions, Filters und after_setup_theme

Unsere Themes und unser Plugin German Market bieten mit ihren Hooks ein simples API zur Individualisierung. Meist geschieht geht es darum, ein Code-Snippet in die functions.php eines Child-Themes einzufügen.

Beispiel: du betreibst eine Installation mit German Market (GM) + Theme Hamburg + Child-Theme und möchtest den Hinweis zu Lieferzeiten in einem Produkt an einer anderen Stelle haben, als WGM bzw. Hamburg ihn platzieren.

Du platzierst ein Code-Snippet z.B. ans Ende deiner functions.php, aber es bleibt ohne Effekt. Die gewünschte Anpassung tritt nicht in Kraft. In diesem Tutorial beleuchten wir, warum nicht und wie du deine Hook-Aufrufe vom Child-Theme aus richtig ans Laufen bringst.

Hamburg: Top-10-Carousel nur mit verfügbaren Bestsellern

Hamburg holt sich für das Top-10-Carousel auf der Shop-Startseite einen meta query aus WooCommerce. Dieser nimmt die Katalogsichtbarkeit eines Bestseller-Produkts zum Maßstab, damit es im Carousel angezeigt wird. Der Status des Warenbestands, „vorrätig“ oder „nicht vorrätig“, spielt für Anzeige hingegen keine Rolle.

Hash-Zeichen (#) bei Bestellnummer ausblenden

Zuständige Zeile für den Output der Bestellnummer in WooCommerce: class-wc-order.php#L137

Eigenen Filter in der functions.php des aktiven (Child-)Themes definieren:

Getestet mit: WC 2.1.5, TwentyTwelve, WP 3.8.1

Mehrwertsteuer in E-Mail-Template aufbohren

Ziel: Die Darstellung der von WooCommerce German Market generierten Mehrwertsteuer im E-Mail-Template von WooCommerce zu beeinflussen.

Theme-Dateien:

  • woocommerce/emails/email-order-items.php
  • functions.php

Benutzte Filter:

  • wgm_format_vat_output ([WGM-Plugin-Ordner]/inc/WGM_Template.php)

Getestet mit: WC 2.1.2, WGM 2.3.1, TwentyTwelve, WP 3.8.1

1. Filterfunktion

An den Filter wgm_format_vat_output soll ein modifizierter String übergeben werden. Dazu definieren wir in der functions.php des (Child-)Theme eine neue Funktion, die als Parameter die vom Filter übergebenen Argumente bekommt.

Der erste Parameter enthält bereits den fertigen String, den ich nur mit etwas HTML und CSS für das E-Mail-Template aufpeppe:

Wichtig: E-Mail-Clients haben sehr eigene Vorstellungen von der Interpretation von CSS, die Darstellung kann also in verschiedenen Clients durchaus unterschiedlich ausfallen. Getestet habe ich das obige Beispiel lediglich mit GMail.

2. Filter im E-Mail-Template setzen

Das E-Mail-Template email-order-items.php muss im Template-Ordner woocommerce/emails des aktiven (Child-)Theme vorhanden sein. Wenn nicht, bitte das entsprechende WooCommerce-Template dorthin kopieren.

In email-order-items.php setze ich vor dem schließenden ?></td> in Zeile 60 den Filter:

3. Ergebnis

Die Mehrwertsteuer der einzeln aufgeführten Produkte wird in eine neue Zeile verschoben und hat eine kleinere Schriftgröße.

Modifzierte Mehrwertsteuerzeile des Produkts in GMail
Modifzierte Mehrwertsteuerzeile des Produkts in GMail