在 WooCommerce 中存入延期交货的购物车商品

我从另一篇文章中获取了这段代码,基本上这段代码试图以折扣价强制购物车价格。

我想做的是仅在产品缺货时强制打折。因此,如果产品处于缺货状态,客户可以订购该商品,从而在购物车中计算押金。

Deposit based on a percentage of total cart amount第 2 个代码片段答案,我尝试更改代码以获得延期交货的购物车商品的特定折扣。

原始代码可以正常工作,但如何使其仅适用于延期交货的商品?

我尝试了几天,现在使用例如$product->is_on_backorder( 1 ),但我无法让它工作。如何获取购物车中延期交货的商品总金额?

我知道这是一个简单的解决方案,但我已经尝试了几种解决方案,但无法让它发挥作用。


陪伴而非守候
浏览 103回答 1
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 文件。它应该工作。
打开App,查看更多内容
随时随地看视频慕课网APP