WooCommerce列出畅销产品&分类

时间:2017-04-25 01:13:39

标签: wordpress woocommerce

我正在尝试编写PHP代码,以表格形式按降序列出最畅销商品(数量)和畅销商品类别(总销售额)。

项目|量

类别|销售

我知道我们可以从WooCommerce的Reports屏幕中检索这个,但我需要获取这些值,以便我可以在小部件的WordPress管理面板中显示它们。顺便说一下,我知道如何创建仪表板小部件。

有谁知道如何实现这个?任何帮助表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:1)

您应该查看woocommerce文件并查找WC_Admin_Report。您可以看到一些示例并按照您的需要运行。

我会给你这个例子。

add_action('init', 'reports');

function reports() {


    include_once(WC()->plugin_path().'/includes/admin/reports/class-wc-admin-report.php');
    $wc_report = new WC_Admin_Report();

    $data = $wc_report->get_order_report_data( array(
        'data' => array(
            '_qty' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => 'SUM',
                'name' => 'quantity'
            ),
            '_line_subtotal' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => 'SUM',
                'name' => 'gross'
            ),
            '_product_id' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => '',
                'name' => 'product_id'
            ),
            'order_item_name' => array(
                'type'     => 'order_item',
                'function' => '',
                'name'     => 'order_item_name',
            ),
        ),

        'group_by'     => 'product_id',

        'order_by'     => 'quantity DESC',

        'query_type' => 'get_results',

        'limit' => 20,

        'order_status' => array( 'completed', 'processing' ),
    ) );

    print_r($data);

}

print_r($data);

的示例输出
Array
(
    [0] => stdClass Object
        (
            [quantity] => 4
            [gross] => 140
            [product_id] => 53
            [order_item_name] => Happy Ninja
        )

    [1] => stdClass Object
        (
            [quantity] => 3
            [gross] => 36
            [product_id] => 70
            [order_item_name] => Flying Ninja
        )

    [2] => stdClass Object
        (
            [quantity] => 1
            [gross] => 10
            [product_id] => 50
            [order_item_name] => Patient Ninja
        )

)

您拥有数据,可以让您启动并运行Item | Quantity