Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress Woocommerce-我可以截取行价格(购物车)计算吗?_Wordpress_Woocommerce_Filtering_Cart_Price - Fatal编程技术网

Wordpress Woocommerce-我可以截取行价格(购物车)计算吗?

Wordpress Woocommerce-我可以截取行价格(购物车)计算吗?,wordpress,woocommerce,filtering,cart,price,Wordpress,Woocommerce,Filtering,Cart,Price,例如,我有一个产品,如果你买单件的话,价格是2英镑/件,如果你买6包的话,价格是1英镑/件 客户输入他们所需的数量,比如说7,然后将其添加到篮子中 总费用应为8英镑。6英镑(一包)+2英镑(一单)。但如果我把它加入到篮子中,目前的价格将如您所预期的那样为7英镑(它只是价格集的7倍,即1英镑) 我需要截取/过滤行价格,以便它计算包装数量和单件数量,然后返回正确的金额。我可以设计函数和数学,我只需要知道从哪里开始 i、 有没有像woocommerce\u get\u cart或类似的过滤器?如果是这

例如,我有一个产品,如果你买单件的话,价格是2英镑/件,如果你买6包的话,价格是1英镑/件

客户输入他们所需的数量,比如说7,然后将其添加到篮子中

总费用应为8英镑。6英镑(一包)+2英镑(一单)。但如果我把它加入到篮子中,目前的价格将如您所预期的那样为7英镑(它只是价格集的7倍,即1英镑)

我需要截取/过滤行价格,以便它计算包装数量和单件数量,然后返回正确的金额。我可以设计函数和数学,我只需要知道从哪里开始

i、 有没有像woocommerce\u get\u cart或类似的过滤器?如果是这样,我该如何改变线路价格

(顺便说一句,我知道我可以用可变产品实现这一目标,但出于库存控制的原因,这不是一个选项)

这是WooCommerce的原始总计算

在底部附近有:

    // Allow plugins to hook and alter totals before final total is calculated
    do_action( 'woocommerce_calculate_totals', $this );
我相信你可以用它来做这样的事情:

    add_action('woocommerce_calculate_totals','my_woocommerce_calculate_totals');
    function my_woocommerce_calculate_totals($cart) {
         // get some hints from the code above and do something like foreach ( $cart->get_cart() as $cart_item_key => $values ) { }
         // do your math, then set $cart->cart_contents_total
    }

您能帮助我了解如何完成my\u woocommerce\u calculate\u totals功能吗?为了测试的目的,让我们假设我想在每件商品的行_价格上增加170。我在theme的functions.php中的(不工作)代码是:add_action('woocommerce_calculate_totals','my_woocommerce_calculate_totals');函数my\u-woocmerce\u-calculate\u totals($cart){foreach($cart->get\u cart()as$cart\u item\u key=>$values){$line\u price=$line\u price+170;}return$cart->cart\u contents\u total;}这确实解决了我花了整整两天时间试图解决的一个问题!非常感谢你,即使在你发布这篇文章这么多年之后!
    add_action('woocommerce_calculate_totals','my_woocommerce_calculate_totals');
    function my_woocommerce_calculate_totals($cart) {
         // get some hints from the code above and do something like foreach ( $cart->get_cart() as $cart_item_key => $values ) { }
         // do your math, then set $cart->cart_contents_total
    }