在woocommerce_email_customer_details或电子邮件的任何其他部分添加新字段

时间:2015-12-08 19:46:09

标签: php wordpress email woocommerce

好的,所以我正在为客户建立一个woocommerce网站,他们喜欢它,但唯一的问题是他们需要一个客户编号才能收到所有新订单的电子邮件。他们愿意为每个用户填写此信息,但我无法了解如何使用新订单电子邮件自动发送此信息。

我正在使用WP - Members插件向用户个人资料添加自定义信息,并创建了一个名为Customer#的字段(选项名称:customer_number)我无法想象如何让woocommerce将此数字添加到电子邮件中他们下订单时发送给管理员

我尝试了很多不同的东西,看起来它应该只是一个钩子,但我不知道如何获取值或者无法以任何方式解决这个问题。

我看了看,这是我最后的手段,我对PHP和钩子的最小理解可能是我的垮台,所以如果以这种方式指导我,请非常清楚。

我不会放弃这个问题,所以我希望有人可以帮忙!

1 个答案:

答案 0 :(得分:4)

我们可以从我的tutorial on customizing the checkout fields进行调整,以在电子邮件中显示一些额外的信息:

function kia_display_email_order_user_meta( $order, $sent_to_admin, $plain_text ) {
    $user_id = $order->customer_user;
    if( ! empty( $user_id ) && ( $data = get_user_meta( $user_id, '_some_user_meta', true ) ) != '' ){
        if( $plain_text ){
            echo 'The user data for some field is ' . $data;
        } else {
            echo '<p>The user data for <strong>some field</strong> is ' . $data . '</p>';
        }
    }    
}
add_action('woocommerce_email_customer_details', 'kia_display_email_order_user_meta', 30, 3 );

在这种情况下,我们会用get_post_meta()替换我的教程的get_user_meta() ....并且知道用户ID存储在{的$order->customer_id属性中{1}}对象。