代码之家  ›  专栏  ›  技术社区  ›  James1370

根据用户ID按类别ID设置免费价格产品

  •  1
  • James1370  · 技术社区  · 11 月前

    我想在wooccommerce上根据用户ID按类别ID设置免费价格的产品,但它不起作用。 感谢您的帮助。

    到目前为止我的代码:

    function set_free_price_for_category( $price, $product ) {
    
        $category_ids = array( 123 );
        $target_user_id = 123;
        $user_role = 'customer';
        
        if ( has_term( $category_ids, 'product_cat', $product->get_id() ) && user_can( get_current_user_id(), $user_role ) && == $target_user_id ) {
            $price = 0;
        }
        
        return $price;
    }
    add_filter( 'woocommerce_product_get_price', 'set_free_price_for_category', 10, 2 );
    
    1 回复  |  直到 11 月前
        1
  •  0
  •   Mohsen    11 月前

    您的代码在获取当前用户id方面存在一些问题。因此,我几乎完全重新访问了您的代码,并设法解决了您的问题。

    /*set free price product by category ID based on user ID*/
    
    function set_free_price_for_category( $price, $product ) {
    
        $category_ids = array( 123 );
        $target_user_id = 123;
        $user_role = 'customer';
        
        if ( has_term( $category_ids, 'product_cat', $product->get_id() ) && user_can( get_current_user_id(), $user_role ) && get_current_user_id() == $target_user_id ) {
            $price = 0;
        }
        
        return $price;
    }
    add_filter( 'woocommerce_product_get_price', 'set_free_price_for_category', 10, 2 );
    

    代码位于活动子主题(活动主题)的function.php文件中。测试并工作。