在 Woocommerce 中只允许为特定产品类别购买一个产品
Allow only one product purchase for a specific product category in Woocommerce
我想限制用户购买特定类别产品的次数。我在 function.php 中有此代码 (from here),它限制整个商店只能购买一次。
add_filter('woocommerce_add_to_cart_validation','rei_woocommerce_add_to_cart_validation',20, 2);
function rei_woocommerce_add_to_cart_validation($valid, $product_id){
$current_user = wp_get_current_user();
if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id)) {
wc_add_notice( __( 'Error message here', 'woocommerce' ), 'error' );
$valid = false;
}
return $valid;
}
并且我需要添加一个条件,即代码将仅适用于特定类别的产品(按类别名称或 ID)。
谢谢。
在以下代码中,您必须将 t-shirt
替换为您的产品类别 (名称、别名或 ID):
add_filter('woocommerce_add_to_cart_validation','filter_add_to_cart_validation',20, 2);
function filter_add_to_cart_validation($valid, $product_id){
$current_user = wp_get_current_user();
if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id)
&& has_term( array('t-shirt'), 'product_cat', $product_id ) ) {
wc_add_notice( __( 'Error message here', 'woocommerce' ), 'error' );
$valid = false;
}
return $valid;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。
如果您需要排除产品类别,您可以在 has_term()
之前添加一个 !
,例如:
&& ! has_term( array('t-shirt'), 'product_cat', $product_id ) ) {
我想限制用户购买特定类别产品的次数。我在 function.php 中有此代码 (from here),它限制整个商店只能购买一次。
add_filter('woocommerce_add_to_cart_validation','rei_woocommerce_add_to_cart_validation',20, 2);
function rei_woocommerce_add_to_cart_validation($valid, $product_id){
$current_user = wp_get_current_user();
if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id)) {
wc_add_notice( __( 'Error message here', 'woocommerce' ), 'error' );
$valid = false;
}
return $valid;
}
并且我需要添加一个条件,即代码将仅适用于特定类别的产品(按类别名称或 ID)。
谢谢。
在以下代码中,您必须将 t-shirt
替换为您的产品类别 (名称、别名或 ID):
add_filter('woocommerce_add_to_cart_validation','filter_add_to_cart_validation',20, 2);
function filter_add_to_cart_validation($valid, $product_id){
$current_user = wp_get_current_user();
if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id)
&& has_term( array('t-shirt'), 'product_cat', $product_id ) ) {
wc_add_notice( __( 'Error message here', 'woocommerce' ), 'error' );
$valid = false;
}
return $valid;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。
如果您需要排除产品类别,您可以在 has_term()
之前添加一个 !
,例如:
&& ! has_term( array('t-shirt'), 'product_cat', $product_id ) ) {