如何在WordPress和自定义网站中登录用户?

时间:2016-05-14 09:36:33

标签: php wordpress woocommerce

我有使用Woo-commerce插件制作的word-press电子商务网站。我为在网上商店购物的客户开发了会员网站。我在我的数据库中维护单独的用户表。 word-press wp-user表和我的用户名相同。我想在我的会员区和word-press中登录用户,这样我就可以从word-press中获取数据(如打印收据等)。用户登录我的自定义成员资格时应该会发生这种情况。我的自定义成员资格是使用php开发的。 Wordpress和自定义成员资格都属于同一个域。我们也可以在自定义成员资格中使用wordpress功能。

谢谢

3 个答案:

答案 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 );
    }