Wordpress 如何打印由';WooCommerce定制订单数据';电子邮件插件
我安装了WooCommerce自定义订单数据插件,以便在结帐完成后创建自定义字段。在自定义插件中,我使用woocomerce\u Thankyu-hook从订单中收集一些数据,并将其保存为$order->custom->officer\u text的字符串 我需要将自定义数据打印到管理员新订单邮件中,但我不知道如何执行Wordpress 如何打印由';WooCommerce定制订单数据';电子邮件插件,wordpress,woocommerce,Wordpress,Woocommerce,我安装了WooCommerce自定义订单数据插件,以便在结帐完成后创建自定义字段。在自定义插件中,我使用woocomerce\u Thankyu-hook从订单中收集一些数据,并将其保存为$order->custom->officer\u text的字符串 我需要将自定义数据打印到管理员新订单邮件中,但我不知道如何执行 echo $order->custom->officer_text 在admin-new-order-mail.php中不起作用 我可以在感谢页面上打印数据,所以我
echo $order->custom->officer_text
在admin-new-order-mail.php中不起作用
我可以在感谢页面上打印数据,所以我知道,它就在那里。但在电子邮件模板中没有运气
我如何让它工作
编辑:
我忘了发布自定义插件的代码
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
global $woocommerce;
// Action after order is submitted
add_action('woocommerce_thankyou', 'woocommerce_officer_data');
// function to populate a custom field in $order
function woocommerce_officer_data($order_id) {
$order = new WC_Order( $order_id );
// create custom field
WC_CustomOrderData::extend($order);
$order->custom->officer_text = '';
$officer = '';
// get date and format
$date = DateTime::createFromFormat('Y-m-d H:i:s', $order->order_date);
$orderdate = $date->format('d.m.Y');
$ordertime = $date->format('H:i:s');
$officer .= '##Officer-START##<br>Datum:' . $orderdate . '<br>Zeit:' . $ordertime . '<br>';
$officer .= $order_id . '|' . $order_id . '|' . $order->billing_first_name . '|' . $order->billing_last_name . '|';
$officer .= $order->billing_country . '|' . $order->billing_postcode . '|' . $order->billing_city . '|' ;
$officer .= $order->shipping_address_1 . '|' . $order->billing_email . '|' . $order->billing_phone . '|' ;
$order->custom->officer_text = $officer;
$order->custom->save();
echo $order->custom->officer_text;
}
}
我很高兴,我已经走了这么远,因为我不是一个真正的程序员,但我不知道如何控制我的第一个小插件的输出。因此,如果有人能向我展示一个“最佳实践”解决方案,那就太好了。对于将来搜索的任何人来说,这将在任何带有
woocommerce\u email\u order\u meta
hook的电子邮件模板中打印某些元密钥
\u my_field_1
和\u my_field_2
是您试图显示的订单自定义数据的元键。我不熟悉自定义订单数据插件,但OP的元键可能是\u officer\u text
。在我的示例中,我将使用meta键\u some\u字段
/**
* Add the field to order emails
**/
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
function my_custom_checkout_field_order_meta_keys( $keys ) {
$keys['Some Field'] = '_some_field;
return $keys;
}
对于WooCommerce的2.3及更新版本:
// WooCommerce 2.3+
function kia_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['some_field'] = array(
'label' => __( 'Some field' ),
'value' => get_post_meta( $order->id, '_some_field', true );
);
return $fields;
}
add_filter('woocommerce_email_order_meta_fields', 'kia_email_order_meta_keys', 10, 3 )
)
// WooCommerce 2.3+
function kia_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['some_field'] = array(
'label' => __( 'Some field' ),
'value' => get_post_meta( $order->id, '_some_field', true );
);
return $fields;
}
add_filter('woocommerce_email_order_meta_fields', 'kia_email_order_meta_keys', 10, 3 )