自定义 WooCommerce 订单表中的总行数

问题描述 投票:0回答:2

在 WooCommerce 中,我很清楚

woocommerce_get_order_item_totals
过滤器 kook 用于自定义订单总行,例如重新排序。

add_filter( 'woocommerce_get_order_item_totals', 'custom_order_of_from_order_table', 10, 2 );
function woocommerce_get_order_item_totals( $total_rows, $order ) {
    // code here
    
    return $total_rows;
}

我尝试在 WooCommerce 谢谢页面上重新排序总金额中的小计以及总金额下方的付款方式,但没有成功。我的 PHP 知识非常有限,感谢您的帮助。

如何自定义订单表中的总行数,并在 WooCommerce 感谢页面上重新排序?

php wordpress woocommerce hook-woocommerce orders
2个回答
1
投票

以下内容将根据需要在 Woocommerce 上重新排序商品总数,谢谢 (已收到订单) 页面:

add_filter( 'woocommerce_get_order_item_totals', 'reordering_order_item_totals', 10, 3 );
function reordering_order_item_totals( $total_rows, $order, $tax_display = '' ){
    // Only on "order received" thankyou page
    if ( ! is_wc_endpoint_url('order-received') )
        return $total_rows;

    $sorted_items_end  = array('cart_subtotal', 'order_total', 'payment_method');
    $sorted_total_rows = array(); // Initializing

    // Loop through sorted totals item keys
    foreach( $sorted_items_end as $item_key ) {
        if( isset($total_rows[$item_key]) ) {
            $sorted_total_rows[$item_key] = $total_rows[$item_key]; // Save sorted data in a new array
            unset($total_rows[$item_key]); // Remove sorted data from default array
        }
    }

    return array_merge( $total_rows, $sorted_total_rows); // merge arrays
}

代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并有效。


要使其在任何地方都能用于客户订单和电子邮件通知,只需删除:

// Only on "order received" thankyou page
if ( ! is_wc_endpoint_url('order-received') )
    return $total_rows;

0
投票

案例中发生了什么,例如。有COD费,里面的ID不稳定?如果它总是变化,怎么能包含在数组中呢?

© www.soinside.com 2019 - 2024. All rights reserved.