定制WooCommerce订单显示的发货

时间:2019-05-13 作者:Brett

我正在使用以下代码更新WooCommerce中购物车和结帐页面上的发货文本

/* Change Text for Shipping message when shipping is $0.00 AND remove the "Shipping" text
*********************************************************************************************/

add_filter( \'woocommerce_cart_shipping_method_full_label\', \'add_free_shipping_label\', 10, 2 );
function add_free_shipping_label( $label, $method ) {
    if ( $method->cost == 0 ) {
        $label = \'<strong>$0.00</strong>\'; //not quite elegant hard coded string
    } else {
        $label = preg_replace( \'/^.+:/\', \'\', $label );
    }
    return $label;
}
它在那里正常工作,但在感谢和确认电子邮件上,它显示了“发货”一词,因为发货是0.00美元(免费)。

修改装运部分的感谢和确认电子邮件上的装运输出的过滤器是什么?

1 个回复
最合适的回答,由SO网友:LoicTheAztec 整理而成

主要使用两种过滤器:

1) 过滤器woocommerce_order_shipping_to_display 位于get_shipping_to_display() 方法,由使用get_order_item_totals() 显示发货订单总行的方法:

add_filter( \'woocommerce_order_shipping_to_display\', \'customize_order_shipping_to_display\', 10, 3 );
function customize_order_shipping_to_display( $shipping, $order, $tax_display ){
    // Your code to filter displayed shipping

    return $shipping;
}
2)或过滤器woocommerce_get_order_item_totals 位于get_order_item_totals() 用于显示订单总行数的方法:

add_filter( \'woocommerce_get_order_item_totals\', \'customize_order_item_totals\', 10, 3 );
function customize_order_item_totals( $total_rows, $order, $tax_display ){
    // You can make changes below
    $total_rows[\'shipping\'][\'label\'] = __( \'Shipping:\', \'woocommerce\' ); // The row shipping label
    $total_rows[\'shipping\'][\'value\'] = $order->get_shipping_to_display( $tax_display ); // The row shipping value

    return $total_rows;
}
代码进入函数。活动子主题(或活动主题)的php文件。