2016-11-24 1 views
0

Я попытался доработать код, отправленный @danielevigi, по адресу Woocommerce New Customer Admin Notification Email, чтобы создать электронное письмо администратора при регистрации нового клиента.Woocommerce новый клиент administartion уведомление по электронной почте с большим количеством полей

Я хотел бы добавить к электронной почте не только $ 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; 

Вы можете прочитать больше об этой функции here

Надеется, что это работает

+0

yeap работает отлично! Я все же должен избегать путаницы с объектами! Спасибо большое –

0

Вы не можете получить данные от пользователя с get_user_meta в этом месте, поскольку метаданные для пользователя еще не сохранены в базе данных, вы можете захватить данные из почтового запроса $_POST, например:

$_POST['billing_first_name'];

Может быть, вы можете подключить посыл сообщения электронной почты в woocommerce_created_customer крюке, check this answer.

Смежные вопросы