Я настроил WordPress в качестве провайдера SSO и требую от пользователей подтверждать свой адрес электронной почты на стороне WP перед созданием учётной записи. Однако после регистрации в WordPress и перенаправления в Discourse они всё равно видят страницу активации:
В основном посте о SSO здесь много говорится о необходимости установить require_activation = true для кастомной реализации, но в случае с плагином SSO Discourse для WordPress разве невозможно нативно обойти требование подтверждения электронной почты через Discourse?
Мне кажется, я, вероятно, упускаю что-то очевидное, так как такая функциональность, должно быть, реализована в ядре системы.
Спасибо,
Зак
Часто бывает так, что адреса электронной почты, используемые для создания учётных записей WordPress, не проверяются должным образом. Discourse сильно зависит от адреса электронной почты.
Ранее существовало предупреждение о том, что перед переопределением поведения параметра require_activation следует убедиться, что используется корректная проверка адреса электронной почты, указанного при регистрации.
Мое наиболее обоснованное предположение заключается в том, что такой опции нет в виде флажка, чтобы предотвратить спам-регистрации, когда WordPress выступает в качестве провайдера SSO. Однако это поведение можно легко переопределить с помощью пользовательской функции.
add_filter( 'discourse_email_verification', 'wpdc_custom_disable_email_verification' );
function wpdc_custom_disable_email_verification() {
return false;
}
Вау, большое спасибо @itsbhanusharma! Это идеально.
Вопрос: вы нашли этот хук, просто просматривая исходный код плагина, или где-то есть документация по доступным действиям и фильтрам? (Мне не удалось найти такую документацию, но, возможно, я что-то упустил)
Об этом уже неоднократно упоминалось в различных темах здесь, на meta. Я лично использую это для некоторых клиентов, поэтому у меня это тоже было в заметках 