是否有挂钩或插件可以从 woocommerce 优惠券中排除某些产品标签?
Is there a hook or plugin to exclude certain product-tags from a woocommerce coupon?
我需要从 woocommerce 优惠券中排除产品标签。
我试图搜索 Google 一个适用的插件,但没有搜索到。
理想情况下,一个解决方案是一个插件,可以将自定义字段添加到优惠券 post 类型。但是,我将通过 hook/filter.
进行硬编码。
您可以使用一个过滤器来完成此操作woocommerce_coupon_is_valid_for_product。
它接受4个参数,有效、产品、优惠券和价值。它是从 class-wc-coupon.php 在第 3 版左右的第 860 行调用的。它应该 return 一个布尔值 (true/false).
请注意,以下代码不完整且未经测试,仅供示例使用。
add_filter('woocommerce_coupon_is_valid_for_product', 'exclude_product_from_coupon_by_tag', 12, 4);
function exclude_product_from_coupon_by_tag($valid, $product, $coupon, $values ){
//Check if product has tag/s
$valid = has_term('INSERT_TERM_HERE', 'product_tag', $product);
return $valid;
}
希望对您有所帮助!
正如 Seb Toombs 所说,您必须使用 woocommerce_coupon_is_valid_for_product 过滤器来按标签检查产品验证。如果验证 returns 出错,您必须将 $product 更改为 $product->get_id()
add_filter('woocommerce_coupon_is_valid_for_product', 'exclude_product_from_coupon_by_tag', 12, 4);
function exclude_product_from_coupon_by_tag($valid, $product, $coupon, $values ){
//Check if product has tag/s
$valid = has_term('INSERT_TERM_HERE', 'product_tag', $product->get_id());
return $valid;
}
我需要从 woocommerce 优惠券中排除产品标签。
我试图搜索 Google 一个适用的插件,但没有搜索到。
理想情况下,一个解决方案是一个插件,可以将自定义字段添加到优惠券 post 类型。但是,我将通过 hook/filter.
进行硬编码。您可以使用一个过滤器来完成此操作woocommerce_coupon_is_valid_for_product。
它接受4个参数,有效、产品、优惠券和价值。它是从 class-wc-coupon.php 在第 3 版左右的第 860 行调用的。它应该 return 一个布尔值 (true/false).
请注意,以下代码不完整且未经测试,仅供示例使用。
add_filter('woocommerce_coupon_is_valid_for_product', 'exclude_product_from_coupon_by_tag', 12, 4);
function exclude_product_from_coupon_by_tag($valid, $product, $coupon, $values ){
//Check if product has tag/s
$valid = has_term('INSERT_TERM_HERE', 'product_tag', $product);
return $valid;
}
希望对您有所帮助!
正如 Seb Toombs 所说,您必须使用 woocommerce_coupon_is_valid_for_product 过滤器来按标签检查产品验证。如果验证 returns 出错,您必须将 $product 更改为 $product->get_id()
add_filter('woocommerce_coupon_is_valid_for_product', 'exclude_product_from_coupon_by_tag', 12, 4);
function exclude_product_from_coupon_by_tag($valid, $product, $coupon, $values ){
//Check if product has tag/s
$valid = has_term('INSERT_TERM_HERE', 'product_tag', $product->get_id());
return $valid;
}