Я пытаюсь установить общую сумму корзины в £ 10, когда в корзине 4 товара И ни один из товаров не относится к категории "Рождество".
Например,
- 4 товара в корзине, но 4 из категории рождество .Игнорируйте правило и следуйте за цену товара.
- 4 товара в корзине, но 4 из категории не рождественские .Установите цену в корзине £ 10.
- 4 товара в корзине, но 2 из категории рождество .Игнорируйте правило и следуйте за ценой за единицу товара.
Я написал код, который в настоящее время работает, чтобы установить любые 4 корзины на £ 10:
add_filter( 'woocommerce_calculated_total', 'calculated_total', 10, 2 );
function calculated_total( $total, $cart ) {
$taster_item_count = 4;
if ( $cart->cart_contents_count == $taster_item_count ) {
return 10;
}
return $total;
}
Однако, когда я пытаюсь добавить в категорию условное, оно не следует правилу?:
add_filter( 'woocommerce_calculated_total', 'calculated_total', 10, 2 );
// check each cart item for category
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
// ONLY EXECUTE BELOW FUNCTION IF DOESN'T CONTAIN CHRISTMAS CATEGORY
if ( !has_term( 'christmas', 'product_cat', $product->id ) ) {
function calculated_total( $total, $cart ) {
$taster_item_count = 4;
if ( $cart->cart_contents_count == $taster_item_count ) {
return 10;
}
return $total;
}
}
}