Php 您可以通过编程方式修改购物车总计

Php 您可以通过编程方式修改购物车总计,php,wordpress,woocommerce,cart,Php,Wordpress,Woocommerce,Cart,我试图用代码更改购物车总数,但我不知道如何更改。我已使用过滤器woocommerce\u cart\u item\u price成功更改购物车中每个商品的价格。是否有这样一个用于购物车总数的过滤器(参见图中的箭头)? 这是每个项目的代码: add_filter( 'woocommerce_cart_item_price', 'func_change_product_price_cart', 10, 3 ); function func_change_product_price_cart($pr

我试图用代码更改购物车总数,但我不知道如何更改。我已使用过滤器
woocommerce\u cart\u item\u price
成功更改购物车中每个商品的价格。是否有这样一个用于购物车总数的过滤器(参见图中的箭头)?

这是每个项目的代码:

add_filter( 'woocommerce_cart_item_price', 'func_change_product_price_cart', 10, 3 );
function func_change_product_price_cart($price, $cart_item, $cart_item_key){
if ( isset($cart_item['tau_lengde']) ) {
if ( WC()->cart->display_prices_including_tax() ) {

    $product_price = wc_get_price_including_tax( $cart_item['data'] );
} else {
    $product_price = wc_get_price_excluding_tax( $cart_item['data'] );
}
    $price = wc_price( (($product_price * $cart_item['tau_lengde']) + $cart_item['price_one_end'] + $cart_item['price_other_end']));

return $price;
}
}

项目总数=固定金额*数量

add_action( 'woocommerce_before_calculate_totals', 'modify_cart_price', 20, 1);

function modify_cart_price( $cart_obj ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) || ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ))
        return;

    foreach ( $cart_obj->get_cart() as $cart_item ) {
        $cart_item['data']->set_price( 1000);
    }
 }
项目总计=项目价格*数量(默认)

购物车中的产品小计

function filter_woocommerce_cart_product_subtotal( $product_subtotal, $product, $quantity, $instance ) { 

    $product_subtotal = $product->get_price()*$quantity;
    return $product_subtotal; 
}; 


add_filter( 'woocommerce_cart_product_subtotal', 'filter_woocommerce_cart_product_subtotal', 10, 4 ); 

添加一些代码。您购物车的代码等…我在问题中添加了代码当我尝试此代码时,每件商品的总价格仍然是变动价格(见图片中的箭头),但页面底部的总价现在是0。@Paudun尝试新的代码段来回答-这就是您要寻找的?新代码段按照页面底部显示的总价工作,但不是箭头旁边的总价。@Paudun箭头旁边的意思是?项目总价?你能说得更具体些吗?我更新了问题中的图片。我试图修改箭头指向的价格。现在它只显示50的项目变动价格。你的代码改变了底部的价格,上面写着10269。
add_action( 'woocommerce_before_calculate_totals', 'modify_cart_price', 20, 1);

function modify_cart_price( $cart_obj ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) || ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ))
        return;

    foreach ( $cart_obj->get_cart() as $cart_item ) {
        $cart_item['data']->set_price( 1000);
    }
 }
add_action( 'woocommerce_before_calculate_totals', 'modify_cart_price', 20, 1);

function modify_cart_price( $cart_obj ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) || ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ))
        return;

    foreach ( $cart_obj->get_cart() as $cart_item ) {

        $cart_item['data']->set_price( $cart_item['data']->get_price());
    }
 }
function filter_woocommerce_cart_product_subtotal( $product_subtotal, $product, $quantity, $instance ) { 

    $product_subtotal = $product->get_price()*$quantity;
    return $product_subtotal; 
}; 


add_filter( 'woocommerce_cart_product_subtotal', 'filter_woocommerce_cart_product_subtotal', 10, 4 );