2015-10-30 2 views
0

Я установил woocommerce на сайт с определенным количеством пользователей, которые смогут получить доступ к защищенному паролем хранилищу.Функция Woocommerce, чтобы скрыть идентификатор продукта от пользователя ID

В: возможно ли скрыть продукт от всех пользователей ЗА ИСКЛЮЧЕНИЕМ для нескольких клиентов. Я хотел бы создать функцию, которая будет ...

скрыть идентификатор продукта (из всех) для идентификатора пользователя, за исключением: 93, 64, 22 и т.д.

мне нужна помощь по этому вопросу. Заранее спасибо.

ответ

0
$user = get_current_user_id(); 
if($user == '93' && get_post_meta(get the meta value of the product which applies to password protexted)) { 
     show product here 

} else { 
    dont_show 
} 

Вы можете подключить это pre_get_posts крючок

+0

Спасибо, Димитар, я попробую. – goug

0

Вы можете использовать ответ, представленная здесь: https://wordpress.stackexchange.com/questions/165691/how-to-check-if-a-user-exists-by-a-given-id

function user_id_exists($user){ 

    global $wpdb; 

    $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users WHERE ID = %d", $user)); 

    if($count == 1){ return true; }else{ return false; } 

} 

Я хотел бы попробовать с этим: вы должны будете использовать его в content-product.php, который вы вытащили в свою папку woocommerce и отредактировали часть с изображением на лицевой стороне:

$user_id = 1 

if(user_id_exists($user_id)){ 
    <li <?php post_class($classes); ?>> 

    <?php do_action('woocommerce_before_shop_loop_item'); ?> 

    <a href="<?php the_permalink(); ?>"> 

     <?php 
      /** 
      * woocommerce_before_shop_loop_item_title hook 
      * 
      * @hooked woocommerce_show_product_loop_sale_flash - 10 
      * @hooked woocommerce_template_loop_product_thumbnail - 10 
      */ 
      do_action('woocommerce_before_shop_loop_item_title'); 

      /** 
      * woocommerce_shop_loop_item_title hook 
      * 
      * @hooked woocommerce_template_loop_product_title - 10 
      */ 
      do_action('woocommerce_shop_loop_item_title'); 

      /** 
      * woocommerce_after_shop_loop_item_title hook 
      * 
      * @hooked woocommerce_template_loop_rating - 5 
      * @hooked woocommerce_template_loop_price - 10 
      */ 
      do_action('woocommerce_after_shop_loop_item_title'); 
     ?> 

    </a> 

    <?php 

     /** 
     * woocommerce_after_shop_loop_item hook 
     * 
     * @hooked woocommerce_template_loop_add_to_cart - 10 
     */ 
     do_action('woocommerce_after_shop_loop_item'); 

    ?> 

</li> 
} else { 
    return; 
} 

Вы можете создать массив пользователей и фильтровать через него с помощью цикла foreach, а затем в нем сделать условие if, чтобы видеть для каждого пользователя.

+0

Спасибо, dingo_d, я попробую. – goug