当我测试你的代码时,我的列表中的所有价格都会改变。 也许你的销售价格有问题。 WC_PRODUCT
类具有不同的功能(包括根据销售状态获取价格的过滤器)。该get_price_html
使用get_regular_price
或get_price_suffix
功能等
尝试:
add_filter('woocommerce_get_price','change_price_regular_member', 10, 2);
add_filter('woocommerce_get_regular_price','change_price_regular_member', 10, 2);
add_filter('woocommerce_get_sale_price','change_price_regular_member', 10, 2);
您也可以尝试像http://club.orbisius.com/products/wordpress-plugins/woocommerce-extensions/orbisius-flex-price-woocommerce/的延伸。
更新
你的代码是不工作的每一个地方,当我通过PayPal
下订单似乎贝宝网关使用顺序类而不是产品类别来计算价格。在./includes/class-wc-order.php
中,您可以找到诸如get_item_subtotal()
之类的功能,它有一个过滤器apply_filters('woocommerce_order_amount_item_subtotal', $price, $this);
。尝试使用这些,例如:
add_filter('woocommerce_order_amount_item_subtotal','change_price_regular_member', 10, 2);
嘿,贝斯你能帮助我知道如何在结帐页面上触发该过滤器吗? –
AFAIK这些过滤器(将它们添加到你的function.php)也适用于结帐 –
亲爱的你的代码不工作,当我通过贝宝订单返回原价请帮助? –