2015-06-09 74 views

回答

0

要達到此目的,您可以使用Free Groups插件。但爲此,您必須將所有批發商添加到批發組1中。然後,在編輯任何產品時,您可以選擇訪問,然後在其中添加批發商組1。該產品將現在誰是批發商組用戶只看到1

0

這是我如何管理基於角色隱藏產品:

首先,我加在產品選擇庫存部分複選框使管理員隱藏根據自己選擇的產品有:

add_action('woocommerce_product_options_stock_status', 'hide_if_available_to_user_role'); 

function hide_if_available_to_user_role(){ 
    woocommerce_wp_checkbox(array('id' => '_hide_from_users', 'wrapper_class' => 'show_if_simple show_if_variable', 'label' => __('Hide this product from specific roles?', 'customhideplugin'))); 
} 

然後我在實際崗位保存此選擇時後進行更新。

add_action('woocommerce_process_product_meta', 'hide_save_product_meta'); 

function hide_save_product_meta($post_id){ 
    if(isset($_POST['_hide_from_users'])) { 
     update_post_meta($post_id, '_hide_from_users', 'yes'); 
    } else { 
     delete_post_meta($post_id, '_hide_from_users'); 
    } 
} 

這就是我如何得到當前用戶的角色。

function getCurrentUserRole($user = null) { 
    $user = $user ? new WP_User($user) : wp_get_current_user(); 
    return $user->roles ? $user->roles[0] : false; 
} 

現在查詢產品。如果當前用戶角色與下面的角色匹配,則照常顯示產品。 否則,根據上面的代碼設置查詢...

add_action('woocommerce_product_query', 'hide_product_query'); 

function hide_product_query($q){ 

    if((getCurrentUserRole() == 'editor') || (getCurrentUserRole() == 'administrator')){ 

return false; 
} else { 


$meta_query = $q->get('meta_query'); 

    if (get_option('woocommerce_hide_out_of_stock_items') == 'no') { 
     $meta_query[] = array(
        'key'  => '_hide_from_users', 
        'compare' => 'NOT EXISTS' 
       ); 
    } 

    $q->set('meta_query', $meta_query); 

} 


} 
相關問題