向新Woocomerce帐户电子邮件显示客户名和用户元

时间:2017-03-27 07:16:48

标签: php wordpress forms woocommerce user-data

我希望获得新的注册人名,并将其显示在我的电子邮件模板中:

$firstname = get_user_meta($userid,'first_name',true);
echo '<pre>';
print_r($firstname);
echo '</pre>'

但它没有返回价值。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:2)

您可以使用用户ID尝试get_userdata() wordpress功能,以获取用户对象。使用此用户对象,您可以通过这种方式获取所有其他数据:

$user_data = get_userdata( $userid );
echo 'Username: ' . $user_data->user_login . '<br>';
echo 'First name: ' . $user_data->first_name . '<br>';
echo 'Last name: ' . $user_data->last_name . '<br>';
echo 'User roles: ' . implode(', ', $user_data->roles) . '<br>';
echo 'User ID: ' . $user_data->ID . '<br>';

// To look at the available User raw data:
echo '<pre>'; print_r($user_data); echo '</pre>';

// To look at the available User raw Meta data
echo '<pre>'; print_r(get_post_meta( $userid )); echo '</pre>';
  

要获取名字姓氏,,您的注册表单需要另外包含2个字段

对于其他电子邮件通知,一旦创建了一个订单,您就可以轻松地从订单ID中获取此数据:

// In case that you have only the $order object
if(empty($order_id)) 
    $order_id = $order->id;

$customer_id = get_post_meta( $order_id, '_customer_user', true);
$billing_first_name = get_post_meta( $order_id, '_billing_first_name', true);
$billing_last_name = get_post_meta( $order_id, '_billing_last_name', true);

// Displaying "First name"
echo 'First name: '. $billing_first_name;

答案 1 :(得分:1)

问题在于如何创建用户,这是我创建用户的代码:

$user = wc_create_new_customer($email,$email,$password);

为了解决这个问题,我将代码更改为:

$new_customer_data = apply_filters( 'woocommerce_new_customer_data', array(
    'user_login'  => $email,
    'user_pass' => $password  ,
    'first_name'  =>  $firstname ,
    'last_name' =>  $lastname ,
    'user_email'  =>$email ,
    'display_name'  =>  $firstname . ' ' . $lastname  ,
    'nickname'  => $firstname . ' ' . $lastname ,
    'role'    => 'customer'
) );
$user_id = wp_insert_user( $new_customer_data );