Я пытаюсь создать условие, при котором функция отображается только на странице оформления заказа WooCommerce, если в корзине присутствует какой-либо продукт из категории ilutulestik
.
В настоящее время, однако, это не такпохоже, что можно получить информацию о корзине.Я предполагаю, что, поскольку, если я использую условие if ( $cat_in_cart )
в коде, функция, в которой я его использую, не отображается, даже если в корзине присутствует товар из категории ilutulestik
.
Я пробовал много разных способов получить информацию о корзине, но ни один из них не помог.Я включу 2 способа, как я попробовал ниже:
Попробуйте 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;
}
}
}
Попробуйте 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;
}
}
}
Я ожидаю, что этот фрагмент кода проверит, есть ли в корзине продукт, относящийся к категории Ilutulestik
(или слаг ilutulestik-2
), и если это так, измените значение $cat_in_cart
на true
, чтобы позже я могактивируйте любой код с помощью if ( $cat_in_cart )
.