隐藏一种特定的Woodcomerce产品

时间:2017-11-27 作者:Steve

我想为所有未登录的用户隐藏一个特定的产品。认为$post 就是那个帖子。我用了钩子:

add_action( \'wp\', \'WC_Query::remove_product_query\' ) ;
以及

remove_action( \'pre_get_posts\', \'WC_Query::pre_get_posts\' );
但它们似乎都没有起作用。

 global $post;
    if( get_post_type() == "product" )
    {
       if(is_user_logged_in()){
          return;
       }

        add_action( \'wp\', \'WC_Query::remove_product_query\' ) ;
        remove_action( \'pre_get_posts\', \'WC_Query::pre_get_posts\' );
        $post->post_content = \'Hidden\';

        return;
    }

1 个回复
SO网友:Piyush Rawat

这段代码经过测试,在新的WP和WooCommerce安装上运行良好。

if ( !is_user_logged_in()) {
  function exclude_product_from_users($q){
    $current_user = wp_get_current_user();
    $prodcuts_ids = array(648);
    $q->set( \'post__not_in\', $prodcuts_ids );
  }
  add_action( \'woocommerce_product_query\', \'exclude_product_from_users\' );
  function return_from_product_page(){
    global $post;
    $prodcuts_ids = array(648);
    if(in_array( $post->ID , $prodcuts_ids)){
        wp_redirect(home_url(\'/\'));
        exit();
    }
  }
  add_action(\'wp\', \'return_from_product_page\');
}

结束

相关推荐

Wordpress Admin Tooltip hooks

我想知道是否有一种方法可以使用Wordpress管理工具提示(灰色和蓝色),当你更新你的Wordpress(3.x)时会显示这些提示。显示新功能。谢谢