我有一个word press电子商务网站,它是用Woo商务插件制作的。我为在我的网上商店购买东西的客户开发了一个会员网站。我在数据库中维护单独的用户表。用户名在word press wp用户表和我的表中都是相同的。我想在我的会员区和word press中登录用户,这样我就可以从word press获取数据(比如打印收据等)。当用户登录到我的自定义会员资格时,应该会发生这种情况。我的自定义成员资格是使用php开发的。Wordpress和自定义会员资格都在同一个域下。我们也可以在自定义会员中使用wordpress功能。
感谢
解决问题的最佳方案是SSO(单点登录)。单点登录(SSO)是多个相关但独立的软件系统的访问控制特性。
SSO(单点登录)意味着,当用户登录到一个应用程序时,他将"自动"登录到其他所有应用程序,而不考虑平台、技术和域。
例如,谷歌为他们的产品实现了SSO:Gmail、YouTube、Analytics等。当你打开电脑并访问Gmail时,你是第一次登录。然后,如果你去了YouTube,就不会再提示你输入凭据了。
它的工作方式是通过"中央服务"(就谷歌而言,这是https://accounts.google.com)。当您第一次登录时,会在此中心服务上创建cookie。然后,当你试图访问第二个应用程序时,你会被重定向到中央服务,但由于你已经有了cookie,你会直接用令牌重定向到应用程序,这意味着你已经登录。
WordPress SSO插件-https://wordpress.org/plugins/tags/single-sign-on
如果您的自定义网站是基于PHP的,请参阅此处的解决方案-如何使用PHP进行单点登录?
点击这里,您可以在登录自定义页面时登录wordpress用户。
$user = get_user_by( 'email', "username@domain.com" );
if( $user ) {
wp_set_current_user( $user->id, $user->user_login );
wp_set_auth_cookie( $user->id );
do_action( 'wp_login', $user->user_login );
}
如果你仍然想继续你的版本,而不是像以前建议的那样尝试一次演唱,你需要做的是在你拥有的每个网站上同时"记录用户"。
这个想法不是最好的,但我假设你的会员区在wordpress内,所以网站应该是一样的。如果不是这样,单次登录是您的最佳选择。