我已经在woocommerce的结帐页面添加了自定义字段。 我想知道如何将此字段添加到订单电子邮件中。我已经搜索并试了好几个小时,所以我希望有人可以帮助我。
这是我用于向结帐页面添加选择字段的代码:
function custom_override_checkout_fields( $fields ) {
$fields['billing']['Plaats'] = array(
'label' => __('Plaats', 'woocommerce'),
'placeholder' => _x('Wij bezorgen alleen in Hoofddorp', 'placeholder', 'woocommerce'),
'required' => true,
'clear' => false,
'type' => 'select',
'slug' => 'Plaats',
'options' => array(
'option_a' => __('Hoofddorp', 'woocommerce' ),
'option_b' => __('Nieuw-Vennep', 'woocommerce' )
)
);
}
我想在电子邮件中添加一个选项(option_a或option_b)。
我也试过这段代码,但它不起作用:
/**
* 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[] = 'Plaats';
return $keys;
}
提前致谢!!
答案 0 :(得分:0)
您需要使用after_woocommerce_pay
挂钩功能将数据保存到数据库中,使用此功能:add_post_meta($post_id, $meta_key, $meta_value, $unique);
保存附加到shop_order帖子的信息。现在,您可以从de数据库获取信息并添加到电子邮件中。
使用:$meta_values = get_post_meta( $post_id, $key, $single );
从数据库中获取信息,并使用挂钩woocommerce_email_order_meta
将您需要的信息放入电子邮件中。
答案 1 :(得分:0)
您在这里缺少的是Plaats
之前的下划线
替换
/**
* 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[] = 'Plaats';
return $keys;
}
使用
/**
* 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[] = '_Plaats';
return $keys;
}
进入子主题的function.php。经过测试并在WooCommerce 3.7上工作