2016-11-24 58 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