@ygen

Поиск по произвольным полям профиля?

Столкнулся с проблемой. Добавил произвольное поле в профиль пользователя. Хочу вывести список пользователей у кого день рождения сегодня (готовые плагины просьба не предлагать, т.к. пишу плагин для уведомлений на e-mail с генерацией купона для woo).
Пробовал использовать вместо даты *, не выводит ничего.

Код поиска (который не работает):
$blogusers = get_users_by('birthday','search=17.02.2016');
	foreach ($blogusers as $user) {
		echo '<li>' . $user->user_email . ' ('.$user->birthday.')</li>';
	}


Код добавление в профиль пользователя:

<p class="form-row form-row-wide">
        <label for="birthday">Дата рождения</label>
        <input type="text" class="input-text" name="birthday" id="datepicker" value="<?php echo esc_attr( $user->birthday ); ?>" />
    </p>


Код в functions.php
add_action( 'woocommerce_save_account_details', 'my_save_account', 10, 2 ); 
function my_save_account($user_id) {
  $birthday  = ! empty( $_POST[ 'birthday' ] ) ? $_POST[ 'birthday' ] : '';
  update_user_meta($user_id, 'birthday', $birthday);

  $about_myself  = ! empty( $_POST[ 'about_myself' ] ) ? $_POST[ 'about_myself' ] : '';
  update_user_meta($user_id, 'about_myself', $about_myself);
}
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@mr_ko
Javascript, Node.js. React.js, Vue.js, Wordpress
А с чего вы взяли что такой код вообще должен работать?
$blogusers = get_users_by('birthday','search=17.02.2016');

Вам нужно смотреть WP_User_Query https://codex.wordpress.org/Class_Reference/WP_Use...
Вот пример кода:
$user_query = new WP_User_Query( array( 'meta_key' => 'country', 'meta_value' => 'Israel' ) );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ygen Автор вопроса
Спасибо за ссылку.
Но пока придумал один способ рабочий пусть и не очень правильный в плане лишней нагрузки (в общем Г****код):

$blogusers = get_users('*');
	foreach ($blogusers as $user) {
                   if (!empty($user->birthday) ) {
                    $datas=date('d.m');
                    $ds=strripos($user->birthday,$datas);
                    if ($ds===true) { 
		       echo '<li>' . $user->user_email . ' ('.$user->birthday.')</li>'; }
                    }
	}


Спасибо, буду переписывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы