Per-product settings (the Polski Pro tab)
Fünf PRO-Module werden pro Produkt konfiguriert, nicht global: Geschenkkarten, Vorbestellungen, Abonnements, Produkt-Bundles und “häufig zusammen gekauft”. Jedes entscheidet über einen Meta-Schlüssel am Produkt, ob es für dieses Produkt läuft. Seit Polski PRO 1.26.0 gibt es einen Bildschirm, der diese Schlüssel schreibt: einen Tab Polski Pro im Kasten “Produktdaten” des WooCommerce-Produkteditors.
Wo der Tab liegt und wann er erscheint
Abschnitt betitelt „Wo der Tab liegt und wann er erscheint“Öffnen Sie ein beliebiges Produkt und sehen Sie in den Kasten Produktdaten. Der Tab Polski Pro steht hinter den Standard-Tabs von WooCommerce und wird für einfache, variable und externe Produkte angezeigt.
Der Tab erscheint nur, wenn mindestens eines der fünf Module unter Polski > Module aktiv ist. Sind alle fünf aus, gibt es nichts zu konfigurieren, und der Tab wird gar nicht erst hinzugefügt. Innerhalb des Tabs bekommt nur ein aktives Modul eine Feldgruppe: Schalten Sie zwei ein, sehen Sie zwei Gruppen, nicht fünf.
Diese Abstufung ist das Erste, was Sie prüfen sollten, wenn ein erwartetes Feld fehlt. Das Modul ist der Schalter für den ganzen Shop, dieser Tab der Schalter für ein Produkt.
Die Felder
Abschnitt betitelt „Die Felder“Jede Gruppe unten entspricht einem Modul. Der Meta-Schlüssel ist derselbe, den der Dienst des Moduls liest, also beantwortet die Schlüsselspalte auch die Frage, was per WP-CLI oder aus eigenem Code zu setzen ist.
Geschenkkarte
Abschnitt betitelt „Geschenkkarte“| Feld | Meta-Schlüssel | Typ | Hinweise |
|---|---|---|---|
| Sell as a gift card | _polski_gift_card_enabled |
yes / no |
Das Tor. Das Modul behandelt das Produkt nur dann als Geschenkkarte, wenn hier yes steht. |
| Preset amounts | _polski_gift_card_amounts |
Text | Kommagetrennt, zum Beispiel 50, 100, 200. Leer greift auf die globalen Vorgaben des Moduls zurück. |
| Allow a custom amount | _polski_gift_card_allow_custom_amount |
yes / no |
Lässt den Käufer einen eigenen Betrag eintragen. Das Modul berücksichtigt zusätzlich seine globale Einstellung, ein shopweites “eigener Betrag erlaubt” bleibt also auch bei leerem Kästchen in Kraft. |
| Minimum custom amount | _polski_gift_card_min_amount |
Zahl | Wird als Übersteuerung des globalen Minimums gelesen. |
| Maximum custom amount | _polski_gift_card_max_amount |
Zahl | Wird als Übersteuerung des globalen Maximums gelesen. |
Vorbestellung
Abschnitt betitelt „Vorbestellung“| Feld | Meta-Schlüssel | Typ | Hinweise |
|---|---|---|---|
| Sell as a pre-order | _polski_preorder_enabled |
yes / no |
Die eine Hälfte des Tors. |
| Release date | _polski_preorder_date |
Datum (Y-m-d) |
Die andere Hälfte. Beide sind nötig: mit gesetztem Haken und ohne Datum bleibt das Produkt ein gewöhnliches Produkt, denn das Modul verlangt das Kennzeichen und ein lesbares Datum, bevor es etwas ändert. |
| Button text | _polski_preorder_button_text |
Text | Übersteuert für dieses Produkt den globalen Vorbestellungs-Buttontext des Moduls. |
Abonnement
Abschnitt betitelt „Abonnement“| Feld | Meta-Schlüssel | Typ | Hinweise |
|---|---|---|---|
| Sell as a subscription | _polski_subscription_enabled |
yes / no |
Das Tor. |
| Bill every | _polski_subscription_interval |
Ganzzahl | Anzahl der Perioden zwischen zwei Abbuchungen. Wird als mindestens 1 gelesen. |
| Billing period | _polski_subscription_period |
day, week, month, year |
Ohne Wert gilt month. |
| Number of payments | _polski_subscription_length |
Ganzzahl | 0 verlängert, bis der Kunde kündigt. |
| Sign-up fee | _polski_subscription_signup_fee |
Zahl | Einmalig berechnet, mit der ersten Zahlung. |
| Trial days | _polski_subscription_trial_days |
Ganzzahl | Tage bis zur ersten Abbuchung. 0 für keine Testphase. |
Produkt-Bundle
Abschnitt betitelt „Produkt-Bundle“| Feld | Meta-Schlüssel | Typ | Hinweise |
|---|---|---|---|
| Bundled products | _polski_bundle_items |
Textbereich | Eine Komponente pro Zeile, Format siehe unten. |
| Section title | _polski_bundle_title |
Text | Übersteuert für dieses Produkt die globale Bundle-Überschrift des Moduls. |
| Button text | _polski_bundle_button_text |
Text | Übersteuert den globalen Bundle-Buttontext. |
| Bundle discount | _polski_bundle_discount_type |
leer, percent, fixed |
Leer bedeutet kein Rabatt. |
| Discount value | _polski_bundle_discount_value |
Zahl | Wird zusammen mit dem Typ darüber gelesen. |
Bundled products nimmt eine Komponente pro Zeile, jeweils geschrieben als Produkt-ID, dann ein senkrechter Strich, dann die Menge, dann ein senkrechter Strich, dann ob die Komponente Pflicht ist:
42|2|yes57|1|no88Menge und Pflichtkennzeichen dürfen fehlen, ein blankes 88 ist also eine optionale Einheit von Produkt 88. Ein Pflichtkennzeichen zählt als Pflicht, wenn es yes, 1, true oder required lautet. Eine einzelne Zeile mit kommagetrennten IDs wird als Kurzform für je eine Einheit akzeptiert. IDs, zu denen kein Produkt existiert, werden übersprungen.
Ein eigenes Kästchen “Bundle aktivieren” gibt es nicht: Ein Produkt ist ein Bundle, sobald Bundled products mindestens ein echtes Produkt auflöst.
Häufig zusammen gekauft
Abschnitt betitelt „Häufig zusammen gekauft“| Feld | Meta-Schlüssel | Typ | Hinweise |
|---|---|---|---|
| Suggested products | _polski_fbt_product_ids |
Text | Produkt-IDs, getrennt durch Kommas, Leerzeichen oder Semikola. Die eigene ID des Produkts wird übersprungen, Duplikate entfallen, und die Liste wird auf die Moduleinstellung Maximum products taken from the product list gekürzt (Vorgabe 4). |
| Section title | _polski_fbt_title |
Text | Übersteuert für dieses Produkt die globale Überschrift des Moduls. |
| Intro text | _polski_fbt_intro |
Textbereich | Optionale Zeile unter der Überschrift. |
| Button text | _polski_fbt_button_text |
Text | Übersteuert den globalen Buttontext für “alle hinzufügen”. |
Wie bei Bundles gibt es keinen Ein-Schalter pro Produkt: Der Block erscheint für ein Produkt, sobald Suggested products mindestens eine brauchbare ID enthält.
Wie das Speichern funktioniert
Abschnitt betitelt „Wie das Speichern funktioniert“Jedes Feld wird beim Eingang bereinigt: ein Kontrollkästchen als yes oder no, ein Ganzzahlfeld als ganze Zahl von mindestens 0, ein Zahlenfeld als Gleitkommazahl von mindestens 0, die beiden Textbereiche über sanitize_textarea_field, alles Übrige über sanitize_text_field. Ein leer gelassenes Zahlenfeld wird leer gespeichert und nicht in 0 umgewandelt, denn ein leeres Feld heißt “kein Wert für dieses Produkt” und eine getippte Null heißt Null. Nonce und Berechtigung hat WooCommerce bereits geprüft, bevor das hier läuft.
Der Speichervorgang überspringt jede Gruppe, deren Modul aus ist. Das wiegt schwerer, als es klingt: Ein nicht gesetztes Kontrollkästchen sendet nichts, und die Schleife liest einen fehlenden Wert als “geleert”. Für ein Kästchen, das der Händler gerade abgewählt hat, ist das richtig, für ein Feld, das nie auf der Seite war, falsch. Ein Modul, das Sie ausschalten, leert Ihre bereits eingetragenen Produkteinstellungen also nicht stillschweigend. Schalten Sie das Modul wieder ein, ist das Produkt konfiguriert wie zuvor.
Schrittweises Einblenden
Abschnitt betitelt „Schrittweises Einblenden“Die Unterfelder von Geschenkkarte, Vorbestellung und Abonnement sitzen in je einem Block, der eingeklappt bleibt, solange sein Hauptkästchen leer ist. Ein Produkt, das keine Geschenkkarte ist, zeigt so auch keine fünf Geschenkkartenfelder.
Das ist reine Darstellung. Das Markup wird offen ausgeliefert, mit blockiertem JavaScript ist also jedes Feld sichtbar, bearbeitbar und wird genau gleich gespeichert; nichts hängt hinter dem Skript. Ein eingeklappter Block liegt außerdem außerhalb der Tabulatorreihenfolge, ein verstecktes Feld lässt sich also nicht unbemerkt per Tastatur ausfüllen und mitspeichern.
Wenn ein Modul trotzdem nichts tut
Abschnitt betitelt „Wenn ein Modul trotzdem nichts tut“- Ist das Modul unter Polski > Module aktiv? Alle fünf werden aus ausgeliefert, weil jedes ändert, was ein Käufer sieht.
- Ist das Tor am Produkt gesetzt? Geschenkkarten, Vorbestellungen und Abonnements brauchen je ihr eigenes Kästchen am Produkt, eine Vorbestellung zusätzlich ein Veröffentlichungsdatum.
- Lösen sich bei Bundles und “häufig zusammen gekauft” die Listen zu echten, existierenden Produkten auf?
- Erlaubt die moduleigene Einstellung Show on the product page auf dem Modulbildschirm es weiterhin?