根据条件将 Woocommerce 产品变体变灰?
Grey out Woocommerce product variation based on conditions?
我有一个自定义的 WooCommerce 商店,我希望能够根据条件将某些产品变体变灰,但我不确定在代码中的哪个位置执行此操作。
- 我每件商品有两个价格,一个是会员价,一个是零售价。
- 我希望每个人都能看到每个变体,但不能select他们无法使用的变体,这样非会员就可以看到零售价,但不能select 它,反之亦然。
- 我想要的另一个定制如下:我希望能够只允许会员每月以会员价购买 5 件产品,然后它会切换到零售价,所以我需要能够也可以根据特定条件将会员价格变灰。
任何人都可以告诉我 files/hooks/actions 我可以在其中将一些自定义代码注入到变体输出中以便实现这一点吗?
谢谢。
对于你的两个问题,你可以用不同的方式使用woocommerce_add_to_cart_validation
过滤挂钩。根据您的用户角色和现有函数参数的某些条件,客户将能够 select 您产品的变体,但如果不允许,则无法将其添加到购物车。您甚至可以在客户尝试添加不允许的内容时显示通知……
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;
}
对于最后一个问题,您需要 set/update 会员每次下订单时按月为会员提供有关 5 种产品的一些自定义用户元数据。为此,您可以使用 woocommerce_thankyou
或 woocommerce_order_status_completed
操作挂钩在用户元数据中设置自定义数据。然后,您将能够在 woocommerce_add_to_cart_validation
过滤器挂钩中检查启用或禁用正确产品变体的数据。
最后,如果你真的想把一些变体变灰,你将不得不使用 Javascript/jQuery,但是这将是相当困难的,因为已经有很多 javascript/Ajax WooCommerce 事件在产品变体上,这将与您的相冲突。但在 WooCommerce 中,一切皆有可能,具体取决于时间和技能……
我有一个自定义的 WooCommerce 商店,我希望能够根据条件将某些产品变体变灰,但我不确定在代码中的哪个位置执行此操作。
- 我每件商品有两个价格,一个是会员价,一个是零售价。
- 我希望每个人都能看到每个变体,但不能select他们无法使用的变体,这样非会员就可以看到零售价,但不能select 它,反之亦然。
- 我想要的另一个定制如下:我希望能够只允许会员每月以会员价购买 5 件产品,然后它会切换到零售价,所以我需要能够也可以根据特定条件将会员价格变灰。
任何人都可以告诉我 files/hooks/actions 我可以在其中将一些自定义代码注入到变体输出中以便实现这一点吗?
谢谢。
对于你的两个问题,你可以用不同的方式使用woocommerce_add_to_cart_validation
过滤挂钩。根据您的用户角色和现有函数参数的某些条件,客户将能够 select 您产品的变体,但如果不允许,则无法将其添加到购物车。您甚至可以在客户尝试添加不允许的内容时显示通知……
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;
}
对于最后一个问题,您需要 set/update 会员每次下订单时按月为会员提供有关 5 种产品的一些自定义用户元数据。为此,您可以使用 woocommerce_thankyou
或 woocommerce_order_status_completed
操作挂钩在用户元数据中设置自定义数据。然后,您将能够在 woocommerce_add_to_cart_validation
过滤器挂钩中检查启用或禁用正确产品变体的数据。
最后,如果你真的想把一些变体变灰,你将不得不使用 Javascript/jQuery,但是这将是相当困难的,因为已经有很多 javascript/Ajax WooCommerce 事件在产品变体上,这将与您的相冲突。但在 WooCommerce 中,一切皆有可能,具体取决于时间和技能……