BEAR - WooCommerce Bulk Editor and Products Manager Professional

WooCommerce Variationstitel mit Attributen wie Größe und Farbe anzeigen

Der WooCommerce Variationstitel enthält die Attribute nicht immer. Ein Produkt listet seine Variationen als Hoodie - Red, XL auf, beim nächsten steht in jeder Zeile nur Jacket, im Bulk-Editor, im Warenkorb und in Bestellungen, und nichts unterscheidet die Optionen voneinander. Das ist kein fehlerhafter Import. WooCommerce baut jeden Variationstitel selbst und hat Regeln, nach denen es die Attributwerte weglässt. Im Folgenden steht, wie der Titel zusammengesetzt wird, mit welchem einen Filter ein WooCommerce Variationstitel mit Attributen wie Größe und Farbe entsteht, wie Sie die Werte pro Variation im Bulk-Editor sehen und warum sich ein Variationstitel nicht von Hand eintippen lässt.

So baut WooCommerce einen Variationstitel zusammen

Eine Variation hat kein Namensfeld, das Sie ausfüllen. Jedes Mal, wenn WooCommerce eine Variation speichert, und jedes Mal, wenn es eine lädt, berechnet es den Titel aus zwei Teilen: dem Titel des übergeordneten Produkts und den Attributwerten der Variation, verbunden mit " - ". Weicht der gespeicherte Titel vom berechneten ab, zum Beispiel weil das übergeordnete Produkt umbenannt wurde, schreibt WooCommerce den neuen Titel zurück in die Datenbank.

Die Attributwerte werden nur angehängt, wenn die aktuellen WooCommerce-Regeln es erlauben:

  • Die Variation hat weniger als drei Attribute. Bei Farbe, Größe und Material besteht der Titel nur aus dem Titel des übergeordneten Produkts.
  • Bei zwei Attributen darf der Name keines von beiden einen Bindestrich enthalten. WooCommerce liest den internen Namen des Attributs: Ein globales Attribut Shoe size mit dem Slug shoe-size wird als pa_shoe-size gespeichert, und ein benutzerdefiniertes Attribut, das als Sistema de activacion eingegeben wurde, als sistema-de-activacion. Jeder Attributname aus zwei oder mehr Wörtern bekommt Bindestriche, also ergeben Color plus Shoe size Titel ohne Werte.
  • Eine Variation, die auf Beliebige Größe (Any Size) gesetzt ist, hat keinen Größenwert, den WooCommerce ergänzen könnte.

Deshalb können sich zwei Produkte, die gleich aussehen, unterschiedlich verhalten: Das eine hat Color und Size, das andere Color und Frame size.

WooCommerce Variationstitel mit Attributen anzeigen

Die Regeln enden in einem Filter, woocommerce_product_variation_title_include_attributes, der das Ergebnis bestimmt. Gibt er true zurück, werden die Werte an jeden Variationstitel angehängt, unabhängig von Anzahl und Namen der Attribute:

/*
 * Always add the attribute values to variation titles: "Hoodie - Red, XL".
 * Child theme functions.php or a code snippets plugin.
 */
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_true' );

Wollen Sie die WooCommerce-Vorgabe für Variationen mit vielen Attributen beibehalten und nur die Bindestrich-Regel außer Kraft setzen, entscheiden Sie stattdessen nach der Anzahl der Attribute:

add_filter( 'woocommerce_product_variation_title_include_attributes', function ( $include, $product ) {
    // Up to four attributes: always show their values in the title
    if ( count( $product->get_attributes() ) <= 4 ) {
        return true;
    }
    return $include;
}, 10, 2 );

Fügen Sie den Code in die functions.php des aktiven Themes ein, und wenn dieses Theme ein Child-Theme ist, in dessen Datei. Die Datei eines übergeordneten Themes wird bei jedem Theme-Update ersetzt; das Plugin Code Snippets ist daher der sicherere Ort, wenn Sie kein Child-Theme pflegen. Wenn Sie Code von einer übersetzten Webseite kopieren, prüfen Sie die Satzzeichen: Die Browser-Übersetzung macht aus Kommas und Semikolons Zeichen, die PHP nicht akzeptiert.

Das Trennzeichen zwischen dem Titel des übergeordneten Produkts und den Werten hat einen eigenen Filter, woocommerce_product_variation_title_attributes_separator:

add_filter( 'woocommerce_product_variation_title_attributes_separator', function () {
    return ' / '; // Hoodie / Red, XL
} );

Bestehende Variationen übernehmen es beim Laden

Der Filter ändert die Regel, nicht die bereits gespeicherten Titel. WooCommerce vergleicht und überschreibt den Titel einer Variation, sobald es diese Variation das nächste Mal lädt oder speichert: wenn das Produkt im WooCommerce-Editor geöffnet wird, wenn die Produktseite die Variationsoptionen anzeigt oder wenn die Variationen in BEAR angezeigt werden. Nichts muss gelöscht und neu erstellt werden. Bestellungen behalten den Namen, den der Artikel beim Kauf hatte, frühere Bestellungen ändern sich also nicht.

Sind die Werte Teil des Titels, wiederholt WooCommerce sie nicht mehr unter dem Artikelnamen im Warenkorb, an der Kasse und in den Bestell-E-Mails, weil es Attribute überspringt, die bereits im Namen stehen.

Variationstitel im Bulk-Editor

Bei eingeschaltetem Schalter Variationen (variations) im Werkzeugbereich zeigt BEAR jede Variation unter ihrem übergeordneten Produkt und bildet den Titel jeder Zeile genauso wie WooCommerce, mit den Attributnamen in eckigen Klammern am Ende: Hoodie - Red, XL [color, size]. Es ergänzt die Werte für bis zu neun Attribute statt für zwei, im Editor sehen Sie also Werte, wo der gespeicherte Titel keine hat. Die Bindestrich-Regel und der obige Filter gelten auch in BEAR; eine Variationszeile, die nur den Titel des übergeordneten Produkts zeigt, hat also dieselbe Ursache und dieselbe Lösung wie der Warenkorb.

Die Zelle Titel (Title) einer Variationszeile lässt sich nicht bearbeiten, und solange der Schalter für die Variationen eingeschaltet ist, blendet der Tab Massenbearbeitung (Bulk Edit) die Titeloperation aus. Es gibt nichts zu speichern: Jeder Titel, den Sie in eine Variation schrieben, würde beim nächsten Laden durch WooCommerce durch den berechneten ersetzt. Bearbeiten Sie stattdessen den Titel des übergeordneten Produkts; jede Variation folgt ihm.

Den Attributwert jeder Variation in einer eigenen Spalte sehen

Machen mehrere Attribute den Titel lang, zeigen Sie die Attribute als Spalten an. Öffnen Sie den Tab Einstellungen (Settings), geben Sie den Attributnamen in das Feld Spaltensuche ... (columns finder ...) ein (oder klicken Sie auf Alle Spalten anzeigen (Show all columns)), schalten Sie das Attribut ein und klicken Sie auf Alle Einstellungen speichern (Save all settings). Attributspalten gibt es für globale Attribute, also die, die unter Produkte (Products) → Attribute (Attributes) angelegt werden.

In der Zeile des übergeordneten Produkts zeigt und bearbeitet die Zelle die Begriffe, die das Produkt hat. In einer Variationszeile zeigt die Zelle das rote Verbotssymbol, gefolgt vom eigenen Wert der Variation, zum Beispiel [XL], sodass Sie den Wert lesen und in derselben Zeile den Preis ändern können. Warum diese Zelle nicht bearbeitbar ist, erklärt gesperrte Felder bei variablen Produkten und Variationen. Um den Wert zu ändern, auf dem eine Variation aufbaut, verwenden Sie die Operation Vertauschen (Swap) oder Anhängen (Attaching) der Erweiterten Massenvorgänge für Variationen, wie in einen Attributbegriff gegen einen anderen austauschen gezeigt.

Variationsnamen umbenennen oder übersetzen

Weil der Titel berechnet wird, benennen Sie ihn über seine Teile um:

  • Der Produktteil: Ändern Sie den Titel des übergeordneten Produkts, in der Tabelle oder mit einer Massenbearbeitung der übergeordneten Produkte. Die Variationen folgen.
  • Der Wertteil: Benennen Sie den Begriff einmal unter Produkte (Products) → Attribute (Attributes) → Begriffe konfigurieren (Configure terms) um. Jede darauf aufbauende Variation zeigt den neuen Namen, ebenso jede Produktseite. Werte benutzerdefinierter (lokaler) Attribute sind einfacher Text, der in jedem Produkt selbst gespeichert ist; sie lassen sich nur Produkt für Produkt ändern, was einer der Gründe ist, benutzerdefinierte Attribute in globale umzuwandeln.
  • Das gesamte Format: Der Filter woocommerce_product_variation_title erhält den berechneten Titel, das Produkt, den Basistitel und das Suffix und kann jeden daraus gebildeten Text zurückgeben.
  • Übersetzungen: Ein mehrsprachiges Plugin übersetzt den Titel des übergeordneten Produkts und die Attributbegriffe, und WooCommerce bildet daraus die übersetzten Variationstitel. Übersetzte Kopien von Produkten zu erstellen, ist nicht Sache von BEAR.

Manche Themes und Plugins fügen ein eigenes Feld „Variationstitel“ oder „Variationsname“ hinzu und zeigen es auf der Produktseite anstelle des WooCommerce-Titels. Ein solches Feld ist ein Meta-Feld der Variation. Kennen Sie seinen Meta-Schlüssel, hängen Sie ihn im Tab Meta-Felder an, und er wird zu einer gewöhnlichen bearbeitbaren Spalte in den Variationszeilen.

Wenn die Attribute weiterhin nicht erscheinen

  • Prüfen Sie, ob das Snippet ausgeführt wird: Ein Tippfehler stoppt es stillschweigend, und Code in einem inaktiven Theme läuft gar nicht. Eine vorübergehende Zeile mit error_log() in der Funktion zeigt, ob sie aufgerufen wird.
  • Öffnen Sie eine betroffene Variation in WooCommerce und prüfen Sie, dass jedes Attribut einen Wert hat und nicht Beliebig … (Any …) ist.
  • Laden Sie die Editorseite neu; die Titel werden berechnet, wenn die Zeilen geladen werden.
  • Ein Plugin, das Produktnamen ändert (Feeds, Übersetzungen, eigene Titel), hängt sich möglicherweise später an woocommerce_product_variation_title und überschreibt das Ergebnis. Testen Sie mit ausgeschaltetem Plugin.

Die kurze Antwort auf dieselbe Frage steht auch in der FAQ zu Attributen, die bei den Variationen des einen Produkts sichtbar sind und bei einem anderen nicht. Für einen Fall, den nichts davon erklärt, fragen Sie im BEAR-Supportforum.