为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕斯709654 2023-09-22 14:48:14
在 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 感谢页面上重新排序?
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

以下内容将仅在 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;


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信