• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Вывод количества всех товаров (count)

Ria

Форумчанин
#1
На странице shop стоит дерево категорий, возле каждой категории у меня выводит количество товаров данной категории, подскажите пожалуйста, а как мне вывести количество всех товаров магазина через count? Каким запросом? Спасибо
 

searchingman

Гуру
Местный
#2
Пример для главной страницы каталога (тема Storefront).
В functions.php вставить код
PHP:
function my_count_all_products() {
    if (is_shop()) {
        $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
        $products = new WP_Query( $args );
        echo 'В каталоге всего ' . $products->found_posts . ' товара(ов)';
    }
}
add_action( 'woocommerce_archive_description', 'my_count_all_products', 5 );
Результат вывода (см. скриншот).
 

Ria

Форумчанин
#3
Пример для главной страницы каталога (тема Storefront).
В functions.php вставить код
PHP:
function my_count_all_products() {
    if (is_shop()) {
        $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
        $products = new WP_Query( $args );
        echo 'В каталоге всего ' . $products->found_posts . ' товара(ов)';
    }
}
add_action( 'woocommerce_archive_description', 'my_count_all_products', 5 );
Результат вывода (см. скриншот).
Не выходит что-то у меня :( В functions добавил, потом мне нужно отобразить количество в нужном месте, откываю archive-product.php и вот здесь у меня есть следующее:
Код:
<?php woocommerce_product_loop_start(); ?>
      <h1 class="title-shops">Товары</h1>
Вот мне нужно как-то в классе <h1> или рядом вывести, пробовал <?php my_count_all_products(); ?> - ничего не выходит, пробовал ниже через do_action( 'my_count_all_products' ); - тоже пусто :) Как тогда правильно сделать это?
 

searchingman

Гуру
Местный
#4
Не выходит что-то у меня :( В functions добавил, потом мне нужно отобразить количество в нужном месте, откываю archive-product.php и вот здесь у меня есть следующее:
Код:
<?php woocommerce_product_loop_start(); ?>
      <h1 class="title-shops">Товары</h1>
Вот мне нужно как-то в классе <h1> или рядом вывести, пробовал <?php my_count_all_products(); ?> - ничего не выходит, пробовал ниже через do_action( 'my_count_all_products' ); - тоже пусто :) Как тогда правильно сделать это?
Неверно делаете.
В нужное место шаблона вставляете хук вывода
PHP:
do_action('hook_count_all_products');
В functions.php вставляется функцию, привязав ее к хуку
PHP:
// Вывод общего количества товаров
add_action( 'hook_count_all_products', 'my_count_all_products');
function my_count_all_products() {
    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
    $products = new WP_Query( $args );
    echo 'В каталоге всего ' . $products->found_posts . ' товара(ов)';   
}
 

Ria

Форумчанин
#5
Неверно делаете.
В нужное место шаблона вставляете хук вывода
PHP:
do_action('hook_count_all_products');
В functions.php вставляется функцию, привязав ее к хуку
PHP:
// Вывод общего количества товаров
add_action( 'hook_count_all_products', 'my_count_all_products');
function my_count_all_products() {
    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
    $products = new WP_Query( $args );
    echo 'В каталоге всего ' . $products->found_posts . ' товара(ов)';  
}
Не отображает :(
 

Ria

Форумчанин
#6
Извините, все ОК :) Это я (n)***** - открыто куча вкладок с файлами, а у functions.php сохранял все на локальном диске а не на сервере :D