Я создаю сайт для клиента на Woocommerce.Они хотят добавить стоимость доставки в зависимости от категории продукта внутри корзины.Например, если в корзине содержатся следующие товары:
- Товар с категорией 1 = (стоимость доставки: 10 долларов США)
- Товар с категорией 2 = (плата за доставку: 10 долларов США)
- Продукт с категорией 3 = (стоимость доставки: 10 долларов США)
Общая стоимость доставки = 30 долларов США.
Но если корзина содержит это:
- Товар с категорией 1 = (стоимость доставки: 10 долларов США)
- Товар2 с категорией 1 = (стоимость доставки: 0)<--- другой продукт с этой категорией уже существует, поэтому нет необходимости добавлять плату. </li>
- Продукт с категорией 2 = (стоимость доставки: 10 долларов США)
- Продукт с категорией 3 = (доставкаплата: $ 10)
Что мне нужно сделать, так это получить все категории из всех товаров, найденных в корзине, а затем посмотреть, сколько категорий являются уникальными.
Есть идеи, как этого добиться?
Я пытался использовать что-то вроде
add_action('woocommerce_before_cart', 'check_if_cat_in_cart');
function check_if_cat_in_cart() {
$cat_array = array("category-one", "category-two" ,"category-three" ,"category-four", "category-five");
// Loop through all products in the Cart
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( has_term( $cat_array , 'product_cat', $cart_item['product_id'] ) ) {
////// Stuck here
}
}
}
Но я честно застрял на том, как этого добиться, так как у меня нет глубоких знаний по PHP!