Ich versuche, die Rückstandsbenachrichtigung auf der Warenkorbseite in WooCommerce so zu bearbeiten, dass die Anzahl der Rückstandsbestellungen für jeden Warenkorbartikel angezeigt wird (ich verwende Variationen).
Wenn also ein Warenkorbartikel eine Menge von 7 hat, aber der Bestand 5 beträgt, sollte der Rückstand 2 betragen. (Diese Informationen werden standardmäßig in Woocommerce in Bestell-E-Mails angezeigt, aber nicht auf der Warenkorbseite, bevor die Bestellung aufgegeben wird).
Der folgende Code funktioniert, solange sich nur 1 Warenkorbartikel im Warenkorb befindet. Wenn es jedoch mehr als 1 Artikel im Warenkorb gibt, wird die gleiche Anzahl von Lieferrückständen für alle Artikel im Warenkorb mit Lieferrückstand zurückgegeben.
Weiß jemand, was ich ändern muss, damit die Rückstandsbenachrichtigung die korrekte Anzahl von Rückständen für jeden einzelnen Warenkorbartikel mit Rückständen anzeigt – egal, wie viele Warenkorbartikel mit Rückständen sich im Warenkorb befinden?
Ich verwende den Filterhaken woocommerce_cart_item_backorder_notification
function backorder_info() {
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// Get an instance of the WC_Product Object
$product = $cart_item['data'];
// Get stock quantity
$stock_qty = $product->get_stock_quantity();
// get cart item quantity
$item_qty = $cart_item['quantity'];
// Calculate number of backorders
$backorder_qty = $item_qty - $stock_qty;
$html="<p class="backorder_notification">" .__( " " .$backorder_qty. " i restordre","woocommerce").'</p>';
// return backorder quantity
return $html;
}
}
// Display backorder notification on cart page
add_filter( 'woocommerce_cart_item_backorder_notification', 'custom_cart_item_backorder_notification', 10, 2 );
function custom_cart_item_backorder_notification($html, $product_id) {
$html = backorder_info();
return $html;
}