Leider liefern die Affiliate-Netzwerke meist nur den Verkaufspreis für den Artikel. Damit du auch Grundpreise (welche in DE Pflicht sind) anzeigen kannst, musst du diesen Hook und ein Feld einfügen.
Diese Hook ist auf Flaschen und Liter ausgelegt. Für andere Einheiten musst du nur die Felder entsprechend anpassen.
1. Feld anlegen
Im Affiliate-Toolkit unter „Einstellungen -> Benutzerdefinierte Felder“ kannst du folgendes Feld anlegen:
Zusätzlich lege folgende Taxonomie an (nicht jede Flasche hat die gleiche Menge an Inhalt):
2. Hook einfügen
Diese Funktion berechnet für Produkte welche die Flaschenanzahl hinterlegt haben, den richtigen Grundpreis und schreibt diesen in den Platzhalter „price“ und „price_text“:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
function atkp_bottlehook_callback( $placeholders ) { //Hier können sämtliche Änderungen am „$placeholders“-Array vorgenommen werden. $newprice = ATKPTools::price_to_float($placeholders['price']); $flascheng = strip_tags($placeholders['customtaxonomy_flaschengroesse']); $flascheng = str_replace(',', '.',$flascheng); // remove everything except numbers and dot "." $flascheng = preg_replace("/[^0-9\.]/", "", $flascheng ); $flaschenanzahl = floatval($placeholders['customfield_flaschenanzahl']); $flaschenfaktor = floatval($flascheng) ; if($flaschenfaktor > 0 && $flaschenanzahl > 0) { $litermenge = (($newprice / $flaschenanzahl) / $flaschenfaktor) * 1; $litermengeformat = number_format_i18n ($litermenge, 2 ); $formatted = sprintf('%s (€ %s / l)', $placeholders['price'], $litermengeformat); $formatted2 = sprintf('%s (€ %s / l)', $placeholders['price_text'], $litermengeformat); $placeholders['price'] = $formatted ; $placeholders['price_text'] = $formatted2 ; } return $placeholders; } add_filter( 'atkp_modify_placeholders', 'atkp_bottlehook_callback'); |
3. Produkt bearbeiten
Damit der Hook auch funktioniert, musst du nun bei dem Produkt die Anzahl der Flaschen richtig eingeben. Das Feld findest du im Tab „Benutzerdefinierte Felder“.
Zusätzlich musst du noch die entsprechende Flaschengröße anlegen (je nach Wunsch):
4. Anzeige des Preises
Die Ausgabe des Preises erfolgt so: