我有使用Woo-commerce插件制作的word-press电子商务网站。我为在网上商店购物的客户开发了会员网站。我在我的数据库中维护单独的用户表。 word-press wp-user表和我的用户名相同。我想在我的会员区和word-press中登录用户,这样我就可以从word-press中获取数据(如打印收据等)。用户登录我的自定义成员资格时应该会发生这种情况。我的自定义成员资格是使用php开发的。 Wordpress和自定义成员资格都属于同一个域。我们也可以在自定义成员资格中使用wordpress功能。
谢谢
答案 0 :(得分:0)
您的问题的最佳解决方案是SSO(单点登录)。单点登录(SSO)是多个相关但独立的软件系统的访问控制属性。
SSO(单点登录)意味着当用户登录到一个应用程序时,无论平台,技术和域名如何,他都将“自动”登录到其他所有应用程序。
例如,Google为其产品实施了SSO:Gmail,YouTube,Google Analytics等。当您打开计算机并访问Gmail时,您首次登录。然后,如果您转到YouTube,系统将不会再次提示您输入凭据。
这种方式的工作方式是通过“中央服务”(在Google的情况下,这是https://accounts.google.com)。当您第一次登录时,会在此中央服务上创建cookie。然后,当您尝试访问第二个应用程序时,您将被重定向到中央服务,但由于您已经有cookie,您将直接使用令牌重定向到应用程序,这意味着您已经登录。
WordPress SSO插件 - https://wordpress.org/plugins/tags/single-sign-on
如果您的自定义网站是基于PHP的,请参阅此处的解决方案 - How to do single sign-on with PHP?
答案 1 :(得分:0)
如果您仍想继续使用您的版本,而不是按照之前的建议尝试单一唱歌,您需要做的是在您拥有的每个网站中同时“记录用户”。
这个想法不是最好的,但我假设你的成员区域在wordpress内,所以网站应该是相同的。如果不是这种情况,单点登录是您的最佳选择。
答案 2 :(得分:0)
在这里,您可以在登录自定义页面时登录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 );
}