Mengubah Harga Tampilan WooCommerce Berdasarkan Peran & Kategori Pengguna [ditutup]

13

Saya ingin menampilkan harga berbeda berdasarkan peran pengguna (grosir, dealer, dll) DAN berdasarkan kategori.

Ada plugin penetapan harga dinamis yang menampilkan diskon ini begitu item ditambahkan ke troli, tetapi tidak pada halaman itu sendiri.

Apakah ada cara untuk menggunakan filter atau tindakan untuk memeriksa level pengguna, memeriksa kategori item dan kemudian mengubah harga secara dinamis?

Buddha yang rumit
sumber

Jawaban:

18

Ya ada, Anda dapat menggunakan woocommerce_get_pricekait filter untuk memfilter nilai berdasarkan peran pengguna dan mengembalikan harga yang sesuai, misalnya:

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 );
}
Bainternet
sumber
Saya mencoba ini. Menambahkan kode ini di functions.php. Tidak bekerja
1
Terima kasih atas jawaban yang bagus ini. Untuk beberapa alasan, harga variasi saya tidak berubah menggunakan filter ini. Apakah Anda terbiasa dengan masalah ini?
Robbert
Hanya bekerja pada produk
Klevis Miho
0

Anda dapat mencoba Harga Khusus Pelanggan untuk WooCommerce . Dengan plugin ini, Anda dapat menambahkan harga berbeda untuk pengguna terdaftar.

Saat ini plugin sedang dalam tahap awal, tetapi akan segera ada pembaruan untuk mendukung fitur tambahan seperti harga berdasarkan kategori produk.

WisdmLabs
sumber
plugin ini hanya dapat mendiskon produk. Bagaimana jika Anda ingin menaikkan harga?
Klevis Miho