Как посчитать всю продаваемую продукцию woocoommerce - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь составить еженедельную сводку по продажам данного продавца (у меня есть магазин мультивендоров, я использую плагин мультивендоров YITH) Создает еженедельный PDF со сводкой заказов для каждого продавца, но загружает только в него В конкретный заказ c я записываю количество проданных товаров и перехожу к следующему. Мне нужно составить общий объем продаж всех продуктов за последнюю неделю, например, Продукт А 50 шт. Продукт Б 25 шт. Продукт C 45 шт., То есть извлечь из каждого заказа название проданного продукта и подсчитать его с каждым заказом, а затем подвести итог. В настоящее время я загружаю все заказы для каждого продавца и пишу название продукта и количество проданных товаров.

 $sql_active_vendors = 'SELECT DISTINCT user_id, vendor_id, user_email, name from wp_yith_vendors_commissions
            join wp_users on wp_yith_vendors_commissions.user_id = wp_users.id
            join wp_terms on wp_yith_vendors_commissions.vendor_id = wp_terms.term_id';
$active_vendors = $wpdb->get_results($sql_active_vendors);

foreach ($active_vendors as $query2) {

    $vendor_id = $query2->vendor_id;
    $vendor_mail = $query2->user_email;
    $vendor_name = $query2->name;

    echo $vendor_name . ' ' . $vendor_mail;
    $sql3 = 'SELECT DISTINCT wp_yith_vendors_commissions.order_id, date_created from wp_yith_vendors_commissions
            join wp_wc_order_product_lookup on wp_yith_vendors_commissions.order_id = wp_wc_order_product_lookup.order_id where vendor_id="' . $vendor_id . '"
            AND date_created BETWEEN 
            "' . $datetime1->format("Y-m-d H:i:s") . '"
            AND
            "' . $datetime2->format("Y-m-d H:i:s") . '"
            ';

    $order_id = $wpdb->get_results($sql3);
    if (count($order_id) > 0) {
        echo(count($order_id));
        foreach ($order_id as $order_ids) {
            echo '</br>' . $vendor_id . ' ' . $vendor_mail . ' ' . $vendor_name . '</br>';
            $orderID = $order_ids->order_id;
            $order_date = $order_ids->date_created;
            $single_order = wc_get_order($orderID);

            $product_quantity = array();
            $product_name = array();
            foreach ($single_order->get_items() as $item) {

                echo __('ID zamówienia: ') . $orderID . '<br>';
                echo __('Data zamówienia: ') . $order_date . '<br>';
                echo __('Nazwa produktu: ') . $item->get_name() . '<br>';
                echo __('Ilość: ') . $item->get_quantity() . '<br><br><br>';

                $product_quantity[] = $item->get_quantity();
                $product_name[] = $item->get_name();

            }
            $array_combine = array_combine($product_name, $product_quantity);
            foreach ($array_combine as $key => $single) {
                echo "$key is $single </br>";
            }
           /* I want here count all sold products from last week, not divide for specific order  */

        }


    } else {
        return;


    }

    ob_flush();
} /*-- END MAIN FOREACH */


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