Thay đổi giá hiển thị WooC Commerce dựa trên vai trò và danh mục người dùng [đã đóng]


13

Tôi đang tìm cách hiển thị một mức giá khác nhau dựa trên vai trò người dùng (nhà bán buôn, đại lý, v.v.) VÀ dựa trên danh mục.

Có một plugin giá động hiển thị các giảm giá này sau khi một mặt hàng được thêm vào giỏ hàng, nhưng không phải trên chính trang đó.

Có cách nào để sử dụng bộ lọc hoặc hành động để kiểm tra cấp độ người dùng, kiểm tra danh mục của mặt hàng và sau đó thay đổi giá động không?

Câu trả lời:


18

Có, bạn có thể sử dụng woocommerce_get_pricemóc lọc để lọc giá trị dựa trên vai trò của người dùng và trả lại giá tương ứng, ví dụ:

add_filter('woocommerce_get_price', 'custom_price_WPA111772', 10, 2);
/**
 * custom_price_WPA111772 
 *
 * filter the price based on category and user role
 * @param  $price   
 * @param  $product 
 * @return 
 */
function custom_price_WPA111772($price, $product) {
    if (!is_user_logged_in()) return $price;

    //check if the product is in a category you want, let say shirts
    if( has_term( 'shirts', 'product_cat' ,$product->ID) ) {
        //check if the user has a role of dealer using a helper function, see bellow
        if (has_role_WPA111772('dealer')){
            //give user 10% of
            $price = $price * 0.9;
        }
    }
    return $price;
}

/**
 * has_role_WPA111772 
 *
 * function to check if a user has a specific role
 * 
 * @param  string  $role    role to check against 
 * @param  int  $user_id    user id
 * @return boolean
 */
function has_role_WPA111772($role = '',$user_id = null){
    if ( is_numeric( $user_id ) )
        $user = get_user_by( 'id',$user_id );
    else
        $user = wp_get_current_user();

    if ( empty( $user ) )
        return false;

    return in_array( $role, (array) $user->roles );
}

Tôi đã thử điều này. Đã thêm mã này trong Hàm.php. Không hoạt động.

1
Cảm ơn câu trả lời tuyệt vời này. Vì một số lý do, giá biến thể của tôi không thay đổi khi sử dụng bộ lọc này. Bạn có quen thuộc với vấn đề này?
Robbert

Chỉ hoạt động trên các sản phẩm đơn giản
Klevis Miho

0

Bạn có thể dùng thử Giá cụ thể của khách hàng cho WooC Commerce . Với plugin này, bạn có thể thêm các mức giá khác nhau cho người dùng đã đăng ký.

Hiện tại plugin đang trong giai đoạn ban đầu, nhưng sẽ sớm có bản cập nhật để hỗ trợ các tính năng bổ sung như giá dựa trên danh mục sản phẩm.


Plugin này chỉ có thể giảm giá một sản phẩm. Nếu bạn muốn tăng giá thì sao?
Klevis Miho
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.