выгружать готовые заказы от клиентов из woocommerce, в Excel файл
В каталоге не искали? Большинство плагинов экспортируют в Excel/CSV
https://ru.wordpress.org/plugins/search/orders+export/
Видел этот плагин. Мне нужно с полным списком заказанных товаров и все данные покупателя. Артикулы цены и тд
@kw56 Спасибо за помощь, но многие дублируют друг друга. Поищу
Вам по ходу вот этот плагин нужен https://ru.wordpress.org/plugins/order-export-for-woocommerce/
там у них есть видос. На нем примерно на 5-й минуте то что вам надо показывают.
PS а вообще там и написать не особо сложно (если без интерфейса, чисто под себя). Я когда-то тоже что-то похоже писал.
Типа такого будет:
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
function eotefw_tt() {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '№');
$sheet->setCellValue('B1', 'Дата');
$sheet->setCellValue('C1', 'Имя');
$sheet->setCellValue('D1', 'Email');
$sheet->setCellValue('E1', 'ИТОГО');
$sheet->setCellValue('F1', 'Cкидка');
$sheet->setCellValue('G1', 'Позиций');
$sheet->setCellValue('H1', 'Статус');
$sheet->setCellValue('I1', 'ID-товара');
$sheet->setCellValue('J1', 'Стоимость товара');
/* $sheet->setCellValue('E1', 'ID-товара');
$sheet->setCellValue('F1', 'Цена');
$sheet->setCellValue('G1', 'Cкидка');
$sheet->setCellValue('H1', 'ИТОГО');
$sheet->setCellValue('I1', 'Статус');*/
$query = new WC_Order_Query(array('limit' => -1, 'return' => 'ids', 'orderby' => 'date', 'order' => 'DESC',));
$orders_arr = $query->get_orders();
if (!empty($orders_arr)) {
$numrow = 2;
for ($i = 0; $i < count($orders_arr); $i++) {
// https://wp-kama.ru/function/wc_get_order
$order = wc_get_order($orders_arr[$i]); // объект с деталями заказа
$data = $order->get_data();
// var_dump($data);
$email = (string)$data['billing']['email'];
$first_name = (string)$data['billing']['first_name'];
$date_created = $data['date_created']->date('Y-m-d');
$namecell = 'A'.$numrow; $sheet->setCellValue($namecell, $orders_arr[$i]);
$namecell = 'B'.$numrow; $sheet->setCellValue($namecell, $date_created);
$namecell = 'C'.$numrow; $sheet->setCellValue($namecell, $first_name);
$namecell = 'D'.$numrow; $sheet->setCellValue($namecell, $email);
$discount_total = $data['discount_total'];
$namecell = 'F'.$numrow; $sheet->setCellValue($namecell, $discount_total);
$total = $data['total'];
$namecell = 'E'.$numrow; $sheet->setCellValue($namecell, $total);
$status = $data['status'];
$namecell = 'H'.$numrow; $sheet->setCellValue($namecell, $status);
/*echo '<br/>ID: '.$orders_arr[$i];
echo '<br/>Email: '.$email;
echo '<br/>Дата: '.$date_created;
echo '<br/>Имя: '.$first_name;*/
$order_items = $order->get_items(); // объект
$nnn = count($order_items);
foreach($order_items as $item_id => $item) {
// ID элемента можно получить из ключа массива или так:
$item_id = $item->get_id();
// данные элемента заказа в виде массива
$item_data = $item->get_data();
$namecell = 'I'.$numrow; $sheet->setCellValue($namecell, $item_data['product_id']);
$namecell = 'J'.$numrow; $sheet->setCellValue($namecell, $item_data['total']);
$namecell = 'G'.$numrow; $sheet->setCellValue($namecell, $nnn);
/* echo '<br/>Название: '.$item_data['name'];
echo '<br/>ID-товара: '.$item_data['product_id'];
echo '<br/>Цена: '.$item_data['total']; */
if ($nnn > 1) {$numrow++;}
}
$numrow++;
}
}
$writer = new Xlsx($spreadsheet);
$upload_dir = (object)wp_get_upload_dir();
$writer->save( $upload_dir->basedir.'/hello world.xlsx');
}
@icopydoc Благодарю. Я не знаю как этот скрипт применить) А попробовал установить плагин который советуете, а он не активируется, пишет WP All Export — WooCommerce Order Export Add-On Plugin: WP All Export must be installed and activated.
Первый раз за все время такое вижу
WP All Export — WooCommerce Order Export Add-On Plugin: WP All Export must be installed and activated.
Ну так установите и активируйте
https://ru.wordpress.org/plugins/wp-all-export/