php - WooCommerce 小部件 - 从日期到日期的订单列表

标签 php sql wordpress woocommerce orders

我想创建一个仪表板小部件来显示当月上半年的订单,这是我的代码:

add_action( 'wp_dashboard_setup', 'register_my_dashboard_widget' );
function register_my_dashboard_widget() {
    wp_add_dashboard_widget(
    'my_dashboard_widget',
    'Ordiers',
    'my_dashboard_widget_display'
 );

}

function my_dashboard_widget_display() {
global $wpdb;

$date_from = '2016-09-01';
$date_to = '2016-09-15';
$post_status = implode("','", array('wc-processing', 'wc-completed') );

$result = $wpdb->get_results( "SELECT * FROM $wpdb->posts 
        WHERE post_type = 'shop_order'
        AND post_date BETWEEN '{$date_from}  00:00:00' AND '{$date_to} 23:59:59'
    ");

echo "<pre>";
print_r($result);
}

如何给出列表样式?

最佳答案

要给出列表样式,您需要在循环中迭代每个订单。您将回显 <ul> 循环外的 HTML 标签和 <li> 循环内的 HTML 标记。我已在您的查询中添加了所需的订单状态。

我对你的代码做了一些更改:

function my_dashboard_widget_display() {
    global $wpdb;

    $date_from = '2016-09-01';
    $date_to = '2016-09-15';

    $result = $wpdb->get_results( "
        SELECT * FROM $wpdb->posts
        WHERE post_type = 'shop_order'
        AND post_status = 'wc-completed' OR post_status = 'wc-processing'
        AND post_date BETWEEN '{$date_from}  00:00:00' AND '{$date_to} 23:59:59'
    " );

    echo '<ul>';

    foreach($result as $value) {

        // Getting WC order object
        $order = wc_get_order( $value->ID );

        // For example displaying order number and status
        echo '<li>Order #'.$order->id. ' with status ' . $order->get_status() . '</li>';
    }
    echo '</ul>';
}

代码位于事件子主题(或主题)的 function.php 文件中或任何插件文件中。

此代码经过测试并且可以工作

关于php - WooCommerce 小部件 - 从日期到日期的订单列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39535470/

相关文章:

使用没有子查询的多个 JOINS 的 SQL 查询

php - PayPal IPN 总是返回 INVALID,即使我按照 PayPal 示例代码来查找单词?

mysql - 在范围表中进行高效查找

php - 在 php 中获取具有相同用户 ID 的所有行值?

php - 是否可以将这两个 SQL 语句合二为一?

css - 在重力表选项字段中隐藏价格

jquery - 展开类似于谷歌搜索图像布局的内容?

jquery - 如何通过jquery在wordpress循环中使用工具提示

php - 简化 Laravel 更新多行的 updateOrCreate 方法

PHP显示错误