-2

我遇到了需要为其 WooCommerce 会员网站设置“最佳”定价设置的客户的一些问题。

如果产品正在销售,客户不希望应用会员折扣。但是,如果销售价格仍然比正常价格减去会员折扣更贵,那么客户希望客户得到那个价格。

场景一:

  • 正常价格 = 10 美元
  • 售价 = 8 美元
  • 会员折扣的销售价格 = 4 美元(客户不想要这个)
  • 会员价格 = 5 美元(这是更好的价格,所以客户应该得到这个价格,而不是销售价格)

场景二:

  • 正常价格 = 10 美元
  • 销售价格 = 4 美元(这是更好的价格,因此客户应该得到这个,并且不应对产品应用会员折扣)
  • 折扣价 = 2 美元(客户不想要这个)
  • 会员价格 = 5 美元

到目前为止,我正在使用以下过滤器:

add_filter( 'woocommerce_product_get_sale_price', 'qctj_get_member_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price','qctj_get_member_price', 10, 2 );
add_filter( 'woocommerce_product_get_price', 'qtjc_get_member_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'qctj_get_member_price', 10, 2 );

但是当我运行 $product->is_on_sale(); 检查我得到一个无限循环并且网站崩溃。

思考的过程是检查产品是否在打折,检查销售价格与正常价格减去会员折扣后的价格,然后确定哪个价格更好。如果销售价格更好,那么我将调用wc_memberships_exclude_product_from_member_discounts过滤器并将其覆盖为 true 以禁用销售价格的会员折扣。

显然它不起作用,因为 is_on_sale() 函数调用似乎创建了一个无限循环,否则我可能已经可以使用它了。

有人对此有一些建议吗?

4

0 回答 0