[РЕШЕНО] Отловить (выборка) не подтвержденных @mail
никогда не задумывался - уже пользователей перевалило за 1000
некоторые, одноразовые, некоторые левые, некоторые со спам почтой, некоторые без подтверждения и т.д.
Задача, отобразить пользователей которые не подтвердили почту, отправить повторную активацию, либо удалить
я знаю про мудреные плагины комбайны и прочее, вероятно в дальнейшем ими буду пользоваться, но сейчас задача плагина или кода узкой направленности ОПРЕДЕЛИТЬ НЕ ПОДТВЕРЖДЕННЫЙ МЕЙЛ
Кто что знает, поделитесь
Решено на 90% - может кто допилит (сортировку и правильно интегрирует в плагин + аякс запрос на кнопку, а не ссылку )
Скачал вот этот плагин официального сайта Resend Welcome Email и в конце (перед закрывающейся фигурной скобкой) добавил код. Так же можно закомментировать - убрать стандартное отображение (по мойму на уровне 80 строки в коде)
Оформлением даже не стал заниматся , думал добавить красную и зелёную кнопку, но "B так сойдет!"
//* ==START== Колонка в пользователях для просмотра АКТИВИРОВАННІХ EMAIL *// add_filter( 'manage_users_columns', 'reg_confirm_column_0001' ); function reg_confirm_column_0001( $column ) { $column['reg_confirm_column'] = 'Статус Регистрации'; return $column; } // создаем новую колонку // Колонка только создается и будет пустая add_filter('manage_users_columns', 'reg_confirm_column_add_0002', 4); function reg_confirm_column_add_0002( $columns ){ $num = 3; // после какой по счету колонки вставлять новые $new_columns = array( 'reg_confirm_column' => 'Статус Регистрации', ); return array_slice( $columns, 0, $num ) + $new_columns + array_slice( $columns, $num ); } // заполняем колонку данными add_filter( 'manage_users_custom_column', 'reg_confirm_column_add_data_0003', 10, 3 ); function reg_confirm_column_add_data_0003( $val, $column_name, $user_id ){ // global $wpdb; $user_info = get_userdata($user_id); switch ($column_name) { case 'reg_confirm_column' : if ($user_info->user_activation_key){ $link = esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'resend_welcome_email', 'user_id' => $user_id, ), '' ), "send_welcome_email_{$user_id}" ) ); return "Не Активирован <a href=" .$link .">Send New Welcome</a>"; }else{ return "Активирован "; } break; default: } return $val; } //* ==END== Колонка в пользователях для просмотра АКТИВИРОВАННІХ EMAIL *//
А поле user_activation... в таблице users не связано с этой логикой?
спасибо
--
по-мойму нашел решение
1 добавлю колонку в USERS (сортировку и фильтрацию ещё не освоил)
2 установлю плагин повторная активация почты или вот этот с официального сайта Resend Welcome Email
3 Заполню новую колонку данными - данные будут из wp_users -> user_activation_key - кажется что при активации почты от туда пропадают данные, а значит можно сделать выборку
4 попытаюсь объединить плагин и свой код
если будут положительные результаты - напишу статью
Поле user_activation_key используется в WP для сброса пароля. Когда юзер запрашивает сброс туда пишется код, потом при переходе по ссылке из почты этот код сравнивается (там сравнение через хэш паролей а не напрямую). В общем, это поле не подходит точно, оно о другом! Это поле может быть заполнено, но это говорит лишь о том, что кто-то (кто угодно) запросил сброс пароля для почты или логина юзера...
вы правы - но для моей задачи это отлично подходит как одно из условий
пока что я админ - у меня есть возможность сравнить 3 пункта
- дату регистрации
- поле user_activation_key
- и количество записей в избранном
по ним сразу видно статус активности и значимости пользователя
вообще в идеале нужно добавить 2 поля в базу users "активация емейл" и "дату последнего входа\активности\ " - пользователей буду думаю чистить через года 2 - тогда и буду думать как к функциям входа и регистрации прикрутить несколько запросов на редактирование базы данных.
Вообще есть плагин но он старенький по-мойму, короче кто-то уже пытался реализовать что-то из этой "степи"
Сейчас уже видимо никак. Можно жестко, отправить всем письмо на подтверждение, кто не подтвердит их удалить, но это какой-то жесткий способ. или на сайте прям где-то красным выводить - почта не подтверждена, подождать год например, кто не подтвердит, удалить. Ну и сделать функционал подтверждения почты...