Я хочу получить имя нового владельца и отобразить его в своем шаблоне электронной почты:
$firstname = get_user_meta($userid,'first_name',true);
echo '<pre>';
print_r($firstname);
echo '</pre>'
Но это не возвращает значение. Есть идеи?
Спасибо
Вы могли бы попробовать get_userdata()
Функция WordPress с идентификатором пользователя, чтобы получить объект пользователя. С помощью этого пользовательского объекта вы можете получить все остальные данные следующим образом:
$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>';
Чтобы получить Имя а также Фамилия, Ваша регистрационная форма должна иметь дополнительно 2 поля
Для других уведомлений по электронной почте, как только заказ был создан один раз, вы можете легко получить из идентификатора заказа следующие данные:
// 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;
Проблема заключалась в том, как создается пользователь, и это мой код для создания пользователя:
$user = wc_create_new_customer($email,$email,$password);
Чтобы исправить это, я изменяю код на:
$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 );