[РЕШЕНО] Отловить (выборка) не подтвержденных @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  *//
Заметки к вопросу:
Kama 5.9 лет назад

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

llgruff 5.9 лет назад

А поле user_activation... в таблице users не связано с этой логикой?

kolshix 5.9 лет назад

спасибо

--

по-мойму нашел решение

1 добавлю колонку в USERS (сортировку и фильтрацию ещё не освоил)
2 установлю плагин повторная активация почты или вот этот с официального сайта Resend Welcome Email
3 Заполню новую колонку данными - данные будут из wp_users -> user_activation_key - кажется что при активации почты от туда пропадают данные, а значит можно сделать выборку
4 попытаюсь объединить плагин и свой код

если будут положительные результаты - напишу статью

Kama 5.9 лет назад

Поле user_activation_key используется в WP для сброса пароля. Когда юзер запрашивает сброс туда пишется код, потом при переходе по ссылке из почты этот код сравнивается (там сравнение через хэш паролей а не напрямую). В общем, это поле не подходит точно, оно о другом! Это поле может быть заполнено, но это говорит лишь о том, что кто-то (кто угодно) запросил сброс пароля для почты или логина юзера...

kolshix 5.9 лет назад

вы правы - но для моей задачи это отлично подходит как одно из условий

пока что я админ - у меня есть возможность сравнить 3 пункта

  • дату регистрации
  • поле user_activation_key
  • и количество записей в избранном

по ним сразу видно статус активности и значимости пользователя

вообще в идеале нужно добавить 2 поля в базу users "активация емейл" и "дату последнего входа\активности\ " - пользователей буду думаю чистить через года 2 - тогда и буду думать как к функциям входа и регистрации прикрутить несколько запросов на редактирование базы данных.

Вообще есть плагин но он старенький по-мойму, короче кто-то уже пытался реализовать что-то из этой "степи"