Ich versuche, eine Bedingung zu schaffen, bei der eine Funktion nur auf der WooCommerce-Checkout-Seite angezeigt wird, wenn ein Produkt aus der Kategorie vorhanden ist ilutulestik
ist im Warenkorb vorhanden.
Derzeit scheint es jedoch nicht möglich zu sein, Warenkorbinformationen abzurufen. Ich nehme das denn an, wenn ich nutze if ( $cat_in_cart )
Bedingung für einen Code, die Funktion, die ich damit verwende, wird nicht angezeigt, auch wenn ich ein Produkt aus habe ilutulestik
Kategorie im Warenkorb vorhanden.
Ich habe viele verschiedene Methoden ausprobiert, um Warenkorbinformationen zu erhalten, aber keine schien zu funktionieren. Ich werde 2 Möglichkeiten einschließen, wie ich es unten versucht habe:
Versuchen Sie 1
add_action('woocommerce_before_cart', 'kontrollime_ilutulestiku_olemasolu');
function kontrollime_ilutulestiku_olemasolu()
{
global $woocommerce;
$cat_in_cart = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $values )
{
$item = $values['data'];
$item_id = $item->id;
if ( has_term( 'ilutulestik-2', 'product_cat', $item_id ) )
{
$cat_in_cart = true;
break;
}
}
}
Versuchen Sie 2
add_action('woocommerce_before_cart', 'kontrollime_ilutulestiku_olemasolu');
function kontrollime_ilutulestiku_olemasolu($package)
{
global $woocommerce;
$cat_in_cart = false;
foreach ($package['contents'] as $product)
{
// get product categories
$product_cats = wp_get_post_terms(
$product['product_id'], 'product_cat', array('fields' => 'names') );
// if it has category_name unset flat rate
if( in_array('ilutulestik-2', $product_cats) )
{
$cat_in_cart = true;
break;
}
}
}
Ich erwarte, dass dieser Codeabschnitt überprüft, ob sich ein Produkt im Warenkorb befindet, das zur Kategorie gehört Ilutulestik
(oder Schnecke ilutulestik-2
) und wenn ja, ändern $cat_in_cart
Wert zu true
damit ich später jeden Code mit aktivieren konnte if ( $cat_in_cart )
.