Ich verwende diese Funktion, um Woocommerce-Order-Admin-Elemente nach Menüreihenfolge zu sortieren, aber Produkte mit Variablen werden nicht richtig angezeigt. Und wenn es mehrere Produkte mit Variablen in der Bestellung gibt, wird nur eines davon angezeigt.
Bearbeiten: Wir haben ein Problem mit mehreren Artikeln eines Produkts mit unterschiedlichen Attributen:
item1: Produkt A, Variable a, Attribut: rote Farbe, Menge 12
item2: Produkt A, Variable a, Attribut: grüne Farbe, Menge 18
nach sort zeigt es nur:
item1: Produkt A, Variable a, Attribut: rote Farbe, Menge 12
Mit anderen Worten, Produktartikel mit derselben Variations-ID haben ein Problem.
add_filter('woocommerce_order_get_items', 'custom_woocommerce_order_get_items', 10, 2);
function custom_woocommerce_order_get_items($items, $object)
{
//no need to reorder if less than 2 products
if(count($items) < 2)
return $items;
//create a list of products within the order
$products = array();
foreach($items as $key => $item)
{
$products[ $item['product_id'] ] = $key;
}
$sorted_items = array();
global $post;
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'orderby' => 'menu_order',
'order' => 'ASC',
'post__in' => array_keys($products)
);
$custom_query = new WP_Query($args);
while($custom_query->have_posts())
{
$custom_query->the_post();
$sorted_items[ $products[$post->ID] ] = $items[ $products[$post->ID] ];
}
//check for any left outside items
foreach($items as $key => $item)
{
if(isset($sorted_items[$key]))
$sorted_items[ $key ] = $item;
}
return $sorted_items;
}
Ich habe das Problem gelöst, bitte überprüfen Sie meine aktualisierte Antwort.
– LoicTheAztec
26. November 2017 um 21:15 Uhr
keine Lösung?
– Amir Rajai Zadeh
1. Dezember 2017 um 7:59 Uhr