【问题标题】:Allow only one product purchase for a specific product category in Woocommerce在 Woocommerce 中只允许为特定产品类别购买一种产品
【发布时间】:2019-05-01 06:42:18
【问题描述】:

我想限制用户购买特定类别产品的次数。我在 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)。

谢谢。

【问题讨论】:

    标签: php wordpress woocommerce product custom-taxonomy


    【解决方案1】:

    在以下代码中,您必须将 t-shirt 替换为您的产品类别(名称、slug 或 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 ) ) {
    

    【讨论】:

      猜你喜欢
      • 2022-07-11
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多