更改通过 WooCommerce 订单和电子邮件中的文本发送特定运送方式
Changing shipped via text in WooCommerce orders and emails for specific shipping method
我正在尝试更改电子邮件和订单信息中的发货方式。我有一个自定义单选按钮,其中包含仅在结帐页面上填写的客户字段。目前 WooCommerce 使用单选按钮的标签而不是字段。
我希望仅在客户电子邮件和 woocommerce -> 订单 -> 订单号下的订单信息中包含这些字段。
我可以将其更改为文本,但不知道如何在新行中包含自定义字段,即 carrier_name
和 carrier_number
- 这些是唯一应该显示在WooCommerce 下的电子邮件和订单信息。
carrier_name
和 carrier_number
只能从结帐页面获得,不能从购物车页面获得。当未选择 'Custom Carrier' 时,它应该在电子邮件中打印正确的送货方式,我认为它是默认的,但只是想包括要求。
第三张图片显示的是woocommerce > orders > order#下的订单信息,这个应该只显示carrier_name
and carrier_number
.
我的代码:
//adjusting emails to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_remove_shipping_label_thnakyou_page_cart', 10, 2 );
function wdo_remove_shipping_label_thnakyou_page_cart($label, $method) {
$shipping_label = get_post_meta($order->id, 'carrier_name') ;
$shipping_label = 'Just Test!!!';
return $shipping_label;
}
1 我要显示的承运人信息,在自定义承运人下
2 我目前可以通过电子邮件发送的内容
3 来自 woocommerce 的订单信息 -> 订单 -> 订单#
4 没有我输入的代码的订单信息,我使用 php 代码更改了结帐页面上不同于购物车页面的标签“自定义承运人(输入详细信息下一步页)”到结帐页面“自定义承运人”:
您的代码中存在一些错误,例如错误的函数参数……
请尝试以下操作:
// Adjusting order and emails "shipping via" to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_filter_order_shipping_to_display_shipped_via', 10, 2 );
function wdo_filter_order_shipping_to_display_shipped_via( $shipped_via, $order ) {
$carrier_name = $order->get_meta('carrier_name'); // Get carrier name
// Targeting orders with defined "carrier name" for "Custom Carrier" shipping method
if ( $carrier_name ) {
$carrier_number = $order->get_meta('carrier_number'); // get carrier number
$shipped_via = ' <small class="shipped_via">' . sprintf( __( 'via Custom Carrier: %s (%s)', 'woocommerce' ), $carrier_name, $carrier_number ) . '</small>';
}
return $shipped_via;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。
重要说明(更新):
答案代码取代了这个答案,因为它处理了所有地方的变化 包括管理编辑订单页面 并且它是一个非常 轻量级的解决方案.
我正在尝试更改电子邮件和订单信息中的发货方式。我有一个自定义单选按钮,其中包含仅在结帐页面上填写的客户字段。目前 WooCommerce 使用单选按钮的标签而不是字段。
我希望仅在客户电子邮件和 woocommerce -> 订单 -> 订单号下的订单信息中包含这些字段。
我可以将其更改为文本,但不知道如何在新行中包含自定义字段,即 carrier_name
和 carrier_number
- 这些是唯一应该显示在WooCommerce 下的电子邮件和订单信息。
carrier_name
和 carrier_number
只能从结帐页面获得,不能从购物车页面获得。当未选择 'Custom Carrier' 时,它应该在电子邮件中打印正确的送货方式,我认为它是默认的,但只是想包括要求。
第三张图片显示的是woocommerce > orders > order#下的订单信息,这个应该只显示carrier_name
and carrier_number
.
我的代码:
//adjusting emails to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_remove_shipping_label_thnakyou_page_cart', 10, 2 );
function wdo_remove_shipping_label_thnakyou_page_cart($label, $method) {
$shipping_label = get_post_meta($order->id, 'carrier_name') ;
$shipping_label = 'Just Test!!!';
return $shipping_label;
}
1 我要显示的承运人信息,在自定义承运人下
2 我目前可以通过电子邮件发送的内容
3 来自 woocommerce 的订单信息 -> 订单 -> 订单#
4 没有我输入的代码的订单信息,我使用 php 代码更改了结帐页面上不同于购物车页面的标签“自定义承运人(输入详细信息下一步页)”到结帐页面“自定义承运人”:
您的代码中存在一些错误,例如错误的函数参数……
请尝试以下操作:
// Adjusting order and emails "shipping via" to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_filter_order_shipping_to_display_shipped_via', 10, 2 );
function wdo_filter_order_shipping_to_display_shipped_via( $shipped_via, $order ) {
$carrier_name = $order->get_meta('carrier_name'); // Get carrier name
// Targeting orders with defined "carrier name" for "Custom Carrier" shipping method
if ( $carrier_name ) {
$carrier_number = $order->get_meta('carrier_number'); // get carrier number
$shipped_via = ' <small class="shipped_via">' . sprintf( __( 'via Custom Carrier: %s (%s)', 'woocommerce' ), $carrier_name, $carrier_number ) . '</small>';
}
return $shipped_via;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。
重要说明(更新):