Здравствуйте, помогите пожалуйста, я не особо шарю, был подобный вопрос, но там я не нашел прямого ответа. Отблагодарю копеечкой на кофе, если можно?)
//Суть
Сделана скидка от выбранного метода доставки 10%, нужно чтобы она применялась к определенным категориям товаров: ID=19 ID=20 и local_pickup
// Функция для скидки2
function prefix_add_discount_line( $cart ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping_no_ajax = $chosen_methods[0];
if ( 0 === strpos( $chosen_shipping_no_ajax, 'local_pickup' ) ) {
$discount = $cart->subtotal * 0.10;
$cart->add_fee( __( 'Сумма скидки', 'yourtext-domain' ) , -$discount );
}
}
add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line');
слетело после обновления, не помню как делал.
//что то типа этого было
function woo_discount_total(WC_Cart $cart) {
foreach($cart->get_cart() as $cart_item) {
if(has_term("19", "product_cat", $cart_item["product_id"]) && has_term("20", "product_cat", $cart_item["product_id"])) { // Если в корзине есть товар из категории с ID = 19 и ID = 20
$discount = $cart->subtotal * 0.10;
$cart->add_fee("Фиксированная скидка в 10% за выбор товара из акционных категорий ", -$discount);
break;
}
}
}
add_action("woocommerce_cart_calculate_fees" , "woo_discount_total");