Документация по настройке плагина в сети нескольких сайтов устарела. Это отличный повод привести её в порядок и обновить руководство по установке и настройке плагина WP Discourse.
Чтобы использовать функциональность SSO-клиента в сети нескольких сайтов, плагин необходимо настроить на уровне сети. Для этого нажмите ссылку Discourse на панели управления сетью:
На странице сети Discourse выберите опцию «Включить конфигурацию для сети нескольких сайтов» (Enable Multisite Configuration). Затем в разделе «Настройки подключения» (Connection Settings) введите URL вашего сайта Discourse, API-ключ и имя пользователя для публикации. Прокрутите страницу вниз и нажмите кнопку «Сохранить параметры» (Save Options). В верхней части страницы должно появиться сообщение «Вы подключены к Discourse!» (You are connected to Discourse!).
Чтобы использовать Discourse в качестве провайдера SSO для сайтов вашей сети, прокрутите страницу сети Discourse вниз и выберите опцию «Включить SSO-клиент» (Enable SSO Client). Также добавьте ключ в поле «Секретный ключ SSO» (SSO Secret Key). Снова сохраните параметры.
Теперь перейдите на свой сайт Discourse и скопируйте секретный ключ в настройку сайта Discourse sso provider secrets. В качестве домена провайдера SSO введите символ *. После сохранения настройка должна выглядеть примерно так:
Теперь на Discourse выберите опцию enable sso provider.
При наличии этих настроек переход на вкладку SSO / SSO Client плагина WP Discourse для любого сайта вашей сети должен открыть страницу, похожую на эту:
Для быстрой проверки выберите опции «Добавить ссылку для входа» (Add Login Link) и «Синхронизировать существующих пользователей по электронной почте» (Sync Existing Users by Email). Затем выйдите из системы на сайте WordPress. Вы должны иметь возможность войти снова, нажав на ссылку «Войти через Discourse» (Login with Discourse), которая будет отображаться на странице wp-login.php.
Если вы не используете страницу входа WordPress по умолчанию, попробуйте добавить шорткод [discourse_sso_client] в запись на вашем сайте. Этот шорткод отображает разметку на странице только для неавторизованных пользователей. Вы также можете создать ссылку для входа, используя следующий формат:
<a href="https://example.com/?discourse_sso=1&redirect_to=https://example.comt/">Log in with Discourse</a>
Это выполнит вход пользователя в ваш сайт через Discourse, а затем перенаправит его обратно на страницу WordPress, указанную в значении параметра redirect_to.
Судя по вашему анализу, опция «Включить SSO-клиент» (Enable SSO Client) на странице сети Discourse не была активирована. Убедитесь, что эта опция включена, и сообщите, если у вас всё ещё возникают проблемы.
Код, который вы обнаружили и который препятствовал работе SSO-клиента, верен, но условие написано некорректно:
if ( empty( $this->options['sso-client-enabled'] ) || 1 !== intval( $this->options['sso-client-enabled'] ) )
Его следует упростить до if ( empty( $this->options['sso-client-enabled'] ) ). Именно такой паттерн используется во всех остальных местах плагина.