我想使用優惠券代碼將促銷產品的折扣加倍。
例如:該產品打折10%。如果我添加優惠券代碼,doublediscount我想將該折扣翻倍至 20%。
優惠券折扣應限制為 15%。因此,如果產品以 30% 的折扣出售,則使用優惠券代碼的最大附加折扣應為 15%。結果是正常價格的 45% 折扣(銷售 額外折扣)。
到目前為止,我的代碼是這樣的:
add_action( 'woocommerce_before_calculate_totals', 'double_saleprice_coupon' );
function double_saleprice_coupon( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
global $woocommerce;
$coupon_id = 'doublediscount';
// Loop through cart items (first loop)
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ){
// Check if product in cart is on sale
$product = $cart_item['data'];
$cart_item_regular_price = $cart_item['data']->get_regular_price();
$cart_item_sale_price = $cart_item['data']->get_sale_price();
$cart_item_diff = $cart_item_regular_price - $cart_item_sale_price;
$cart_item_per_cent = round( $cart_item_diff / $cart_item_regular_price * 100, 0 );
if ( $product->is_on_sale() && wc_pb_is_bundled_cart_item($cart_item) === false && $cart_item_per_cent < 15 ) {
echo 'on sale';
echo $cart_item_per_cent;
}
}
}
我遍歷所有購物車專案并檢查它們是否在銷售以及折扣是否低于 15%。如果是這種情況,我想更改這些購物車專案的折扣。
如果購物車專案的折扣超過 15%,我不想做任何事情。所以優惠券代碼doublediscount將適用于他們的 15%。
我只是不知道如何添加/更改購物車專案的折扣。
uj5u.com熱心網友回復:
您可以將woocommerce_coupon_get_discount_amount掛鉤與以下優惠券設定結合使用:
- 正確設定您的優惠券代碼:
doublediscount - 折扣型別:
Percentage - 數量:
15
此答案中應用的步驟:
- 僅當特定優惠券代碼匹配且產品正在銷售時
- 如果產品沒有打折,則不會應用折扣(else 條件等于 0。但是,如果這不適用,您可以簡單地洗掉 else 條件)
- 計算銷售產品的當前百分比折扣。如果這小于最大附加折扣 (
15),則折扣加倍 - 如果這更多,
15將自動應用添加的最大折扣 ( )
所以你得到:
function filter_woocommerce_coupon_get_discount_amount( $discount, $price_to_discount , $cart_item, $single, $coupon ) {
// Only apply for this coupon
if ( $coupon->get_code() == 'doublediscount' ) {
// On sale
if ( $cart_item['data']->is_on_sale() ) {
// Regular price
$cart_item_regular_price = $cart_item['data']->get_regular_price();
// Sale price
$cart_item_sale_price = $cart_item['data']->get_sale_price();
// Calculate the percentage difference
$cart_item_diff = $cart_item_regular_price - $cart_item_sale_price;
$cart_item_percentage = round( $cart_item_diff / $cart_item_regular_price * 100, 0 );
// Get maximum added discount
$max_added_discount = $coupon->get_amount();
// Less than maximum added discount
if ( $cart_item_percentage < $max_added_discount ) {
$discount = round( ( $price_to_discount * $cart_item_percentage ) / 100, 0 );
}
} else {
$discount = 0;
}
}
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5 );
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/364240.html
標籤:php WordPress的 求购 优惠券 折扣
上一篇:有沒有辦法解密NULL文本?
