我有一些为每个用户提供特定产品的用户,所以我试图添加一个“我的产品”类别,以便每个用户都可以看到他们的产品
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' );