私は現在、WooCommerce でオンライン ショップに取り組んでいます。特定の配送方法を選択した顧客に割引を適用したいという問題に直面しました。割引は、すべての単一製品に対して 0.50 です。基本的に、「 functions.php」の次のコードでこの問題を解決しました。
add_action('woocommerce_before_calculate_totals', 'woo_add_cart_fee');
function woo_add_cart_fee() {
global $woocommerce;
$cart = $woocommerce->cart->get_cart();
//Calculating Quantity
foreach ($cart as $cart_val => $cid) {
$qty += $cid['quantity'];
}
if ($woocommerce->cart->shipping_label == "specific shipping method") {
$woo_fee = $qty * (-0.5);
$woo_name = "discount for specific shipping method";
}
$woocommerce->cart->add_fee(__($woo_name, 'woocommerce'), $woo_fee, true);
}
コードは技術的に機能します。現在私が抱えている唯一の問題は、顧客が配送方法を変更した場合、つまり「特定の配送方法」から「通常の配送方法」(割引なし)、またはその逆の場合、常に表示および計算されることです以前に選択した配送方法からの割引額。言い換えれば、常に一歩後退しているため、顧客に間違った合計金額が表示されます。
誰でもこの問題を解決するアイデアを持っていますか?