我正在使用woocommerce
(免费插件)..我正在尝试在结算字段中添加一个自定义字段..
这里是:
// ADDED HOW YOU GOT TO KNOW ABOUT OUR SERVICE FIELD
add_filter( 'woocommerce_checkout_fields' , 'About_Our_Service' );
// Our hooked in function - $fields is passed via the filter!
function About_Our_Service( $fields ) {
$fields['billing']['billing_meat'] = array(
'label' => __('How you Got to Know About Our Service?', 'woocommerce'),
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => false,
'clear' => false,
'type' => 'select',
'options' => array(
'google-ads' => __('Google', 'woocommerce' ),
'google-search' => __('Yahoo', 'woocommerce' ),
'warrior-forum' => __('Bing', 'woocommerce' ),
'facebook' => __('Facebook', 'woocommerce' ),
'other' => __('Other', 'woocommerce' ),
)
);
return $fields;
}
问题是:我没有在我的邮件中获取已添加到结算字段的自定义字段的值。已经使用woocommerce
的任何人都可以帮我这个...?
我已经创建了一些自定义字段,这些字段已添加到结帐中(但这些字段未随核心字段一起添加),对于这些字段,我可以在邮件中获取值..
通过ay,我检查了这个thread:但没有太多关于邮件的信息..
请有人看看这个......
答案 0 :(得分:1)
对于未来的读者,自定义结算/发货字段将保存为订单发布的后置元数据。因此,通常,您可以使用典型的WordPress get_post_meta()
函数检索它们。
但是在WooCommerce 2.2中,您不需要,因为您可以将字段名称直接传递给WC将在电子邮件中显示为列表的字段数组:
// pre-WooCommerce 2.3
function kia_email_order_meta_keys( $keys ) {
$keys['Some field'] = '_some_field';
return $keys;
}
add_filter('woocommerce_email_order_meta_keys', 'kia_email_order_meta_keys');
此方法已在2.3版中弃用,可能因此翻译可能会更好。从2.3开始,您需要定位不同的过滤器并发送略有不同的数据。
// WooCommerce 2.3+
function kia_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['some_field'] = array(
'label' => __( 'Some field', 'my-plugin-textdomain' ),
'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 );
上写了一个教程
答案 1 :(得分:0)
我相信这个答案,在法典中专门用于此目的:
http://wcdocs.woothemes.com/snippets/add-a-custom-field-in-an-order-to-the-emails
我自己没有实现这个,但它可能是你最好的镜头。