Как получить номер телефона текущего пользователя

23 дек. 2015 г., 12:06:57
Просмотры: 23.6K
Голосов: 1

Я пытаюсь сделать так:

<?php 
// Получаем номер телефона текущего пользователя
$phone = get_user_meta($current_user->ID,'phone_number',true); 
echo $phone; 
?>

Но это не работает

3
Комментарии

Что вы уже пробовали для отладки? Проверяли ли вы, например, вводимые данные?

birgire birgire
23 дек. 2015 г. 12:12:20

1. Проверьте, введен ли номер телефона в профиле пользователя 2. Проверьте, есть ли номер телефона в базе данных 3. Проверьте, правильный ли у вас meta_key 4. Используйте Echo для вывода ID пользователя, чтобы убедиться, что он существует и корректен 5. Запишите номер телефона и после загрузки страницы откройте инструменты разработчика, выберите исходный код, нажмите ctr+F и введите ваш номер - возможно, он просто выводится в скрытом элементе или его трудно заметить

N00b N00b
23 дек. 2015 г. 12:21:25

"Не работает" - это недостаточно информативно. У вас включена отладка? Получаете ли вы какие-либо ошибки? Уверены ли вы, что $current_user является валидным объектом пользователя и доступен в текущей области видимости? Точно ли поле называется phone_number?

TheDeadMedic TheDeadMedic
23 дек. 2015 г. 13:25:04
Все ответы на вопрос 5
0
<?php
  // цифра 9 будет ID пользователя
  $all_meta_for_user = get_user_meta( 9 );
  print_r( $all_meta_for_user );

// найдем нужный ключ
Array ( 
    [first_name] => Array ( [0] => Tom ) 
    [last_name] => Array ( [0] => Auger) 
    [nickname] => Array ( [0] => tomauger ) 
    [description] => etc.... 
)

// сохраним его в переменной
$last_name = $all_meta_for_user['last_name'][0];

// выведем значение
echo $last_name;
23 дек. 2015 г. 12:22:28
0

Если вам не нужно перебирать всех пользователей, а требуется только получить метаданные phone_number текущего пользователя, попробуйте следующий код:

$current_user_id = get_current_user_id();
$phone = get_user_meta($current_user_id,'phone_number',true);
echo $phone;

ПРИМЕЧАНИЕ: Этот код будет работать только для авторизованных пользователей.

Также проверьте мета-ключ phone_number. По умолчанию в WordPress такого мета-ключа, кажется, нет.

23 дек. 2015 г. 13:26:51
0

В WordPress есть сокращение для получения ID текущего пользователя, которое вам, скорее всего, нужно — get_current_user_id(). Используя его, вы сможете получить необходимую информацию. Ниже приведен пример кода, который проверяет возвращаемые значения функций и применяет условную логику на случай, если она вам понадобится:

$uid = get_current_user_id();
if (!empty($uid)) {
  $phone = get_user_meta($uid,'phone_number',true); 
  if (!empty($phone)) {
    echo $phone;
  } else {
    echo 'У пользователя нет номера телефона в базе данных';
  }
} else {
  echo 'Пользователь не авторизован';
}
23 дек. 2015 г. 17:57:08
0
<?php $phone = get_user_meta($current_user->ID,'phone',true); echo $phone;?>

использовано "phone", а не "phone_number"

24 дек. 2015 г. 06:36:24
0
// Получаем номер телефона пользователя из метаполя billing_phone
$phone = get_user_meta($user_id, 'billing_phone', true);
// Выводим номер телефона
echo $phone;
3 февр. 2020 г. 15:03:58