2017-03-27 2 views
2

Je veux obtenir le nouveau inscrit le prénom et l'afficher sur mon modèle e-mail:Affichage Prénom client et Meta utilisateur pour Nouvel e-mail de compte woocommerce

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

Mais il ne retourne pas la valeur. Des idées?

Merci

+0

appliquer une print_r/var_dump sur $ userid aussi et voir ce qu'il renvoie –

+0

il retourne l'ID utilisateur du registrant, il renvoie l'ID correct – Elland

Répondre

1

La question était de savoir comment l'utilisateur est créé et voici mon code pour créer l'utilisateur:

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

Pour résoudre ce problème, je change le code:

$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); 
2

Vous pouvez essayer get_userdata() fonction avec l'ID wordpress utilisateur, pour obtenir l'objet utilisateur. Avec cet objet utilisateur, vous pouvez obtenir toutes les autres données de cette façon:

$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>'; 

Pour obtenir le Prénom et Nom, votre formulaire enregistrement doivent avoir plus que 2 champs


Pour la notification d'autres emails, une fois qu'une commande a été créée une fois, vous pouvez obtenir facilement à partir de l'ID de commande ces données:

// 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; 
+0

mais la chose ici est que l'email est déclenché lors de l'enregistrement de l'utilisateur pas à la caisse, donc il n'y a pas encore de commande créée – Elland

+0

je l'ai fait obtenir l'objet user_data de $, mais quand j'ai essayé d'utiliser cette $ user_data-> prenom il ne marche pas retourner une valeur – Elland

+0

[data] => stdClass Object ( [ID] => 87 [user_login] => email [ User_Pass] => $ P $ BrO7b5bsgMK4fjJpL1OspyPV35rBsm/ [user_nicename] => [user_email] => emai [user_url] => [user_registered] => 28/03/2017 07:32:37 [user_activation_key] => [user_status] => 0 [display_name] => – Elland