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

Ряд вопросов по функционалу

John Smith

Форумчанин
Друзья, очень прошу помощи, помогите реализовать, уже пол инета облазил, ничего толкового найти не могу.

1. РЕШЕНО: Как вывести общее количество товаров в базе?
Например: В базе: 4500 товаров.
Код:
<?php echo $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'product' AND post_status = 'publish'") ?>

2. РЕШЕНО: Как вывести количество завершенных заказов?
Например: Выполненных заказов: 732 шт.
В файл function.php добавляем:
Код:
// /Шорткод для вывода счетчика завершенных заказов
function display_woocommerce_order_count( $atts, $content = null ) {
   $args = shortcode_atts( array(
       'status' => 'completed',
   ), $atts );
   $statuses    = array_map( 'trim', explode( ',', $args['status'] ) );
   $order_count = 0;
   foreach ( $statuses as $status ) {
       if ( 0 !== strpos( $status, 'wc-' ) ) {
           $status = 'wc-' . $status;
       }
       $order_count += wp_count_posts( 'shop_order' )->$status;
   }
   ob_start();
   echo number_format( $order_count );
   return ob_get_clean();
}
add_shortcode( 'wc_order_count', 'display_woocommerce_order_count' );
А в любом необходимом месте темы выводим:
Код:
<?php echo do_shortcode("[wc_order_count status='completed,pending']"); ?>

3. Как вывести категории и подкатегории на главную как на картинке?
catalog.jpg
 
Последнее редактирование:
  • Like
Реакции: qwer

ADv

Гуру
Местный
1. Как-нибудь так:
Код:
$wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'product' AND post_status = 'publish'")
 

ADv

Гуру
Местный
2. Как вывести количество завершенных заказов?
Например: Выполненных заказов: 732 шт.
Попробуйте:
Код:
function display_woocommerce_order_count( $atts, $content = null ) {
    $args = shortcode_atts( array(
        'status' => 'completed',
    ), $atts );
    $statuses    = array_map( 'trim', explode( ',', $args['status'] ) );
    $order_count = 0;
    foreach ( $statuses as $status ) {
        if ( 0 !== strpos( $status, 'wc-' ) ) {
            $status = 'wc-' . $status;
        }
        $order_count += wp_count_posts( 'shop_order' )->$status;
    }
    ob_start();
    echo number_format( $order_count );
    return ob_get_clean();
}
add_shortcode( 'wc_order_count', 'display_woocommerce_order_count' );

где шорткод с параметрами [wc_order_count status="completed,pending"] выведет соответствующие значения.

Пункт 4 - Посмотрите это https://wordpress.stackexchange.com/questions/12498/get-the-excerpt-by-id или в гугл по wordpress get excerpt by post id

Пункт 3 - Шорткоды и верстка. Либо плагин. Либо код и верстка. В гугле вагон вариантов :)
 
  • Like
Реакции: qwer

John Smith

Форумчанин
Попробуйте:
Код:
function display_woocommerce_order_count( $atts, $content = null ) {
    $args = shortcode_atts( array(
        'status' => 'completed',
    ), $atts );
    $statuses    = array_map( 'trim', explode( ',', $args['status'] ) );
    $order_count = 0;
    foreach ( $statuses as $status ) {
        if ( 0 !== strpos( $status, 'wc-' ) ) {
            $status = 'wc-' . $status;
        }
        $order_count += wp_count_posts( 'shop_order' )->$status;
    }
    ob_start();
    echo number_format( $order_count );
    return ob_get_clean();
}
add_shortcode( 'wc_order_count', 'display_woocommerce_order_count' );

где шорткод с параметрами [wc_order_count status="completed,pending"] выведет соответствующие значения.

Отлично, спасибо большое! Вы очень помогли и с этим вопросом тоже. Вы волшебник!

Пункт 4 - Посмотрите это https://wordpress.stackexchange.com/questions/12498/get-the-excerpt-by-id или в гугл по wordpress get excerpt by post id
Этот пункт отпадает, идея реализации пришла сама собой во сне, и там будет по другому.

Пункт 3 - Шорткоды и верстка. Либо плагин. Либо код и верстка. В гугле вагон вариантов :)
Проблема в том что оно выводит списком, но выводит криво и без счетчиков. Не могу сортировку указать. Но это еще пол беды, не могу додумать, как правильно сделать так, что-бы оно автоматом разбивалось (переносилось) на 3 столбика. Да и цель - без плагинов :)
 

John Smith

Форумчанин
Хм, поставлю вопрос несколько иначе тогда, как вывести в контент точно такой же функционал, как стандартный вывод категорий и подкатегорий С ИЕРАРХИЕЙ дочерних категорий, который используется в виджете.

Я нашел такой функционал, но там как бы выводится просто списком, разделяя <BR>-ом.
А мне бы как в виджете:
Код:
<ul>
   <li></li>
   <li>
       <ul>
           <li></li>
           <li></li>
           <li>
               <ul>
                   <li></li>
                   <li></li>
               </ul>
           </li>
           <li></li>
           <li></li>
       </ul>
   </li>
   <li></li>
   <li></li>
</ul>

А что касается столбиков, думаю как то так реализовать, или так

ОФФТОП: Уважаемый ADv, не поможете еще с этим вопросом, а то ни кто что-то не отвечает:(
 
Последнее редактирование:
Сверху Снизу