Woocommerce功能用于隐藏用户ID的产品ID

时间:2015-10-30 14:03:48

标签: wordpress function woocommerce

我在具有特定数量用户的网站上安装了woocommerce,这些用户将能够访问受密码保护的商店。

问:除少数客户外,是否可以隐藏所有用户的产品。我想创建一个函数...

  

隐藏产品ID(来自所有),但用户ID除外:93,64,22等。

我需要帮助。提前谢谢。

2 个答案:

答案 0 :(得分: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 hook

答案 1 :(得分: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中使用它,并使用li编辑该部分,如下所示:

$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条件。