【问题标题】:Change sorting of WooCommerce My account customer orders更改 WooCommerce 我的帐户客户订单的排序
【发布时间】:2019-10-09 18:07:17
【问题描述】:

在 WooCommerce 中,客户可以登录他们的帐户并查看订单历史记录。默认情况下,订单首先显示最新的订单日期。

我想扭转这种局面,所以日期最早的顺序首先显示。

我在模板文件woocoommerce/myaccount/orders.php 文件中找不到任何地方可以从 ASC/DESC 更改排序。

<table class="woocommerce-orders-table woocommerce-MyAccount-orders shop_table shop_table_responsive my_account_orders account-orders-table">
    <thead>
        <tr>
            <?php foreach ( wc_get_account_orders_columns() as $column_id => $column_name ) : ?>
                <th class="woocommerce-orders-table__header woocommerce-orders-table__header-<?php echo esc_attr( $column_id ); ?>"><span class="nobr"><?php echo esc_html( $column_name ); ?></span></th>
            <?php endforeach; ?>
        </tr>
    </thead>

    <tbody>
        <?php foreach ( $customer_orders->orders as $customer_order ) :

有什么方法可以改变循环以首先显示最旧日期的订单?

【问题讨论】:

    标签: php wordpress sorting woocommerce orders


    【解决方案1】:

    过滤器挂钩woocommerce_my_account_my_orders_query 允许将'order' 参数更改为ASC(升序),从而更改“我的帐户”客户订单列表上的排序行为:

    add_filter( 'woocommerce_my_account_my_orders_query', 'my_account_orders_query_change_sorting' );
    function my_account_orders_query_change_sorting( $args ) {
        $args['order'] = 'ASC'; // Default is 'DESC'
    
        return $args;
    }
    

    代码在您的活动子主题(或活动主题)的functions.php 文件中。经过测试和工作。

    【讨论】:

    • 如果我想通过从下拉列表中选择选项来为用户提供选项,那么我该如何实现呢?我尝试了更多来做到这一点,但我没有完成它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2019-08-08
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多