Skip to main content

Hooks

Aktionen und Filter in WordPress: Grundlagen und Anwendung

In WordPress spielen Aktionen und Filter eine zentrale Rolle, um den Funktionsumfang der Anwendung zu erweitern. Sie ermöglichen Entwicklern, an definierten Stellen im WordPress-Zyklus Funktionen zu registrieren und bei Bedarf auszuführen.

Aktion

Eine Action in WordPress ist ein benutzerdefinierter PHP-Callback, der an bestimmten Punkten im WordPress-Lebenszyklus registriert und ausgeführt wird. Aktionen dienen dazu, auf Ereignisse wie das Laden einer Seite, das Veröffentlichen eines Beitrags oder das Anmelden eines Benutzers zu reagieren. Aktionen verändern keine Daten direkt und haben keinen Rückgabewert; sie führen einfach Aufgaben aus.

  • Registrieren: Mit add_action melden Sie eine Funktion an, die beim Eintreten eines Ereignisses ausgeführt wird.
  • Ausführen: Mit do_action führen Sie alle Funktionen aus, die an dieser Aktion registriert sind.

Beispiel:

add_action("test_aktion", "meine_funktion");
do_action("test_aktion");

function meine_funktion() {
   // Code, der ausgeführt wird, wenn die Aktion "test_aktion" aufgerufen wird
   error_log("Die Funktion 'meine_funktion' wurde durch die Aktion 'test_aktion' ausgeführt.");
}

In diesem Beispiel wird do_action("test_aktion") aufgerufen, um die test_aktion-Aktion auszuführen. Da meine_funktion durch add_action an test_aktion registriert wurde, wird meine_funktion ausgeführt, sobald do_action("test_aktion") aufgerufen wird.

Filter

Ein Filter in WordPress ermöglicht es, Daten zu ändern, bevor sie ausgegeben oder gespeichert werden. Filter sind benutzerdefinierte PHP-Callbacks, die den Datenstrom manipulieren und einen Rückgabewert erwarten. Sie werden oft verwendet, um Inhalte wie Beiträge, Titel oder Kommentare vor der Anzeige anzupassen.

  • Registrieren: Mit add_filter melden Sie eine Funktion an, die bestimmte Daten manipuliert.
  • Ausführen: Mit apply_filters wenden Sie die registrierten Filter auf die Daten an und erhältst das modifizierte Ergebnis zurück.

Beispiel:

add_filter("test_filter", "meine_wertfilter");
$wert = apply_filters("test_filter", "Test");

function meine_wertfilter($wert) {
   // Code, der den Inhalt manipuliert
   return $wert . " - Zusatztext";
}

In diesem Beispiel wird der Filter test_filter angewendet, um den Wert "Test" zu verändern. apply_filters("test_filter", "Test") ruft alle Filter-Funktionen auf, die an test_filter registriert sind. Die Funktion meine_wertfilter wird durch add_filter("test_filter", "meine_wertfilter") an den Filter registriert und fügt den Zusatztext "- Zusatztext" hinzu. Das Ergebnis von apply_filters ist somit "Test - Zusatztext".

Zusammengefasst: Registrieren und Ausführen
  • Aktionen registrieren und ausführen: Aktionen registrieren Sie mit add_action und führst sie mit do_action aus, um zu bestimmten Zeitpunkten Aufgaben im WordPress-Lebenszyklus durchzuführen.
  • Filter registrieren und ausführen: Filter registrieren Sie mit add_filter und führst sie mit apply_filters aus, um Inhalte oder Daten zu manipulieren, bevor sie ausgegeben oder gespeichert werden.

Dieses System von Aktionen und Filtern bietet Entwicklern die Flexibilität, WordPress-Funktionen zu erweitern und anzupassen, ohne den Core-Code zu verändern.


Im folgenden Abschnitt ist oft die Rede von "Daten von Abacus". Die Datenstruktur von Abacus können Sie hier einsehen:

Sie müssen in der Navigation auf "Swagger" drücken, danach sehen Sie die Anfragen-Struktur und unten die Objekte. 

Manuelle Übersetzungen

Hinzufügen: (Action/execute) pingwoo_add_translation

Diese Hook benötigt drei Argumente:

  • (String) Text in der Standardsprache (Standard von WordPress)
  • (String) Text in übersetzter Sprache
  • (String) Die Sprache im ISO 639-1 Format (z.B. de, fr, it)

Diese Hook kann zu jeder Zeit ausgeführt werden.

Verarbeiten lassen und den Text in der Standardsprache, falls verfügbar, zurückerhalten: (Filter/execute) pingwoo_process_translation

Diese Hook benötigt ein Argument:

  • (Callable) Funktion welche definiert wie die Texte zusammengesetzt werden
    • Muss zwingend ein Array zurückgeben!
    • Format: array("de" => "Übersetzung", "en" => "translation", "fr" => "traduction")

Diese Hook liefert einen Wert:

  • (String) Text in der Standardsprache, den ersten oder leer

Produktinformationen

Sollten Informationen nicht stimmen, oder wenn Sie eine spezielle Struktur im Abacus besitzen, können Sie verschiedene Produktinformationen überschrieben. Dafür sind folgende Hooks eventuell nützlich: 

Produkt Titel: (Filter/register) pingwoo_product_name

Diese Hook liefert drei Argumente:

  • (String) Der Titel welcher verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus 
  • (String) Der Sprachcode fürs Produkt, welcher momentan angewendet wird

Erwartet wird der Produktname. 

Produkt Titel Felder: (Filter/register) pingwoo_product_name_fields_keys

Diese Hook liefert zwei Argumente:

  • (Array) Die Felder die standardmässig importiert werden (Designation)
  • (Object) Die Daten von Abacus

Diese Hook unterstützt Sprachen automatisch. Um z.B. die Designation1 und Designation2 zu kombinieren, müssen Sie folgendes Array zurückgeben:

return [
    ["field" => "Texts", "key" => "Designation1"],
    ["field" => "Texts", "key" => "Designation2"]
];

Desweiteren wird diese Hook nicht ausgeführt, wenn Sie die pingwoo_product_name Hook registrieren. 

Produkt Beschreibung: (Filter/register) pingwoo_product_description

Diese Hook liefert drei Argumente:

  • (String) Die Beschreibung welche verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode fürs Produkt, welcher momentan angewendet wird

Erwartet wird die Produktbeschreibung. 

Produkt Kurzbeschreibung: (Filter/register) pingwoo_product_short_description

Diese Hook liefert drei Argumente:

  • (String) Die Kurzbeschreibung welche verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode fürs Produkt, welcher momentan angewendet wird

Erwartet wird die Produkt Kurzbeschreibung.

Produkt hervorgehoben (Featured): (Filter/register) pingwoo_product_featured

Diese Hook liefert zwei Argumente:

  • (Boolean) Der Wert welcher verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus

Erwartet wird ein boolescher Wert, ob das Produkt hervorgehoben werden soll oder nicht.

Produktinformationen in der Tabelle "OTX" aus einem anderen Feld auslesen: (Filter/register) pingwoo_product_processing_information_id

Diese Hook liefert drei Argumente:

  • (Integer) Der Wert aus den Abacus Standardfelder welcher verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus
  • (String) Der Informationstyp

Der Informationstyp kann einer der folgende Werte sein:

  • availability
  • packing_code
  • transport_code
  • stock_code
  • warranty_code

Erwartet wird die ID von der Produktinformation.

Dokumente an einem bestimmten Ort anzeigen: (Action/execute) pingwoo_show_product_documents

Diese Hook benötigt ein Argument:

  • (Integer) Die WooCommerce Produkt ID

Anhanginformationen

Produktbild alternativer Text: (Filter/register) pingwoo_product_image_alt

Diese Hook liefert zwei Argumente:

  • (String) Der Text welcher verwendet wird, wenn keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus

Erwartet wird der alternative Produktbild Text.

Produktdokument alternativer Text: (Filter/register) pingwoo_product_document_alt

Diese Hook liefert zwei Argumente:

  • (String) Der Text welcher verwendet wird, wenn keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus

Erwartet wird der alternative Produktdokument Text. 

Klassierungsbild alternativer Text: (Filter/register) pingwoo_category_image_alt

Diese Hook liefert zwei Argumente:

  • (String) Der Text welcher verwendet wird, wenn keine Änderungen vorgenommen werden
  • (Object) Die Daten von Abacus

Erwartet wird der alternative Klassierungsbild Text.


Importinformationen

Weitere Informationen können, nachdem ein Objekt importiert wurde, mit folgenden Hooks angepasst oder hinzugefügt werden:

Produkte: (Action/register) pingwoo_product_info

Diese Hook liefert drei Argumente:

  • (Integer) Die WooCommerce Produkt ID
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für das Produkt, welcher momentan angewendet wird

Varianten: (Action/register) pingwoo_variant_info

Diese Hook liefert vier Argumente:

  • (Integer) Die WooCommerce Produkt ID
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für die Variante, welcher momentan angewendet wird
  • (Integer) Die ID vom Hauptprodukt (Variant 0)

Attribute: (Action/register) pingwoo_attribute_info

Diese Hook liefert zwei Argumente:

  • (Integer) Die WooCommerce Attribut ID
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für das Attribut, welcher momentan angewendet wird

Attribute: (Action/register) pingwoo_attribute_term_info

Diese Hook liefert zwei Argumente:

  • (Integer) Die WooCommerce Attribut Term ID
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für den Attribut Term, welcher momentan angewendet wird
  • (Integer) Die WooCommerce Attribut ID

Kunden: (Action/register) pingwoo_shopper_info

Diese Hook liefert zwei Argumente:

  • (Integer) Die WooCommerce Shopper ID
  • (Object) Die Daten von Abacus

Bestellungen: (Action/register) pingwoo_order_info

Diese Hook liefert zwei Argumente:

  • (Integer) Die WooCommerce Bestell ID
  • (Object) Die Daten von Abacus

Klassierungen: (Action/register) pingwoo_category_info

Diese Hook liefert drei Argumente:

  • (Integer) Die WooCommerce Kategorie ID
  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für den die Klassierung, welcher momentan angewendet wird

Import/Subscription

Ein Produkt ignorieren: (Filter/register) pingwoo_product_filter

Diese Hook liefert zwei Argumente:

  • (Boolean) Definiert, ob ein Produkt ignoriert werden soll. Wird verwendet, falls keine Änderungen vorgenommen werden (Standard: false)
  • (Object) Die Daten von Abacus

Erwartet wird ein boolescher Wert, ob das Produkt ignoriert werden soll oder nicht. 

Ein Shopper ignorieren: (Filter/register) pingwoo_shopper_filter

Diese Hook liefert zwei Argumente:

  • (Boolean) Definiert, ob ein Shopper ignoriert werden soll. Wird verwendet, falls keine Änderungen vorgenommen werden (Standard: false)
  • (Object) Die Daten von Abacus

Erwartet wird ein boolescher Wert, ob der Shopper ignoriert werden soll oder nicht.

Ein Shopper ignorieren: (Filter/register) pingwoo_category_filter

Diese Hook liefert zwei Argumente:

  • (Boolean) Definiert, ob eine Klassierung ignoriert werden soll. Wird verwendet, falls keine Änderungen vorgenommen werden (Standard: false)
  • (Object) Die Daten von Abacus

Erwartet wird ein boolescher Wert, ob die Klassierung ignoriert werden soll oder nicht.

Nach einem erfolgreichen Import wird eine Hook ausgelöst: (Action/register) pingwoo_import_completed

Diese Hook liefert ein Argument:

  • (String) Der Objekttyp welcher importiert wurde

Der Objekttyp kann einer der folgende Werte sein:

  • ShopProduct
  • ShopperAccount
  • ShopSalesOrder
  • ProductClassification
  • VariantDimension

Nach einer erfolgreichen Subscription wird eine Hook ausgelöst: (Action/register) pingwoo_updated_data

Diese Hook liefert keine Argumente und dient als Information. Diese Hook kann z.B. verwendet werden, um die neuen Daten mit einem externen System zu synchronisieren. 

Produktbilder

Nach einem erfolgreichem Import eines Produktes wird eine Hook ausgelöst, welche alle Produkt- und Variantenbilder enthält: (Action/register) pingwoo_product_images

Diese Hook liefert zwei Argumente:

  • (Integer) Die WooCommerce Produkt ID
  • (Array) Die Produkt- und Variantenbilder

Nach einem erfolgreichem Import einer Variante wird eine Hook ausgelöst, welche alle Variantenbilder enthält: (Action/register) pingwoo_variant_images

Diese Hook liefert drei Argumente:

  • (Integer) Die WooCommerce Produkt ID
  • (Array) Die Variantenbilder
  • (Integer) Die ID vom Hauptprodukt

Daten manipulieren

Bevor ein Produkt importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_product_info

Diese Hook liefert zwei Argumente:

  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für das Produkt, welcher momentan angewendet wird

Erwartet werden die veränderten Daten von Abacus.

Bevor eine Variante importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_variant_info

Diese Hook liefert zwei Argumente:

  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für die Variante, welcher momentan angewendet wird

Erwartet werden die veränderten Daten von Abacus.

Bevor ein Attribut importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_attribute_info

Diese Hook liefert zwei Argumente:

  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für das Attribut, welcher momentan angewendet wird

Erwartet werden die veränderten Daten von Abacus.

Bevor ein Produkt importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_attribute_term_info

Diese Hook liefert zwei Argumente:

  • (Object) Die Daten von Abacus
  • (String) Der Sprachcode für den Attribut Term, welcher momentan angewendet wird

Erwartet werden die veränderten Daten von Abacus.

Bevor ein Kunde importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_shopper_info

Diese Hook liefert ein Argument:

  • (Object) Die Daten von Abacus

Erwartet werden die veränderten Daten von Abacus.

Bevor eine Bestellung importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_order_info

Diese Hook liefert ein Argument:

  • (Object) Die Daten von Abacus

Erwartet werden die veränderten Daten von Abacus.


Bevor eine Klassierung importiert wird, die Daten anpassen: (Filter/register) pingwoo_before_category_info

Diese Hook liefert ein Argument:

  • (Object) Die Daten von Abacus

Erwartet werden die veränderten Daten von Abacus.


Bestellung

Ein Abacus Produkt zu einer Liefermethode zuordnen: (Filter/register) pingwoo_order_shipping_product_id

Diese Hook liefert drei Argumente:

  • (Integer) Die Produkt ID die verwendet wird, wenn keine angegeben wird (Standard: null)
  • (Object) Die Liefermethode als Order Item
  • (Integer) Die Position in der Bestellung

Erwartet wird die WooCommerce Produkt ID. Anhand dieser wird die Abacus ID ermittelt.

Die Positionsliste bearbeiten, z.B. Reihenfolge ändern, Positon entfernen, hinzufügen etc.: (Filter/register) pingwoo_position_list

Diese Hook liefert zwei Argumente:

  • (Array) Die Positionsliste mit allen Positionen (Object)
  • (Object) Die WooCommerce Bestellung

Erwartet wird die Positionsliste mit allen Positionen. 

Weitere Anreden zur Laufzeit hinzufügen oder bestehende entfernen: (Filter/register) pingwoo_salutations

Diese Hook liefert ein Argument:

  • (Array) Die Anreden die verwendet werden, wenn keine Änderungen vorgenommen werden

Erwartet werden die Anreden in der Sprache vom Benutzer.

Feld für das Hochladen von Dateien zur Bestellung anzeigen: (Action/execute) pingwoo_show_file_upload

Diese Hook benötigt keine Argumente.

Warenkorb herunterladen Knopf anzeigen: (Action/execute) pingwoo_show_cart_download

Diese Hook benötigt keine Argumente.

Felder, die beim Herunterladen/Hochladen vom Warenkorb berücksichtigt werden müssen: (Filter/register) pingwoo_cart_file_fields

Diese Hook liefert ein Argument:

  • (Array) Die Felder die verwendet werden, falls keine Änderungen vorgenommen werden

Erwartet werden die Felder, die beim Herunterladen/Hochladen vom Warenkorb berücksichtigt werden sollen.

Feld für das Hochladen vom Warenkorb anzeigen: (Action/execute) pingwoo_show_cart_upload

Diese Hook benötigt keine Argumente.

Warenkorb Erfassungmaske Knopf anzeigen: (Action/execute) pingwoo_show_capture_mask_button

Diese Hook benötigt keine Argumente.

 

Warenkorb Erfassungmaske an bestimmter Position anzeigen: (Action/execute) pingwoo_show_capture_mask

Diese Hook benötigt keine Argumente.

Eine Bestellung vor unserer Verarbeitung bearbeiten: (Action/register) pingwoo_before_process_order

Diese Hook liefert ein Argument:

  • (Object) Die WooCommerce Bestellung

Eine Bestellung vor der Übermittlung an Abacus bearbeiten: (Action/register) pingwoo_after_process_order

Diese Hook liefert ein Argument:

  • (Object) Die WooCommerce Bestellung

Ein Produkt von der Bestellsumme ausschliessen: (Filter/register) pingwoo_order_summary_product_filter

Diese Hook liefert zwei Argumente:

  • (Boolean) Definiert, ob ein Produkt ausgeschlossen wird (Standard: false)
  • (Object) Die Informationen bezüglich der Position in der Bestellung

Erwartet wird ein boolescher Wert welcher definiert, ob die Bestellposition zum Bestelltotal addiert werden soll oder nicht.

Die Positionsnummer in einer Bestellung bearbeiten: (Filter/register) pingwoo_position_line_item_id

Diese Hook liefert zwei Argumente:

  • (Integer) Die Positionsnummer die verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Das WooCommerce Order Item

Erwartet wird die veränderte Positionsnummer.

Die Bestellsumme vor der Übermittlung an Abacus bearbeiten: (Filter/register) pingwoo_order_summary

Diese Hook liefert zwei Argumente:

  • (Object) Die Informationen bezüglich der Bestellsumme
  • (Object) Die WooCommerce Bestellung

Erwartet wird die modifizieren Informationen bezüglich der Bestellsumme.

Zusätzliche Informationen von einer Bestellung vor der Übermittlung an Abacus bearbeiten: (Filter/register) pingwoo_additional_info_list

Diese Hook liefert drei Argumente:

  • (Array) Die zusätzlichen Informationen die übermittelt werden
  • (Object) Die WooCommerce Bestellung
  • (Boolean) Definiert, ob es eine Gastbestellung ist

Erwartet werden die modifizieren Informationen. 


Kunde

Bei einem Kunden einen Namen Zusatz definieren: (Filter/register) pingwoo_subject_name_supplement

Diese Hook liefert zwei Argumente:

  • (String) Der Wert welcher verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Informationen über den Kunden

Erwartet wird der Zusatz vom Kundennamen. 

Bei einem Kunden einen Titel definieren: (Filter/register) pingwoo_subject_title

Diese Hook liefert zwei Argumente:

  • (String) Der Wert welcher verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Die Informationen über den Kunden

Erwartet wird der Titel vom Kunden.

Die Standard Adresse von einem Kunden abfragen: (Filter/execute) pingwoo_get_shopper_address

Diese Hook benötigt drei Argumente:

  • (Object) Die Adresse welche verwendet wird, falls die Suche fehlschlägt
  • (Integer) Die WooCommerce Kunden ID
  • (String) Der Adresstyp
    • Optional: Standardmässig wird der Typ "billing" verwendet

Der Adresstyp kann einer der folgende Werte sein:

  • customer
  • billing
  • shipping

Diese Hook liefert einen Wert:

  • (Object) Die gefundene Adresse, sonst die Kundenadresse

Die Adressen von einem Kunden abfragen: (Filter/execute) pingwoo_get_shopper_addresses

Diese Hook benötigt drei Argumente:

  • (Array) Die Adressen welche verwendet werden, falls die Suche fehlschlägt
  • (Integer) Die WooCommerce Kunden ID
  • (String) Der Adresstyp
    • Optional: Standardmässig wird der Typ "billing" verwendet

Der Adresstyp kann einer der folgende Werte sein:

  • customer
  • billing
  • shipping

Diese Hook liefert einen Wert:

  • (Array) Die gefundenen Adressen, sonst die Kundenadresse

Zusätzliche adressspezifische WooCommerce Felder definieren: (Filter/register) pingwoo_woocommerce_address_fields

Diese Hook liefert ein Argument:

  • (Array) Die Felder welche verwendet werden, falls keine Änderungen vorgenommen werden (Standard: leer)

Erwartet werden die zusätzlichen Felder, die im Abacus nicht geführt werden. Dies kann von Vorteil sein, wenn Adressen spezifische WooCommerce Einstellungen besitzen. Bei Adressänderungen oder einem Import bleiben die registrierten Felder bestehen. 


Preisfindung

Sie können aktiv in die Preisfindung eingreifen und den Preis modifizieren. Hier für bietet PingWoo verschiedene Hooks an:

Preis ohne Mehrwertsteuer: (Filter/register) pingwoo_get_price

Diese Hook liefert zwei Argumente:

  • (Float) Der Preis ohne Mehrwertsteuer
  • (Object) Das WooCommerce Produkt

Erwartet wird der Preis ohne Mehrwertsteuer.

Preis mit Mehrwertsteuer: (Filter/register) pingwoo_get_price_tax

Diese Hook liefert zwei Argumente:

  • (Float) Der Preis mit Mehrwertsteuer
  • (Object) Das WooCommerce Produkt

Erwartet wird der Preis mit Mehrwertsteuer. 

Preisfaktor: (Filter/register) pingwoo_get_price_factor

Diese Hook liefert zwei Argumente:

  • (Float) Der Preisfaktor
  • (Object) Das WooCommerce Produkt

Erwartet wird der Preisfaktor. 

Wichtig: Diese drei Hooks werden auf der gesamten Seite angewendet. Überall wo ein Preis angezeigt wird. 

Preis ohne Mehrwertsteuer pro Stück: (Filter/register) pingwoo_get_price_per_quantity

Diese Hook liefert zwei Argumente:

  • (Float) Der Preis ohne Mehrwertsteuer
  • (Object) Das WooCommerce Produkt

Erwartet wird der Preis ohne Mehrwertsteuer.

Preis mit Mehrwertsteuer pro Stück: (Filter/register) pingwoo_get_price_tax_per_quantity

Diese Hook liefert zwei Argumente:

  • (Float) Der Preis mit Mehrwertsteuer
  • (Object) Das WooCommerce Produkt

Erwartet wird der Preis mit Mehrwertsteuer.

Preisfaktor pro Stück: (Filter/register) pingwoo_get_price_factor_per_quantity

Diese Hook liefert zwei Argumente:

  • (Float) Der Preisfaktor
  • (Integer) Die WooCommerce Produkt ID

Erwartet wird der Preisfaktor.

Wichtig: Diese drei Hooks werden lediglich bei der Übermittlung an Abacus angewendet.

Staffelpreise an einem bestimmten Ort anzeigen: (Action/execute) pingwoo_show_product_graduations

Diese Hook benötigt ein Argument:

  • (Integer) Die WooCommerce Produkt ID

UVP (Gast) Preise anzeigen bei Kunden mit Rabatten: (Filter/execute) pingwoo_get_guest_price

Diese Hook liefert drei Argumente:

  • (Float) Der Preis welcher verwendet wird, falls die Preisfindung fehlschlägt
  • (Object) Das WooCommerce Produkt
  • (Integer) Die Menge, z.B. für Staffelpreise
    • Optional: Standardmässig wird die Menge 1 verwendet


Definieren, wie ein Preis gerundet wird: (Filter/register) pingwoo_round_commercially

Diese Hook liefert ein Argument:

  • (Boolean) Der Wert, welcher verwendet wird, falls keine Änderungen vorgenommen werden

Der Wert kann einer der folgende Werte sein:

  • true (kaufmännisch runden)
  • false (Auf bestimmte Anzahl Dezimalstellen runden, Standardmässig 2 Stellen)

Erwartet wird ein boolescher Wert, welcher definiert, wie gerundet werden soll. 

Definieren, wie viele Stellen für die Preisrundung verwendet werden: (Filter/register) pingwoo_rounding_precision

Diese Hook liefert ein Argument:

  • (Integer) Der Wert, welcher verwendet wird, falls keine Änderungen vorgenommen werden (Standard: 2)

Erwartet wird die Anzahl Dezimalstellen, die für die Preisrundung verwendet werden soll. 

Definieren, ob die Preise mit oder ohne MwSt. angezeigt werden: (Filter/register) pingwoo_should_include_tax

Diese Hook liefert ein Argument:

  • (Boolean) Der Wert, welcher verwendet wird, falls keine Änderungen vorgenommen werden (Standard: WooCommerce Einstellung)

Erwartet wird boolescher Wert, welcher definiert, ob Preise mit oder ohne MwSt. angezeigt werden sollen. 

Einen Preis anhand unserem Standard runden: (Filter/execute) pingwoo_round_product_price

Diese Hook benötigt ein Argument:

  • (Float) Der Preis, welcher gerundet werden soll

Diese Hook liefert einen Wert:

  • (Float) Der gerundete Preis

Staffelpreise für ein Produkt abfragen: (Filter/execute) pingwoo_get_product_graduations

Diese Hook benötigt zwei Argumente:

  • (Array) Die Staffelpreise, falls die Abfrage fehlschlägt
  • (Integer) Die WooCommerce Produkt ID

Diese Hook liefert einen Wert:

  • (Array) Die Staffelpreise 

Preisabfrage für ein Produkt überspringen: (Filter/register) pingwoo_bypass_price

Diese Hook liefert zwei Argumente:

  • (Boolean) Definiert, ob eine Preisabfrage übersprungen werden soll (Standard: false)
  • (Integer) Die WooCommerce Produkt ID

Erwartet wird ein boolescher Wert. 

Preistyp von der Preisabfrage abfragen: (Filter/execute) pingwoo_get_price_type

Diese Hook benötigt drei Argumente: 

  • (String) Der Preistyp, falls die Preisabfrage fehlschlägt
  • (Object) Das WooCommerce Produkt
  • (Integer) Die Menge vom Produkt
    • Optional: Standardmässig wird die Menge 1 verwendet

Der Preistyp kann einer der folgende Werte sein:

  • GRADUATE
  • SPECIAL
  • ACTION
  • LIST
  • FIX

Diese Hook liefert einen Wert: 

  • (String) Der Preistyp von der Preisabfrage

Preis Position von einem Gast manipulieren: (Filter/register) pingwoo_get_guest_position

Diese Hook liefert zwei Argumente:

  • (Object) Die Preis Position welche verwendet wird, falls keine Änderungen vorgenommen werden
  • (Object) Das WooCommerce Produkt

Erwartet wird die manipulierte Preis Position. 


Für Entwickler

Einen Endpunkt modifizieren: (Filter/register) pingwoo_endpoint

Diese Hook liefert ein Argument:

  • (String) Der Endpunkt

Erwartet wird der veränderte Endpunkt.

Ein Bild bei einem Knopf hinzufügen: (Filter/register) pingwoo_button_icon

Diese Hook liefert zwei Argumente:

  • (String) Das Bild welches verwendet wird, wenn keine Änderungen vorgenommen werden
  • (String) Der Knopfname

Der Knopfname kann einer der folgende Werte sein:

  • capture_mask_validate
  • capture_mask_clear
  • meta_remove
  • document

Möchten Sie Ihren Code testen und überprüfen? PingWoo bietet hierfür diverse Hooks an:

Einzelnes Produkt importieren: (Action/execute) pingwoo_test_product

Diese Hook benötigt zwei Argumente:

  • (Integer) Die Abacus Produkt ID
  • (Integer) Die Abacus Varianten ID
    • Optional: Standardmässig wird die ID 0 verwendet

Einzelnes Produkt mit allen Varianten importieren: (Action/execute) pingwoo_test_variant

Diese Hook benötigt ein Argument:

  • (Integer) Die Abacus Produkt ID

Einzelnen Shopper importieren: (Action/execute) pingwoo_test_shopper

Diese Hook benötigt ein Argument:

  • (String) Die Abacus Shopper ID

AbaReport erstellen: (Filter/execute) pingwoo_abareport

Diese Hook benötigt drei Argumente:

  • (Object) Die Daten, wenn die Abfrage fehlschlägt
  • (String) Der vollständige Name vom AbaReport
  • (Array) Die Daten, die an den AbaReport gesendet werden (Parameter)

Diese Hook liefert einen Wert:

  • (Object) Die Daten zur Identifikation vom AbaReport

AbaReport abfragen: (Filter/execute) pingwoo_abajob

Diese Hook benötigt drei Argumente:

  • (Object) Die Daten, wenn die Abfrage fehlschlägt
  • (String) Die HTML Methode (GET/POST)
  • (String) Die AbaReport ID, welche durch die Erstellung zurückgegeben wurde

Diese Hook liefert einen Wert:

  • (Object) Die Daten vom AbaReport

Feldinformationen abfragen: (Filter/execute) pingwoo_field_information

Diese Hook benötigt zwei Argumente:

  • (String) Der Wert, falls die Feldinformation nicht gefunden wurde
  • (String) Der Feldname (UserField1)

Diese Hook liefert einen Wert:

  • (String) Die Feldbezeichnung

Eine Adresse aufteilen in Strasse und Hausnummer: (Filter/execute) pingwoo_split_street_number

Diese Hook benötigt zwei Argumente:

  • (Array) Die Daten, wenn etwas fehlschlägt
  • (String) Die Adresse

Diese Hook liefert einen Wert:

  • (Array) Die Adresse aufgeteilt in Strasse und Hausnummer (Index 0 = Strasse, Index 1 = Hausnummer)

Weitere Hooks können auf Anfrage gerne hinzugefügt werden.