2016-11-24 14 views
0

@danielevigiによって投稿されたコードをWoocommerce New Customer Admin Notification Emailに追加して、新しい顧客登録時に管理者用電子メールを作成しようとしました。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

は、あなたがこの場所でget_user_metaと、ユーザからデータを取得傾けることが

+0

yeapそれは完璧に動作します!私はまだオブジェクトとの混乱を避ける必要があります!確かにありがとう –

0

の作品ホープユーザーのメタデータがデータベースにまだ格納されていないため、$_POSTでポストリクエストからデータを取得できます。たとえば、

$_POST['billing_first_name'];

たぶん、あなたはwoocommerce_created_customerフック、check this answerに電子メールの送信をフックすることができます。

関連する問題