Php 基于数量的每件商品的折扣百分比

Php 基于数量的每件商品的折扣百分比,php,wordpress,woocommerce,cart,discount,Php,Wordpress,Woocommerce,Cart,Discount,根据答案代码,我申请购物车上xx产品的折扣,具体如下: add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 ); function wc_cart_quantity_discount( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; ##

根据答案代码,我申请购物车上xx产品的折扣,具体如下:

  add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );
function wc_cart_quantity_discount( $cart_object ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    ## -------------- DEFINIG VARIABLES ------------- ##
    $discount = 0;
    $cart_item_count = $cart_object->get_cart_contents_count();
    $cart_total_excl_tax = $cart_object->subtotal_ex_tax;

    ## ----------- CONDITIONAL PERCENTAGE ----------- ##
    if( $cart_item_count <= 17 )
        $percent = 0;
    elseif( $cart_item_count >= 18 && $cart_item_count <= 120 )
        $percent = 10;



    ## ------------------ CALCULATION ---------------- ##
    $discount -= ($cart_total_excl_tax / 100) * $percent;

    ## ----  APPLYING CALCULATED DISCOUNT TAXABLE ---- ##
    if( $percent > 0 )
        $cart_object->add_fee( __( 'Remise sur la quantité 10%', 'woocommerce' ), $discount, true);
}
add_action('woocommerce_cart_计算费用','wc_cart_数量折扣',10,1);
功能wc\u购物车\u数量\u折扣($cart\u对象){
if(定义了('DOING'uajax'))
返回;
##------------定义变量------------------##
$折扣=0;
$cart\u item\u count=$cart\u object->get\u cart\u contents\u count();
$cart\u total\u exc\u tax=$cart\u object->subtotal\u exu tax;
##------------条件百分比------------------##
如果($cart\u item\u count=18&&$cart\u item\u count 0)
$cart\u object->add\u fee('Remise sur la quantité10%,'woocommerce'),$折扣,true);
}
但我想管理每种产品的数量折扣


您有什么建议吗?

以下内容将根据商品数量提供百分比折扣:

add_action( 'woocommerce_cart_calculate_fees','cart_quantity_discount' );
function cart_quantity_discount( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $discount = 0; // Initializing
    $percent  = 10;  // Percentage
    
    // Loop through cat items
    foreach ( $cart->get_cart() as $cart_item ) {
        $subtotal = $cart_item['line_total'];
        
        // Calculation by Item based on quantity
        if( $cart_item['quantity'] > 17 ) {
            $discount += $cart_item['line_total'] * $percent / 100;
        }
    }
    
    if( $discount > 0 ) {
        $cart->add_fee( __( "Item quantity discount", "woocommerce" ), -$discount, true );
    }   
}
代码位于活动子主题(或活动主题)的functions.php文件中。它应该有效