Как вывести дату регистрации пользвателя wordpress во внешнем интерфейсе
Подскажите, пожалуйста, как для внешнего интерфейса вывести дату регистрации пользователя?
Есть страница автора, там вывел базовую информацию, но не могу вывести дату когда человек был зарегистрирован на сайте.
Все коды пробовал, интернет облазил - выводит или сегодняшную дату, или 01.01.1970.
И это когда вошёл под амдинкой, а надо чтоб просто гости могли гулять по сайту и смотреть когда авторы были зарегистрированы на сайте.
Ответы (1 шт):
Можете воспользоваться функцией get_userdata(). Если это страница автора, то это может выглядеть таким образом:
$user_id = get_the_author_meta('ID');
$user_info = get_userdata($user_id);
$register_date = $user_info->user_registered;
echo esc_html__('Registration date: ', 'textdomain') . date('d/m/Y', strtotime($register_date));
Здесь при помощи функции get_the_author_meta() Вы можете получить ID автора. Далее получаете саму дату $user_info->user_registered из объекта и конвертируете в удобный Вам вид при помощи функции date(), форматы дат можно посмотреть здесь.
Если речь о плагине UsersWP, что выяснилось по итогу, то Вы можете переписать существующий шаблон, согласно документации, но конкретно в Вашем случае код может выглядеть так (так как у Вас уже существует определенный шаблон):
<?php $registration_date = uwp_get_displayed_user()->user_registered ?? ''; ?>
<div class="since"><?php esc_html_e('На проекте с', 'textdomain'); ?> <?php echo $registration_date ? date('F j, Y', strtotime($registration_date)) : ''; ?></div>
При помощи функции uwp_get_displayed_user() Вы можете получить объект пользователя, на странице профиля которого Вы находитесь и работать с ним в дальнейшем.
UPD: если нужно чтобы дата выводилась согласно локализации Вашего сайта, то можно сделать таким образом с использованием date_i18n():
<?php $registration_date = uwp_get_displayed_user()->user_registered ?? ''; ?>
<div class="since"><?php esc_html_e('На проекте с', 'textdomain'); ?> <?php echo $registration_date ? date_i18n('F j, Y', strtotime($registration_date)) : ''; ?></div>