2017-11-16 28 views
2

当店では税込み価格を入力しています。フロントエンドでは小数点を隠します(スウェーデンでは、実際には小数点以下を価格で使用しません)が、バックエンドではそれらを保持します。これが理由です:https://krokedil.com/dont-display-prices-with-0-decimals-in-woocommerce/Woocommerceクーポン丸め問題

上記のリンクの関数を使用してフロントエンドの小数点を非表示にし、フロントエンドでクーポンを丸める関数を追加しました。

/** 
* Trim zeros in price decimals 
**/ 
add_filter('woocommerce_price_trim_zeros', '__return_true'); 
function iconic_was_loop_position($position) { 
    return 'woocommerce_after_shop_loop_item_title'; 
} 

add_filter('iconic_was_loop_position', 'iconic_was_loop_position', 10, 1); 

/** 
* Round off decimals for coupons 
**/ 
function filter_woocommerce_coupon_get_discount_amount($discount, 
$discounting_amount, $cart_item, $single, $instance) { 
    $discount = ceil($discount); 
    return $discount; 
} 
add_filter('woocommerce_coupon_get_discount_amount', 
'filter_woocommerce_coupon_get_discount_amount', 10, 5); 

これは、価格とパーセントクーポン/割引の両方に適しています。 しかし、私はSEK400の固定カート量のクーポンを持っているとします。それを使用するとSEK402に変わります。 これは、丸めフィルタと組み合わせたクーポンの適用方法と関係があると思います。

固定小切手クーポンを何らかの方法で丸め機能から除外することはできますか?

答えて

0

これは、WC_Coupon conditional method is_type()を使用して非常に簡単に行うことができます。また

add_filter('woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5); 
function filter_woocommerce_coupon_get_discount_amount($discount, $discounting_amount, $cart_item, $single, $instance) { 
    // Round the discount for all other coupon types than 'fixed_cart' 
    if(! $instance->is_type('fixed_cart')) 
     $discount = ceil($discount); 

    return $discount; 
} 

コードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルに行くか:あなたのフック機能filter_woocommerce_coupon_get_discount_amount()では、if文では、このようWC_Couponオブジェクトで最後の引数を$instance使用します。任意のプラグインファイルに保存します。

これは機能するはずです。

+0

ありがとうございました!それは魅力のように働いた! :) –