Ich verwende WordPress 4.7.5, WooCommerce 3.0.7 und eine Master-Branch-Version von Hyyan WooCommerce Polylang (heruntergeladen am 15. Mai, nachdem die WC 3-Änderungen vorgenommen wurden).
Wenn die Bestell-E-Mails an den Kunden und den Administrator gesendet werden, sind die Variationsinformationen nicht vorhanden.
Die Produkte sind variable Produkte mit Variationen, die für jeden Wert im einzelnen Attribut erstellt wurden.
Für Produkte mit mehr als einem Attribut werden Variationen für ein Attribut erstellt. In diesem Fall ist die andere Attribut - Info in der E - Mail angezeigt.
Wenn ich Hyyan WooCommerce Polylang deaktiviere, erscheinen die Variationsinformationen in den E-Mails.
Produktkarton in E-Mail: Unicorn Fantasy Dog Bandana
Wenn das Plugin deaktiviert ist: Unicorn Fantasy Dog Bandana - 12 Zoll
Ich habe versucht, mit dem Filter 'woocommerce_order_item_name' zu experimentieren, um den Wert von $item_name zu sehen, aber er war immer null!
Ich habe versucht, das Problem zu isolieren, indem ich den add_filter-Aufruf für die Funktion 'translateProductNameInOrdersDetails' in Hyyan\WPI\Order.phps __construct() deaktiviert habe, aber es führte zu einem NULL-Produktnamen!
Ich probiere gerne alle Ideen aus und füge Debug-Meldungen hinzu.
Bitte versuchen Sie es erneut mit der neuesten Version, die jetzt als Hyyan WooCommerce Polylang Integration 1.0 veröffentlicht wurde.
Der erste Satz von WooCommerce 3.0-Änderungen beinhaltete keine gründliche Überprüfung der Variationen.
Trotzdem teste ich es nur noch einmal und in meiner einfachen Testinstallation:
Wenn ich dann sowohl Woo-Poly-Integration als auch Polylang ausschalte, erhalte ich das gleiche Ergebnis ... also dies ist in den WooCommerce-Vorlagen selbst.
Bei Bedarf können Sie die Vorlage anpassen oder das Problem an WooCommerce wenden.
Bitte überprüfen und bestätigen Sie hier.
Ich habe eine Testbestellung gemacht und die Variationsinformationen waren in keiner der E-Mails enthalten.
Gibt es etwas, was ich tun kann, um Ihnen bei der Fehlersuche zu helfen?
Nun, wenn Sie bestätigen, dass die Variationsinformationen nicht in der E-Mail enthalten sind, wenn Polylang und woo-poly deaktiviert sind, ist dies kein Problem mit diesem Plugin ...
Ich habe Woo-Poly deaktiviert und sehe jetzt die Variationsinformationen in der E-Mail an den Admin.
zB "Navy Movie Stars Dog Bandana – 26inch" (wobei "26inch" die Variationsinformation ist).
Ich habe Woo-Poly wieder aktiviert und die Variationsinformationen sind wieder weg.
Weitere Informationen:
war das in der grundsprache oder in der zweiten sprache?
Basissprache.
Soll ich es in der zweiten Sprache versuchen? (die Seite hat nur 2 aktive Sprachen - Englisch und Deutsch).
Okay, hier ist das Problem:
Bestell.php l. 118** Funktion translateProductNameInOrdersDetails
versucht clever zu sein und fügt jedem Bestellartikel Links hinzu, um zu den Produktdetails zurückzukehren und den Variationsnamen [fehlgeschlagen] zu übersetzen.
Sie können dies erkennen, indem Sie die erste Zeile dieser Funktion hinzufügen:
return $name;
Sie erhalten den Namen der Produktvariante in den E-Mails usw., jedoch immer in der Sprache des Shops.
Auf den ersten Blick scheint das Hinzufügen der Produktlinks ein nettes Feature zu sein und tatsächlich erscheint es sehr lahm, dass die Standard-WooCommerce-Kunden-E-Mails überhaupt keine Links enthalten (!!), aber es sollte wahrscheinlich nicht die Aufgabe dieses Plugins sein um die E-Mail-Vorlagen auf diese Weise zu ändern.
Und es gibt wahrscheinlich einen Grund, warum wooCommerce dies nicht tut: Der Kunde kann die E-Mail lange Zeit als Quittung aufbewahren, aber das Produkt könnte später bearbeitet werden, sodass es nicht mehr mit dem Link übereinstimmt. Das sieht schlecht aus, wenn der Kunde später auf die alte Bestell-E-Mail klickt.
Also könnte ich das zu einer Option machen...
Ich habe auch einen Grund für das scheinbar inkonsistente Verhalten:
Beobachtet habe ich folgende Formate in einem im letzten Jahr aufgebauten Shop:
Die richtige Lösung kann also die folgenden Elemente haben:
Das richtige Speichern des Namens muss logischerweise besser sein, als zu versuchen, den Namen überall dort einzuhaken und zu ändern, wo er verwendet werden kann.
wooCommerce 3.0 hat auch dafür etwas Code:
class-wc-product-variation-data-store-cpt-php ll.73-83
/**
* If a variation title is not in sync with the parent e.g. saved prior to 3.0, or if the parent title has changed, detect here and update.
*/
if ( version_compare( get_post_meta( $product->get_id(), '_product_version', true ), '3.0', '<' ) && ( $parent_title = get_post_field( 'post_title', $product->get_parent_id() ) ) && 0 !== strpos( $post_object->post_title, $parent_title ) ) {
global $wpdb;
$new_title = $this->generate_product_title( $product );
$product->set_name( $new_title );
$wpdb->update( $wpdb->posts, array( 'post_title' => $new_title ), array( 'ID' => $product->get_id() ) );
clean_post_cache( $product->get_id() );
}
ok, das wird kompliziert, ich wollte es wooCommerce melden, aber es gibt vor 5 Tagen einen entsprechenden Check-in und wurde zu 3.0.8 hinzugefügt: https://github.com/woocommerce/woocommerce/issues/15315
Es wäre also sinnvoll, das zu überprüfen.
Grundsätzlich hat wooCommerce 3.0.7 noch Probleme mit der Variantenbeschreibung im Warenkorb und damit auch in den Bestellungen.
Hier ist eine Sequenz mit einfacher WooCommerce 3.0.7 nach dem Deaktivieren der Polylang- und Polylang WooCommerce-Integration .
mysql> select ID, post_title from wp_posts where ID>456;
+-----+---------------------------------------------+
| ID | post_title |
+-----+---------------------------------------------+
| 457 | Test Sync variations 2 |
| 458 | Test Sync variations 2 - Blue |
| 459 | Test Sync variations 2 - Black |
(Das Attribut Blau wird umbenannt, aber die Beschreibung für Warenkorb/Bestellung wird nie richtig aktualisiert)
Wie wooCommerce den Link macht:
Beim Speichern:
class-wc-product-variable.php save() l.394 Aufrufe
$this->data_store->sync_variation_names( $this, $vorheriger_name, $neuer_name );
class-wc-product-variable-data-store-cpt.php sync_variation_names() ll.304++
ersetzt eine Zeichenfolge die Namen anstelle eines neuen Namens
hier wird also kein übersetzter Variationsstring aufgenommen, sondern nur den Titelteil ersetzt
Im vorherigen Kommentar ist generate_product_title() eine geschützte Funktion einer internen Datenklasse, die von außerhalb von WooCommerce nicht ohne weiteres überschrieben werden kann.
Im Zusammenhang mit all dem funktioniert WooCommerce-Polylang: Auf Variationsebene fügt WooCommerce-Polylang eine eigene Referenz hinzu, um sicherzustellen, dass Variationsdetails normalerweise aus der Mastersprachkopie der Variation abgerufen werden - siehe Ausgabe #168
Ich glaube, wenden Sie eine vorübergehende Lösung an, indem Sie einen Filter "woocommerce_product_variation_get_name" verwenden.
Es wird eine weitere kuriose Alternative erwähnt, die Produktattribute im Titel zu deaktivieren, was bedeutet, dass sie stattdessen nach dem Titel gedruckt werden sollten.
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
Dies funktioniert jedoch bei mir nicht.
OK, DIES IST IM WOOCOMMERCE BEHOBEN!!!
getestet mit neuestem Code https://github.com/woocommerce/woocommerce "Version 3.1.0-beta"
und wird voraussichtlich in 3.0.8 veröffentlicht.
und mit der woo-poly translateProductNameInOrdersDetails() Funktion ausgeschaltet,
dann wird der Woocommerce-Fix angewendet
Auch wenn gewünscht die
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false');
funktioniert im aktualisierten WooCommerce
Könnte WooCommerce 3.1 statt 3.0.8 sein, wenn man sich den Woocommerce-Blog ansieht: https://woocommerce.wordpress.com/
2 Wochen ab dem 31. Mai würden den Veröffentlichungstermin vielleicht auf den 14. Juni setzen.
Beachten Sie, dass woocommerce/woocommerce#15315 in letzter Minute von 3.0.8 fallen gelassen wurde, aber immer noch für 3.1 mit einer gründlicheren Überprüfung geplant ist.
Bis dahin können Variationsdetails im Warenkorb/in den Bestellungen ungerade sein.
Typisches Ergebnis kann zB sein:
Spanischer Produktname - _Englischer Variationsbegriff_
Attributname - _Spanischer Variationsbegriff_