Извлечение идентификаторов продуктов из нескольких страниц нумерации страниц списка продуктов в WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Извлечение идентификаторов продуктов из нескольких страниц нумерации страниц списка продуктов в WooCommerce

Сообщение Anonymous »


Я хотел бы извлечь идентификаторы продуктов из списка продуктов. Но мне не нужны идентификаторы продуктов всего списка продуктов, а только подмножество, которое появляется в данный момент. Этот фрагмент кода правильно подсчитывает идентификаторы продуктов, но всегда учитывает только текущую страницу продукта и помещает идентификаторы этих продуктов в массив:

$all_products = $wp_query->posts; $product_ids = []; $product_ids = wp_list_pluck($all_products, 'ID'); Мне понадобится PHP-код, который помещает идентификаторы продуктов в массив аналогично описанному выше методу, но собирает идентификаторы продуктов и с других страниц, если текущий набор продуктов имеет несколько страниц продуктов (нумерация страниц).
>
"Этот код получит идентификаторы продуктов только с текущей страницы. Если вы хотите получить идентификаторы продуктов со всех страниц, вам нужно будет запустить этот цикл для каждой страницы". Но я не знаю, как это сделать.

$paged = (get_query_var('paged')) ? get_query_var('paged'): 1; $args = массив( 'post_type' => 'продукт', 'posts_per_page' => 10, 'paged' => $paged, ); $loop = новый WP_Query($args); $product_ids = массив(); while ($loop->have_posts()) : $loop->the_post(); $product_ids[] = get_the_ID(); в конце концов; wp_reset_query(); Это мой полный код. Но это работает только на первой странице товара, остальные ничего в массив ($product_ids) не передают. Этот продукт не работает при фильтрации.:

add_action( 'woocommerce_before_shop_loop', 'run_product_query', 10); функция run_product_query() { глобальный $пост; $paged = (get_query_var('paged')) ? get_query_var('paged'): 1; $args = массив( 'post_type' => 'продукт', 'posts_per_page' => 1000000, 'paged' => $paged ); $loop = новый WP_Query($args); $product_ids = массив(); while ($loop->have_posts()) : $loop->the_post(); $product_ids[] = get_the_ID(); в конце концов; wp_reset_postdata(); $wishlist_products = jvm_woocommerce_wishlist_get_wishlist_product_ids(); $intersect = array_intersect( $product_ids, $wishlist_products ); эхо ''; print_r('Товары из списка желаний:'); print_r ($wishlist_products); эхо ''; print_r('$product_ids ID:'); print_r($product_ids); эхо ''; print_r('Идентификаторы Itersect:'); print_r ($ пересечения); эхо ''; $wishlist_count = count($intersect); $product_count = количество ($product_ids); echo '' .$product_count. «Продукты и это в моей коллекции» .$wishlist_count. ''; } Я тоже пробовал этот код, но он годился только для текущей страницы. Этот продукт работает при фильтрации.:
$current_products = $wp_query->posts; $wishlist_products = jvm_woocommerce_wishlist_get_wishlist_product_ids(); $intersect = array_intersect( $wishlist_products, array_column($current_products, 'ID') ); $wishlist_count = count($intersect); $product_count = количество ($current_products); echo '' .$product_count. «Продукты и это в моей коллекции» .$wishlist_count. '';
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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