После некоторых исследований я нашел одну ловушку woocommerce_package_rates, которая в основном помогает настроить стоимость доставки, и попробовал это:
Код: Выделить всё
add_action('woocommerce_package_rates', 'custom_woocommerce_zero_shipping_for_prepaid_orders', 10, 2);
function custom_woocommerce_zero_shipping_for_prepaid_orders($rates, $package) {
// Check for the chosen payment method
$chosen_payment_method = WC()->session->get('chosen_payment_method');
// If the chosen payment method is NOT 'cod' (Cash on Delivery), set shipping to zero
if ($chosen_payment_method !== 'cod') {
foreach ($rates as $rate_key => $rate) {
// Set the cost of each shipping method to zero
$rates[$rate_key]->cost = 0;
// If you want to also set taxes to zero, uncomment the line below
$rates[$rate_key]->taxes = array_map(function($tax) { return 0; }, $rates[$rate_key]->taxes);
}
}
return $rates;
}
Есть ли какой-нибудь другой способ, который может помочь оправдать ожидания?
P.S: Я уже пробовал заставить это работать с купонами. Я не хочу реализовывать эту функцию с помощью купонов.
Подробнее здесь: https://stackoverflow.com/questions/788 ... g-a-coupon