使用WC_Report_Sales_By_Date
功能可以轻松获取WooCommerce销售报告,但我需要一个调度程序以24小时的间隔获取CSV格式的每日报告并保存在本地存储库中。
答案 0 :(得分:0)
您想要创建wp_schedule_event
。这些可以每小时,每天两次或每天(或自定义间隔)发射。
例如,将其添加到您的functions.php
文件中 - 然后应该每天午夜左右触发vnmReport_createDailyReport
函数:
<?php
function vnmActivationFunction() {
$midnight = strtotime(date('Y-m-d') . ' 00:00:00');
if (!wp_next_scheduled('my_hourly_event')) {
wp_schedule_event($midnight, 'daily', 'vnmReport_saveDailyReport');
}
}
add_action('wp', 'vnmActivationFunction');
function vnmReport_createDailyReport() {
include_once( WC()->plugin_path() . '/includes/admin/reports/class-wc-admin-report.php' );
include_once( WC()->plugin_path() . '/includes/admin/reports/class-wc-report-sales-by-date.php' );
$report = new WC_Report_Sales_By_Date();
$results = $report->get_report_data();
}
add_action('vnmReport_DailyReport', 'vnmReport_createDailyReport');
?>
$results
将成为stdClass
对象,然后您可以执行创建CSV所需的任何操作,然后将其输出/保存到磁盘。
值得注意的是wp_schedule_event
使用wp_cron
,它的传播方式与传统的crontab相同;它会在下次有关于网站的活动时立即触发;因此,如果它设置为每天午夜开火,但是在您的网站(前端或后端)没有任何活动,直到凌晨1点,事件将被解雇。