wordpress:安全地将用户凭据发送到新页面

时间:2016-03-18 19:58:08

标签: php ajax wordpress

我在wordpress页面上有一个网络应用程序。

其功能之一是根据表单输入注册新用户,然后将客户转发到结帐页面。

目前,网络应用程序可以通过ajax POST创建新用户,并监听用户注册的成功/失败。

收到确认后,我需要告诉wordpress将用户登录并转到mysite.com/checkout

这就是我被困住的地方。在发送标头之前似乎需要调用wp_signon,因此我仍然无法使用网络应用程序登录页面。这表明我需要将凭据发送到../checkout页面。我不知道如何发送它们除了作为URL的一部分(我绝对不想做的事情)。我似乎遇到了需要重新创建wordpress的令牌/ nonce功能的情况,所以我觉得我错过了一些明显的东西。

给定明文用户名/密码,如何将用户登录并发送到新的wordpress页面?

1 个答案:

答案 0 :(得分:1)

你可以像Woocommerce那样做。

注册用户 - >自动登录 - >重定向

<强>注册

$new_customer_data = apply_filters( 'woocommerce_new_customer_data', array(
    'user_login' => $username,
    'user_pass'  => $password,
    'user_email' => $email,
    'role'       => 'customer'
) );

$customer_id = wp_insert_user( $new_customer_data );

自动登录

global $current_user;
$current_user = get_user_by( 'id', $customer_id );
wp_set_auth_cookie( $customer_id, true );

然后重定向

wp_safe_redirect( home_url( '/' ) );
exit;

供参考,

结帐https://docs.woothemes.com/wc-apidocs/source-function-wc_create_new_customer.html#36-118