我如何临时将产品添加到类别-woocommerce

时间:2020-04-10 14:07:14

标签: wordpress woocommerce

我有一些为每个用户提供特定产品的用户,所以我试图添加一个“我的产品”类别,以便每个用户都可以看到他们的产品

    function my_products_cat( $q ) {

        global $post, $wpmem;
        $products = array();        

        $args = array(
            'limit' => 100,
        );
        $products = wc_get_products( $args );

        foreach($products as $product){
            if(wpmem_user_has_access($product)){
                $product->addToCategories("My Products");
            }
        }     
    }
    add_action( 'woocommerce_before_shop_loop', 'my_products_cat' );

注意我正在使用wp-members添加一些功能。由于某种原因'pre_get_posts'使我的网站崩溃

我基本上需要能够暂时将产品添加到“我的产品”类别中的功能

编辑

当前进度: 我得到它只是为用户显示可用的产品。现在,我只需要在第945页(带有woocommerce [产品]简码的页面)上或选择“我的产品”类别时才能工作。都没事

function custom_pre_get_posts_query( $q ) {
    if(is_page(945)){
        global $post, $wpmem;
        $posts = array();
        $ids = array();

        $args = array('post_type' => 'product',
                      'posts_per_page' => '-1',);
        $posts = get_posts($args);



        foreach($posts as $postss){
            $temppik = $wpmem->membership->get_post_products( $postss->ID );
            if(!wpmem_user_has_access($temppik)){
                array_push($ids, strval($postss->ID));


            }
        }

        $tax_query = (array) $q->get( 'tax_query' );

        $tax_query[] = array(
               'taxonomy' => 'product_tag',
               'field' => 'slug',
               'terms' => $ids,
               'operator' => 'NOT IN'
        );

        $q->set( 'tax_query', $tax_query );
    }

}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );

0 个答案:

没有答案