Как показать недавно проданные товары на определенной странице c с помощью шорткода в WordPress WooCommerce? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть веб-сайт WooCommerce для цифровых продуктов. Проданные товары обычно имеют специальный тег с названием «Недавно проданные». Но я хочу показать все проданные товары на специальной странице c, где будут отображаться только проданные товары.

У меня есть плагин «WooCommerce Toolkit», который показывает недавно проданные товары на боковой панели, а другой - это «Список недавно проданных товаров», который показывает недавно проданные товары только на странице одного товара.

Я хочу показать все проданные товары на странице, например, на странице «Продано».

I надеюсь, теперь это имеет смысл.

1 Ответ

0 голосов
/ 06 мая 2020
add_shortcode( 'sold_products', 'wc_products_allsold' );

function wc_products_allsold() {

    //  Get last week orders
    $all_orders = wc_get_orders(
    array(
        'limit'  => -1,
        'status' => array_map( 'wc_get_order_status_name', wc_get_is_paid_statuses() ),
        'return' => 'ids',
    )
    );

    // Sum quantities purchased

    $count               = 0;
    $produt_sale_list    = array();
    foreach ( $all_orders as $all_order ) {
        $order   = wc_get_order( $all_order );
        $items   = $order->get_items();
        foreach ( $items as $item ) {

            $produt_sale_list[ $item->get_name() ][]     = $item[ 'qty' ];
            $count                                   = $count + absint( $item[ 'qty' ] );
        }
    }

    foreach ( $produt_sale_list as $produt_sold => $value ) {
        echo "<p>$produt_sold sold: " . array_sum( $value ) . "</p>";
    }
    if ( $count > 0 )
        echo "<p>Recent sales: $count</p>";
}

Добавьте шорткод [sold_products] на страницу, где вы хотите отображать все проданные товары.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...