[РЕШЕНО] Отловить (выборка) не подтвержденных @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 - тогда и буду думать как к функциям входа и регистрации прикрутить несколько запросов на редактирование базы данных.
Вообще есть плагин но он старенький по-мойму, короче кто-то уже пытался реализовать что-то из этой "степи"

Сейчас уже видимо никак. Можно жестко, отправить всем письмо на подтверждение, кто не подтвердит их удалить, но это какой-то жесткий способ. или на сайте прям где-то красным выводить - почта не подтверждена, подождать год например, кто не подтвердит, удалить. Ну и сделать функционал подтверждения почты...