Я уже нашел этот код здесь, и он работает для меня как 80/90% (см. Ниже).
Этот код добавляет 60 евро в мою корзину, если в корзине есть товар с ID 349. Когда я добавляю товар из этой категории в свою корзину, когда корзина пуста, она работает нормально. Но когда в моей корзине уже есть продукт из другой категории, а затем я добавляю продукт с категорией 349, это не добавляет дополнительную плату в 60 евро. Как это возможно?
function woo_add_cart_fee() {
$category_ID = '349';
global $woocommerce;
foreach ($woocommerce->cart->cart_contents as $key => $values ) {
// Get the terms, i.e. category list using the ID of the product
$terms = get_the_terms( $values['product_id'], 'product_cat' );
// Because a product can have multiple categories, we need to iterate through the list of the products category for a match
foreach ($terms as $term) {
// 349 is the ID of the category for which we want to remove the payment gateway
if($term->term_id == $category_ID){
$excost = 60;
}
}
$woocommerce->cart->add_fee('Extra bezorgkosten kunstgras', $excost, $taxable = false, $tax_class = '');
}
}
add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );