根据条件灰显Woocommerce产品变化?

时间:2017-03-07 14:20:35

标签: php wordpress woocommerce product variations

我有一个定制的WooCommerce商店,我希望能够根据条件使某些产品变化变灰,但我不确定代码在哪里做。

  • 每件商品有两个价格,一个是会员价,一个是零售价。
  • 我希望每个人都能看到每个变体但不能选择那些不可用的变体,以便非会员可以看到零售价但不能选择它,反之亦然。
  • 我想要的其他定制如下:我希望能够只允许会员以每月会员价购买5件产品,然后将它们转换为零售价,所以我需要能够灰色根据某些条件,也可以列出会员的会员价格。

任何人都可以指向我的文件/钩子/动作,我可以在变量输出中注入一些自定义代码,这样我可以实现这一点吗?

感谢。

1 个答案:

答案 0 :(得分:1)

对于您的两个问题,您可以使用其他方式 woocommerce_add_to_cart_validation 过滤器。根据您的用户角色和现有功能参数的某些条件,客户将能够选择产品的变体,但如果不允许,则无法将其添加到购物车。当客户试图在不允许的情况下添加内容时,您甚至可以显示通知......

add_filter( 'woocommerce_add_to_cart_validation', 'custom_add_to_cart_validation', 10, 5 );
function custom_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id, $variations ) {

    // Your code goes here

    // If $passed is set to "false", the product is not added
    // $passed = false;

    return $passed;
}

对于您的上一个问题,每次下订单时,您都需要按月为成员设置/更新有关5种产品的一些自定义用户元数据。您可以使用 woocommerce_thankyou woocommerce_order_status_completed 操作挂钩在用户元数据中设置自定义数据。然后,您可以在 woocommerce_add_to_cart_validation 过滤器挂钩中检查此数据是否启用或禁用正确的产品变体。

要完成,如果你真的想要变灰一些变种,你将不得不使用Javascript / jQuery,但是因为在产品变化上已经有很多javascript / Ajax WooCommerce事件,这将会非常困难,冲突你的。但是在WooCommerce中,一切皆有可能取决于时间和技能......