Разрешить доступ только при наличии подписки в Memberpress

Это контролируется настройкой сайта Discourse «maximum session age» (максимальный возраст сессии). По умолчанию эта настройка установлена на 1440 часов. Если она не задана очень маленьким значением, она не является надежным способом разлогинивания пользователей. Это связано с тем, что она определяет время, в течение которого пользователь остается в системе с момента его последнего посещения. Установка значения «maximum session age» на очень малое количество часов также может вызвать неудобства для пользователей вашего сайта.

Я думаю, что лучшим подходом будет разлогинивание пользователей из Discourse через API по истечении срока их членства. Пример кода, как это сделать, можно найти здесь: wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. Возможно, вам потребуется помощь разработчика, чтобы сделать вызов API для разлогинивания пользователей из Discourse при истечении срока их членства.