Как временно добавить товар в категорию – woocommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как временно добавить товар в категорию – woocommerce

Сообщение Anonymous »

У меня есть пользователи, у которых есть определенные продукты для каждого пользователя, поэтому я пытаюсь добавить категорию «Мои продукты», где каждый пользователь может видеть свои продукты

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 [products]) или когда выбрана категория «Мои продукты». Подойдет и то, и другое

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' );


Подробнее здесь: https://stackoverflow.com/questions/611 ... oocommerce
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»