在 WooCommerce 中存入延期交货的购物车商品
Deposit on backordered cart items in WooCommerce
我从另一个 post 那里获取了这段代码,基本上这段代码试图以折扣价强制购物车价格。
我想做的是仅在产品缺货时强制打折。因此,如果产品处于缺货状态,客户可以订购该商品,从而在购物车中计算存款。
从 第二个代码片段答案开始,我尝试更改代码以获得延期交货购物车商品的特定折扣。
原始代码可以正常工作,但如何使其仅适用于延期交货的商品?
我现在尝试了几天 $product->is_on_backorder( 1 )
但我无法让它工作。如何获取购物车中延期交货的商品总金额?
我知道这是一个简单的解决方案,但我已经尝试了多种解决方案,但都无法正常工作。
更新:要仅针对延期交货的商品,您将使用以下内容:
add_action( 'woocommerce_cart_calculate_fees', 'calculated_deposit_discount_on_backorders' );
function calculated_deposit_discount_on_backorders( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
## Set HERE your negative percentage (to remove an amount from cart total)
$percent = -.80; // 80% off (negative)
$backordered_amount = 0;
foreach( $cart->get_cart() as $cart_item ) {
if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
$backordered_amount = $cart_item['line_total'] + $cart_item['line_tax'];
}
}
## ## CALCULATION ## ##
$calculated_amount = $backordered_amount * $percent;
// Adding a negative fee to cart amount (Including taxes)
$cart->add_fee( __('Deposit calculation', 'woocommerce'), $calculated_amount, true );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。应该可以。
我从另一个 post 那里获取了这段代码,基本上这段代码试图以折扣价强制购物车价格。
我想做的是仅在产品缺货时强制打折。因此,如果产品处于缺货状态,客户可以订购该商品,从而在购物车中计算存款。
从
原始代码可以正常工作,但如何使其仅适用于延期交货的商品?
我现在尝试了几天 $product->is_on_backorder( 1 )
但我无法让它工作。如何获取购物车中延期交货的商品总金额?
我知道这是一个简单的解决方案,但我已经尝试了多种解决方案,但都无法正常工作。
更新:要仅针对延期交货的商品,您将使用以下内容:
add_action( 'woocommerce_cart_calculate_fees', 'calculated_deposit_discount_on_backorders' );
function calculated_deposit_discount_on_backorders( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
## Set HERE your negative percentage (to remove an amount from cart total)
$percent = -.80; // 80% off (negative)
$backordered_amount = 0;
foreach( $cart->get_cart() as $cart_item ) {
if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
$backordered_amount = $cart_item['line_total'] + $cart_item['line_tax'];
}
}
## ## CALCULATION ## ##
$calculated_amount = $backordered_amount * $percent;
// Adding a negative fee to cart amount (Including taxes)
$cart->add_fee( __('Deposit calculation', 'woocommerce'), $calculated_amount, true );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。应该可以。