2016-11-24 59 views
0

我曾尝试进一步发展发表@danielevigi代码为Woocommerce New Customer Admin Notification Email创建一个管理员的电子邮件时,新用户注册客户administartion电子邮件通知。Woocommerce新的更多的领域

我想添加到电子邮件不仅$ USER_LOGIN,但存在登记表如下领域:

function new_customer_registered_send_email_admin($user_login) { 
    ob_start(); 
    do_action('woocommerce_email_header', 'New customer registered'); 
    $email_header = ob_get_clean(); 
    ob_start(); 
    do_action('woocommerce_email_footer'); 
    $email_footer = ob_get_clean(); 

    $billing_first_name = ''; 
    $billing_last_name = ''; 
    $billing_phone = ''; 
    $w55 = ''; 

    $user_id = get_user_by('login', $user_login); 
    if ($user_id) 
    { 
    $billing_first_name = get_user_meta($user_id, 'billing_first_name', true); 
    $billing_last_name = get_user_meta($user_id, 'billing_last_name', true); 
    $billing_phone = get_user_meta($user_id, 'billing_phone', true); 
    $w55_card = get_user_meta($user_id, 'w55', true); 
     if($w55_card === 'y') 
     { 
      $tessera = 'Voglio iscrivermi a Wision55'; 
     } 
     else 
     { 
      $tessera = ''; 
     } 
    } 

    woocommerce_mail(
    get_bloginfo('admin_email'), 
    get_bloginfo('name').' - New customer registered', 
    $email_header. 

    ' 
    <p>The user '.esc_html($user_login).' is registered to the website</p>' . 
    '<p>Nome: <span style="font-size:16px; font-weight: bold;">' .$billing_first_name .'<span></p> 
    <p>Cognome: <span style="font-size:16px; font-weight: bold;">' .$billing_last_name .'<span></p> 
    <p>Telehone: <span style="font-size:16px; font-weight: bold;">' .$billing_phone .'<span></p> 
    <p>Tessera W55: <span style="font-size:16px; font-weight: bold;">' .$tessera .'<span></p>' 
    .$email_footer 
); 
} 
add_action('new_customer_registered', 'new_customer_registered_send_email_admin'); 

但是电子邮件与空字段进行发送。我不知道我做错了什么...任何人都可以帮助我?

回答

1

当使用get_user_by,回报是成功的WP_User对象。

可以检索与

$user = get_user_by('login', $user_login); 
$user_id = $user->ID; 

用户ID,您可以了解更多关于此功能here

希望工程

+0

它完美的工作!我仍然必须避免与物体混淆!的确如此 –

0

你不能从用户与get_user_meta在这个地方检索数据,由于用户的元数据尚未存储在数据库中,因此您可以通过$_POST获取帖子请求中的数据,例如:

$_POST['billing_first_name'];

也许你可以连接电子邮件的发送中woocommerce_created_customer钩,check this answer