仅当用户在Memberpress拥有订阅计划时才允许访问

这由 Discourse 的“最大会话时长”(maximum session age)站点设置控制。该设置的默认值为 1440 小时。除非将其设置为非常小的值,否则它并不是登出用户的可靠方式。这是因为它设定的是用户自上次访问以来保持登录状态的时间。将“最大会话时长”设置为极小的数值也可能给您的网站用户带来不便。

我认为最好的方法是在会员资格到期时通过 API 将用户从 Discourse 登出。这里有相关的代码示例:wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub API 将用户从 Discourse 登出。