In WooCommerce habe ich einen Mini-Warenkorb erstellt und möchte die im aktuellen Warenkorb verfügbare Artikelmenge erhalten.
Da ich das versucht habe:
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$product_id = $values['product_id'];
if ( $product_id == $id ){
$product_qnty = $values['quantity'];
}
break;
}
Gibt es eine einzelne Funktion, um die Menge des Warenkorbartikels nach Warenkorbartikel abzurufen?
Vielleicht sollten Sie zuerst in die schauen WooCommerce-Vorlagencode cart/mini-cart.php wo Sie den offiziellen zugehörigen Code finden.
Hinweis: Die “Artikel-ID” ist nur in der WC_Orders-Artikelschleife verfügbar, nicht jedoch in WC_Cart, das ein “Warenkorb-Artikelschlüssel” ist. Sie sprechen also sicherlich von der Produkt-ID. Wenn Sie sich jedoch den Code der offiziellen Vorlage cart/mini_cart ansehen, müssen Sie die verwenden WC_Product
Objekt statt der $product_id
…
Sie können also jederzeit eine benutzerdefinierte Funktion wie z (mit einer $product
Argument, das WC_Product-Objekt) die Sie im entsprechenden Vorlagencode oder in Ihrem benutzerdefinierten Code verwenden können:
function get_item_qty( $product ){
foreach( WC()->cart->get_cart() as $cart_item )
// for variable products (product varations)
$product_id = $product->get_parent_id();
if( $product_id == 0 || empty( $product_id ) )
$product_id = $product->get_id();
if ( $product_id == $cart_item['product_id'] ){
return $cart_item['quantity'];
// break;
}
return;
}
Code geht in die function.php-Datei Ihres aktiven Child-Themes (oder Themes) oder auch in jede Plugin-Datei.
VERWENDUNGSZWECK (Beispiel): Hier geben wir die Menge der aus $product
(WC_Product
Objekt):
// Output the quantity based on the $product object
echo __('Quantity'). ': ' . get_item_qty( $product );
Offizielle Dokumentation: Vorlagenstruktur + Überschreiben von Vorlagen über ein Design
Ich habe gerade ein Update erstellt, das sich auch um variable Produkte (Produktvariationen) kümmert (nach einigen weiteren Tests). Wenn Sie möchten, können Sie diese Antwort auch positiv bewerten. Vielen Dank.
– LoicTheAztec
28. Oktober 2017 um 13:56 Uhr