Php 结帐后更改WooCommerce订单上的特定装运方式标题
我的发货信息中有一些自定义字段未在woocommerce->orders->order#下的订单发货信息中“正确”显示。购物车和结帐页面通过更改标签的php代码是不同的。cart image1是shipping methods image2中定义的原始\core标签,它将被发送到订单信息页面。我希望显示结账信息,如图3所示。图4是订单信息下的当前外观。下面是我用来更改结帐和电子邮件上的发货信息的代码Php 结帐后更改WooCommerce订单上的特定装运方式标题,php,wordpress,woocommerce,orders,shipping-method,Php,Wordpress,Woocommerce,Orders,Shipping Method,我的发货信息中有一些自定义字段未在woocommerce->orders->order#下的订单发货信息中“正确”显示。购物车和结帐页面通过更改标签的php代码是不同的。cart image1是shipping methods image2中定义的原始\core标签,它将被发送到订单信息页面。我希望显示结账信息,如图3所示。图4是订单信息下的当前外观。下面是我用来更改结帐和电子邮件上的发货信息的代码 // Adjusting order and emails "shipping via
// 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;
}
//调整订单和电子邮件“shipping via”以显示自定义承运人名称和编号
添加过滤器(“woocommerce\u order\u shipping\u to\u display\u shipped\u via”、“wdo\u filter\u order\u shipping\u to\u display\u shipped\u via”,10,2);
功能wdo_过滤器_订单_发货_至_显示_发货_通过($shipped_通过,$order){
$carrier\u name=$order->get\u meta('carrier\u name');//获取承运人名称
//针对“定制承运人”装运方式定义了“承运人名称”的订单
如果($carrier\u name){
$carrier\u number=$order->get\u meta('carrier\u number');//获取承运人编号
$shipped_via=''.sprintf('via自定义承运商:%s(%s)'woocommerce'),$Carrier_name,$Carrier_number)。'';
}
返回$shipped_via;
}
购物车页面原始标签:
在商业/设置/配送下定义:
结帐发货信息以及我想在订单下显示的内容:
电子商务管理>订单>编辑订单下的配送信息:
当客户下订单时,使用以下选项将“自定义承运人”装运方式的名称和标题与承运人名称和编号一起设置,而不是使用上一个问题答案中的代码:
// Custom shipping label For Custom Carier with carrier name and number
add_action( 'woocommerce_checkout_create_order_shipping_item', 'action_wc_checkout_create_order_shipping_item', 10, 4 );
function action_wc_checkout_create_order_shipping_item( $item, $package_key, $package, $order ) {
if ( isset($_POST['carrier_name']) && ! empty($_POST['carrier_name']) ) {
// Get carrier number
$carrier_number = isset($_POST['carrier_number']) && ! empty($_POST['carrier_number']) ? '(' . sanitize_text_field($_POST['carrier_number']) . ')' : '';
$item->set_method_title( sprintf( '%s: %s %s', __("Custom Carrier", "woocommerce"), sanitize_text_field($_POST['carrier_name']), $carrier_number ) );
}
}
代码进入活动子主题(或活动主题)的functions.php文件。它应该有效
因此,定制承运人运输方式将显示在管理订单、客户订单(订单接收和订单查看)和电子邮件通知中的任何位置
注意:确保'carrier\u name'
和'carrier\u number'
是结帐页面上字段的正确输入名称