Php 根据数量修改最终价格

Php 根据数量修改最终价格,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我目前正在开一家商业商店。 基本上这就是我想要达到的目标 “如果您订购了一定数量的产品,例如从产品“a”订购了40件,然后又添加了90件产品“B”,则您总共订购了130件(购物车中的数量等于130件) 所以现在我的价格是基于你们总共订购了多少件而不是每件 因此,如果您订购80-150之间的任何数量,那么您所需支付的是50美元的固定价格(因此,如果您订购91或101或150,您的最终成本将为50美元) 因此,这只是一个例子,因为我想设置其他定价括号 我尝试了WooCommerce推荐的多个插件,但

我目前正在开一家商业商店。 基本上这就是我想要达到的目标

“如果您订购了一定数量的产品,例如从产品“a”订购了40件,然后又添加了90件产品“B”,则您总共订购了130件(购物车中的数量等于130件)

所以现在我的价格是基于你们总共订购了多少件而不是每件

因此,如果您订购80-150之间的任何数量,那么您所需支付的是50美元的固定价格(因此,如果您订购91或101或150,您的最终成本将为50美元)

因此,这只是一个例子,因为我想设置其他定价括号

我尝试了WooCommerce推荐的多个插件,但没有一个插件能满足我的需求


非常感谢您的帮助…

最简单的是,此代码将满足您的要求:

function custom_price_function( $total, $cart ) {
    if( $cart->cart_contents_count <= 150 && $cart->cart_contents_count >= 80 )
        $total = 50;
    return $total;
}
add_filter( 'woocommerce_calculated_total', 'custom_price_function', 10, 2 );
函数自定义\价格\函数($total,$cart){
如果($cart->cart\u contents\u count cart\u contents\u count>=80)
$total=50;
返回$total;
}
添加过滤器('woocommerce\u calculated\u total','custom\u price\u function',10,2);
您可以将它添加到主题
functions.php
文件或自定义插件代码中。它挂接到carts类
calculate_totals()
函数中WooCommerce文件
class wc cart.php
中的过滤器中。编写时,此过滤器位于第1361行


如果您查看该函数,您将看到其他属性,这些属性可能有助于按您希望的方式计算总价。例如,税包含在
$this->tax\u total
变量中,该变量可在
custom\u price\u函数()中访问
使用
$cart->tax_total

最简单的方法是,此代码可以满足您的要求:

function custom_price_function( $total, $cart ) {
    if( $cart->cart_contents_count <= 150 && $cart->cart_contents_count >= 80 )
        $total = 50;
    return $total;
}
add_filter( 'woocommerce_calculated_total', 'custom_price_function', 10, 2 );
函数自定义\价格\函数($total,$cart){
如果($cart->cart\u contents\u count cart\u contents\u count>=80)
$total=50;
返回$total;
}
添加过滤器('woocommerce\u calculated\u total','custom\u price\u function',10,2);
您可以将它添加到主题
functions.php
文件或自定义插件代码中。它挂接到carts类
calculate_totals()
函数中WooCommerce文件
class wc cart.php
中的过滤器中。编写时,此过滤器位于第1361行


如果您查看该函数,您将看到其他属性,这些属性可能有助于按您希望的方式计算总价。例如,税包含在
$this->tax\u total
变量中,该变量可在
custom\u price\u函数()中访问
使用
$cart->tax_total

这太神奇了,代码可以工作,但我需要在任何税收、折扣或发货之前应用价格结构,所以我想价格的调整需要在小计上完成,而不是最终的总数,,,,我查看了class-wc-cart.php文件,没有看到任何设置价格的内容小计的价格,我找错地方了吗…顺便说一句,非常感谢。我还安装了基于国家/地区的价格插件,所以这些价格需要对主题应用汇率…@user1830684 Geez谈论移动目标帖子。函数
获取价格()
,您可以使用它来更改基价。在这里,您可以将基价计算为50/cart\u contents\u count。要获得该变量,您必须从该筛选函数中实例化一个cart对象。您可以与我联系吗,也许我可以外包给您做些什么?您感兴趣吗?@user1830684是的,我感兴趣。我可以“在您的个人资料中找不到联系人详细信息,但在我的个人资料中有详细信息。请访问www.phoenixwebdev.com.au,我的联系人在页脚中。这太神奇了,,,代码可以工作,但我需要在应用任何税收或折扣或发货之前应用价格结构,因此我想价格的调整需要在小计上进行,而不是在最终的t上进行。”otal,,,我查看了class-wc-cart.php文件,但我看不到任何设置小计价格的内容,,,我是不是找错地方了…顺便说一句,谢谢你忘了提到:我还安装了基于国家/地区的价格插件,,,所以这些价格需要将汇率应用于主题…@user1830684 Geez谈论移动goa在函数
get_price()中有另一个名为“woocommerce\u get_price”的过滤器
,您可以使用它来更改基价。在这里,您可以将基价计算为50/cart\u contents\u count。要获得该变量,您必须从该筛选函数中实例化一个cart对象。您可以与我联系吗,也许我可以外包给您做些什么?您感兴趣吗?@user1830684是的,我感兴趣。我可以“在您的个人资料中找不到联系人详细信息,但在我的个人资料中有详细信息。请访问www.phoenixwebdev.com.au,我的联系人在页脚中。”。