猿问

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

在 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 感谢页面上重新排序?


慕斯709654
浏览 68回答 1
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 pageif ( ! is_wc_endpoint_url('order-received') )    return $total_rows;
随时随地看视频慕课网APP
我要回答