向电子邮件添加自定义字段

时间:2014-11-16 17:52:51

标签: php wordpress woocommerce

我已经在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; 
} 

提前致谢!!

2 个答案:

答案 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上工作