我正在尝试对给定卖家的销售情况进行每周汇总(我有一家多供应商的商店,我使用YITH多供应商插件)生成一个每周PDF,其中包含每个卖家的订单摘要,但只能下载其中的内容根据特定的订单,我写出了售出的商品数量,然后转到下一个商品。我需要完成上周所有产品的总销售摘要,例如 产品A 50个 产品B 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 */
?>