我正在帮助妈妈为她在丹麦的商店创建网站。 一切正常,但现在我遇到了问题。 我需要能够在订单完整的电子邮件中创建一个自定义字段,该字段显示跟踪和跟踪编号,我已经在管理订单页面上插入了该字段。到目前为止,我所做的一切都没有成功,因此,我寻求您的帮助。
我添加了一个自定义字段,名为Track & Trace Pakkenr.
(请参见屏幕截图1)
但是问题是在订单完整的电子邮件中(在运输下)(丹麦语{forsendelse
,请参见屏幕截图2)得到此信息
我也是编码的入门者,所以如果您能提供任何帮助或建议,请严格遵循。
答案 0 :(得分:4)
要使此订单自定义字段值显示在电子邮件通知的订单总计表中,请使用以下命令:
add_filter( 'woocommerce_get_order_item_totals', 'insert_custom_line_order_item_totals', 10, 3 );
function insert_custom_line_order_item_totals( $total_rows, $order, $tax_display ){
// Only on emails notifications
if( is_wc_endpoint_url() ) return $total_rows; // Exit
$tracking_label = 'Track & Trace Pakkenr.'; // The tracking label name
$tracking_value = $order->get_meta( $tracking_label ); // Get the tracking value (custom field).
if( empty($tracking_value) ) return $total_rows; // Exit
$new_total_rows = array(); // Initializing
// Loop through total rows
foreach( $total_rows as $key => $value ){
if( 'payment_method' == $key && ! empty($tracking_value) ) {
$new_total_rows['tracking_parcel'] = array(
'label' => $tracking_label,
'value' => $tracking_value,
);
}
$new_total_rows[$key] = $total_rows[$key];
}
return sizeof($new_total_rows) > 0 ? $new_total_rows : $total_rows;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试并可以正常工作。
您将得到类似的东西:
从此:
答案 1 :(得分:0)
您可以在订单电子邮件中添加自定义字段,您需要使用代码中具有 meta_key 的字段键。
/**
* Add a custom field (in an order) to the emails
*/
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['meta_key'] = array(
'label' => __( 'Label' ),
'value' => get_post_meta( $order->id, 'meta_key', true ),
);
return $fields;
}
参考:https://docs.woocommerce.com/document/add-a-custom-field-in-an-order-to-the-emails/
答案 2 :(得分:0)
以下是添加自定义元字段以订购电子邮件的简单但实用的示例
add_filter( 'woocommerce_email_order_meta_fields', 'woocommerce_email_order_meta_fields_func', 10, 3 );
function woocommerce_email_order_meta_fields_func( $fields, $sent_to_admin, $order ) {
$fields['Track_Field'] = array(
'label' => __( 'Track', 'woocommerce' ),
'value' => wptexturize( get_post_meta( $order->id, 'Track_Field', true ) )
);
//... more meta fields goes here
return $fields;
}
在订购后电子邮件表中的电子邮件中:
add_action( 'woocommerce_email_after_order_table', 'woocommerce_email_after_order_table_func' );
function woocommerce_email_after_order_table_func( $order ) {
?>
<h3>Track</h3>
<table>
<tr>
<td>Track Fields </td>
<td><?php echo wptexturize( get_post_meta( $order->id, 'Track_Field', true ) ); ?></td>
</tr>
<!--additional custom meta and HTML code goes here-->
</table>
<?php
}
有关更多帮助,请参见以下链接:Click here