ACF-Felder von WooCommerce-Produkten in Masse bearbeiten: Datum, Checkboxen
Um ACF-Felder von WooCommerce-Produkten in Masse zu bearbeiten, brauchen Sie keine besondere Integration: Advanced Custom Fields speichert jeden Wert eines Produkts als Post-Meta unter dem Feldnamen, und BEAR bearbeitet Post-Meta als Tabellenspalten. Sie müssen aber wissen, wie ACF jeden Feldtyp speichert, denn BEAR schreibt genau den Wert, den Sie angeben. Ein Datum im falschen Format, eine als reiner Text gespeicherte Checkbox oder ein fehlender Referenzschlüssel sind der Grund, warum ein Wert in BEAR richtig aussehen kann und trotzdem nicht auf der Produktseite erscheint. Im Folgenden: wie Sie jeden Feldtyp richtig anbinden, wie Sie Checkbox-Listen bearbeiten und was zu prüfen ist, wenn ein Wert nicht angezeigt wird.
Wie ACF ein Produktfeld speichert
Für ein Feld mit dem Namen release_date schreibt ACF zwei Meta-Schlüssel an das Produkt, wenn Sie es im WooCommerce-Produkteditor speichern:
release_dateenthält den Wert._release_dateenthält den Feldschlüssel, einen Code wiefield_64f0c2a1b7e3d. Diese Referenz sagt ACF, zu welcher Felddefinition der Wert gehört.
BEAR bearbeitet den ersten Schlüssel. Die Referenz existiert bereits bei jedem Produkt, das im Produkteditor gespeichert wurde, während die Feldgruppe ihm zugewiesen war. Produkte, die importiert wurden oder den Wert von BEAR erhielten, bevor jemand sie mit der Feldgruppe gespeichert hat, haben den Wert, aber keine Referenz. Dieser Unterschied erklärt die meisten Werte, die nicht angezeigt werden, wie unten beschrieben.
Binden Sie immer den Feldnamen an, nicht die Bezeichnung über dem Feld und nicht den Feldschlüssel. Der Name ist der Feldname (Field Name) in den Einstellungen der ACF-Feldgruppe.
Ein ACF-Feld als Spalte hinzufügen
- Füllen Sie das Feld bei einem Produkt im Produkteditor aus und speichern Sie es.
- Geben Sie im Tab Meta-Felder (Meta Fields) von BEAR die ID dieses Produkts in Meta-Schlüssel von einem beliebigen Produkt anhand seiner ID abrufen (Get meta keys from any product by its ID) ein und klicken Sie auf Abrufen (Get). Die Liste zeigt sowohl
release_dateals auch_release_date; behalten Sie den Schlüssel ohne Unterstrich. Sie können den Namen auch in Benutzerdefinierten Schlüssel von Hand hinzufügen (Add Custom key by hands) eintippen. - Geben Sie dem Feld einen kurzen Titel, wählen Sie Ansicht und Typ aus der Tabelle unten und klicken Sie auf Meta-Felder speichern (Save meta fields).
- Schalten Sie die neue Spalte im Tab Einstellungen (Settings) ein und speichern Sie. Erst dann erscheint das Feld in den Tabs Filter und Massenbearbeitung.
Die Dokumentation zu den Meta-Feldern beschreibt den Tab im Detail.
ACF-Felder nach Feldtyp in Masse bearbeiten
| ACF-Feldtyp | Gespeicherter Wert | Ansicht und Typ in BEAR |
|---|---|---|
| Text, Textbereich (Text Area), E-Mail (Email), URL | Der Text | Textfeld (textinput) oder Textbereich (textarea), Zeichenkette (string) |
| Zahl (Number), Bereich (Range) | Die Zahl | Textfeld, Zahl (number) |
| Wahr / Falsch (True / False) | 1 oder 0 | Kontrollkästchen (checkbox) |
| Radio-Button (Radio Button), Button-Gruppe (Button Group), Auswahl (Select; ein Wert) | Der Wert der gewählten Auswahlmöglichkeit, nicht ihre Bezeichnung | Textfeld, Zeichenkette |
| Checkbox, Auswahl (Select; mehrere Werte) | Eine serialisierte Liste von Auswahlwerten | Textfeld, Zeichenkette, plus der Speichercode unten |
| Datumsauswahl (Date Picker) | 20261231 (Ymd) | Textfeld, Zeichenkette oder Zahl, nie Kalender (calendar) |
| Datum-/Zeit-Auswahl (Date Time Picker) | 2026-12-31 18:00:00 | Textfeld, Zeichenkette |
| Bild (Image), Datei (File) | Die Anhangs-ID | Textfeld, Zahl |
| Gruppe (Group) | Jedes Unterfeld unter groupname_subfieldname | Jedes Unterfeld einzeln anbinden |
| Repeater | Die Zeilenanzahl unter dem Namen, die Zeilen unter name_0_subfield, name_1_subfield | Siehe ACF-Repeater-Felder in Masse bearbeiten |
Daten zeigen 1970
Die Ansicht Kalender von BEAR ist für Daten gedacht, die als Unix-Zeitstempel gespeichert sind, einer Anzahl von Sekunden. Die Datumsauswahl von ACF speichert 20261231, egal welches Anzeigeformat Sie in den Feldeinstellungen gewählt haben; als Sekunden gelesen ist diese Zahl ein Tag im August 1970, und genau das zeigt die Kalenderzelle (der Wert einer Datum-/Zeit-Auswahl wird zum 1. Januar 1970). Ein Datum in dieser Zelle auszuwählen würde einen Zeitstempel speichern, sodass das Feld am Ende Daten in zwei Formaten enthielte, und alles, was es sortiert oder vergleicht, etwa eine Abfrage nach kommenden Terminen, würde sie falsch behandeln.
Binden Sie ACF-Daten mit der Ansicht Textfeld an und tippen Sie sie so ein, wie ACF sie speichert: 20261231. Mit dem Typ Zahl sortiert die Spalte außerdem nach Datum und filtert nach einem Bereich von/bis, zum Beispiel 20261201 bis 20261231 für den Dezember. Ein Feld vom Typ Datum-/Zeit-Auswahl braucht den vollständigen Wert 2026-12-31 18:00:00 als Zeichenkette.
Wahr/Falsch und Felder mit zwei Auswahlmöglichkeiten
Ein Feld Wahr / Falsch speichert 1 oder 0, und genau das schreibt die Ansicht Kontrollkästchen von BEAR, sodass die Tabellenzelle ohne weiteres funktioniert. Eine Ausnahme in BEAR 2.2.4: Im Tab Massenbearbeitung speichert die Wahl von Nein (No) für ein Kontrollkästchen-Feld den Wert 2, den ACF als wahr liest. Um ein solches Feld bei vielen Produkten auszuschalten, ändern Sie seine Ansicht im Tab Meta-Felder kurz auf Textfeld mit dem Typ Zahl, setzen es im Tab Massenbearbeitung auf 0 und stellen die Ansicht wieder auf Kontrollkästchen zurück. Ein Massen-Ja (Yes) funktioniert wie erwartet. Ein Radio-Feld mit zwei Auswahlmöglichkeiten, etwa in_season und out_of_season, kann ebenfalls das Kontrollkästchen nutzen: Tragen Sie im Tab Einstellungen unter Allgemeine Einstellungen (General settings) bei Wert des Meta-Kontrollkästchens überschreiben (Override meta checkbox value) den Wert season_status:in_season^out_of_season ein. Ein markiertes Kontrollkästchen speichert dann den ersten Wert, ein nicht markiertes den zweiten; mehrere Felder trennen Sie durch Kommas. Felder mit mehr Auswahlmöglichkeiten verwenden ein Feld vom Typ Zeichenkette, in das Sie den Wert der Auswahl tippen.
Checkbox- und Mehrfachauswahl-Felder
ACF speichert eine Checkbox-Liste als serialisiertes Array, ein Textfeld von BEAR speichert dagegen Text. Tippen Sie die Auswahlwerte durch Kommas getrennt ein, zum Beispiel pdf, epub, print, und fügen Sie einen Speicher-Handler hinzu, der den Text in das Array umwandelt, das ACF erwartet. Die FAQ zu ACF-Auswahl- und Mehrfachauswahl-Feldern zeigt die Grundversion; die folgende speichert außerdem eine einzelne Auswahl als Liste, wie ACF es tut, und schreibt den Referenzschlüssel.
/*
* BEAR + ACF: save comma-separated choices typed in BEAR as the array used by
* ACF checkbox and multi-select fields, and write the ACF field reference.
* Child theme functions.php or a code snippets plugin.
* List each field as 'field_name' => 'ACF field key'.
*/
add_filter('update_post_metadata', function ($check, $object_id, $meta_key, $meta_value) {
$acf_list_fields = array(
'product_formats' => 'field_64f0c2a1b7e3d',
);
if (!isset($acf_list_fields[$meta_key]) || !is_string($meta_value) || '' === trim($meta_value)) {
return $check;
}
$choices = array_values(array_filter(array_map('trim', explode(',', $meta_value)), 'strlen'));
update_post_meta($object_id, $meta_key, $choices);
update_post_meta($object_id, '_' . $meta_key, $acf_list_fields[$meta_key]);
return true;
}, 10, 4);
ACF selbst speichert Arrays, keinen Text, daher lässt der Handler den Produkteditor unberührt, und eine geleerte Zelle wird als leer gespeichert. Wenn Sie für ein Feld bereits die Version aus der FAQ nutzen, ersetzen Sie sie durch diese, statt beide laufen zu lassen. Verwenden Sie die Auswahlwerte, nicht die Bezeichnungen. Nutzen Sie im Tab Massenbearbeitung neu (new): anhängen (append) und voranstellen (prepend) fügen der gespeicherten Liste Text hinzu und funktionieren bei diesen Feldern nicht.
Um den Feldschlüssel zu finden, binden Sie _product_formats kurz als Feld vom Typ Zeichenkette an: Bei Produkten, die im Produkteditor gespeichert wurden, zeigt seine Spalte den Code field_.
Der Wert ist gespeichert, wird aber auf der Produktseite nicht angezeigt
Zeigt BEAR den neuen Wert, die Produktseite aber nicht, prüfen Sie diese Ursachen der Reihe nach.
- Das Format. Vergleichen Sie den gespeicherten Wert mit der Tabelle oben: Eine Auswahl, die mit ihrer Bezeichnung statt mit ihrem Wert gespeichert wurde, oder eine als reiner Text gespeicherte Checkbox-Liste passt zu keiner Auswahlmöglichkeit des Felds, und ein als Zeitstempel gespeichertes Datum hat nicht das Format, das ACF schreibt.
- Die Referenz. Produkte ohne den Schlüssel
_fieldnamehaben den Wert trotzdem, undget_field()von ACF findet das Feld meist über seinen Namen. Code, der sich auf die Referenz verlässt, erkennt den Wert womöglich nicht; typisch sind Filter- und Suchplugins, die ACF-Felder lesen, wie FacetWP. Die Referenz können Sie ohne Code ergänzen. Binden Sie_release_dateals Feld vom Typ Zeichenkette an, lesen Sie den Feldschlüssel bei einem im Editor gespeicherten Produkt ab und setzen Sie ihn dann im Tab Massenbearbeitung mit neu für alle Produkte, die das Feld verwenden. Der Schlüssel ist für jedes Produkt derselbe. - Caches und Indizes. Leeren Sie den Seiten-Cache und jeden Objekt-Cache. Nach jeder Änderung führt BEAR die üblichen Aktionen
save_postundwoocommerce_update_productaus, auf die die meisten Indexierungs-Plugins hören; zeigt ein Filter-Plugin wie FacetWP weiterhin alte Daten, führen Sie dessen Neuindizierung einmal aus.
Repeater haben Referenzen für den Repeater selbst und für jede Unterfeldzeile; deshalb erscheint ein Repeater, der nur über die Schlüssel seiner Unterfelder bearbeitet wurde, im Frontend oft erst, nachdem das Produkt von Hand gespeichert wurde. Die oben verlinkte Repeater-FAQ löst das mit dem eigenen update_field() von ACF.
ACF-Felder bei Variationen
Die Standortregeln von ACF selbst platzieren keine Feldgruppen bei Produktvariationen; Add-ons, die das tun, speichern die Werte als Meta jeder Variation. Geben Sie eine Variations-ID in Meta-Schlüssel von einem beliebigen Produkt anhand seiner ID abrufen ein, um deren Schlüssel zu sehen, binden Sie sie wie jedes andere Feld an und schalten Sie im Werkzeugbereich Variationen (variations) ein, um sie zu bearbeiten. Text- und Zahlenzeilen des Tabs Massenbearbeitung schreiben dann in die Variationen. In diesem Modus gelten zwei Einschränkungen: Meta-Feld-Filter betrachten die übergeordneten Produkte, und Felder mit der Ansicht Kontrollkästchen werden im Tab Massenbearbeitung nicht angeboten.
Vor einem Massenlauf bei ACF-Feldern
- Das Feld ist über seinen Namen angebunden, mit Ansicht und Typ aus der Tabelle.
- Daten werden als
20261231eingetippt, nie in einer Kalenderzelle ausgewählt. - Checkbox- und Mehrfachauswahl-Felder haben den Speicher-Handler, und Läufe verwenden neu.
- Außerhalb des Produkteditors erstellte Produkte haben die Referenz
_fieldname. - Ein Test an zwei Produkten zeigt den Wert auf der Produktseite; ein falscher Lauf lässt sich im Tab Verlauf (History) rückgängig machen.
Ist ein ACF-Feldtyp hier nicht abgedeckt, posten Sie den Feldtyp und eine Produkt-ID im BEAR-Support-Forum.