12

私はここ数日、WordPress サイトに登録したばかりのユーザーを自動的にログインさせ、選択した URL にリダイレクトしようと試みてきました。

デフォルトでは、WordPress からユーザー名とパスワードが送信されるので、手動でログインする必要があります。これは完全な痛みです。どうすればこれを克服できますか。

ユーザーをDBに正常に追加する独自の登録ページ(コアphpページ)があります。しかし、要点は、ユーザーが再度ログインするのを避けるべきだということです。

登録が完了すると、redirectsホームページまたはプロフィールページに自動的に表示されます。

私はワードプレス機能の初心者です。誰か (ワードプレスのコア機能に関する知識を持っている) が少なくとも方法/解決策を提案してくれれば幸いです。

楽しみにしている。
ありがとう

4

4 に答える 4

10

以下は、WooCommerce が新しいユーザーを作成してログインする方法に基づいています。

$user_pass = esc_attr( $_POST['account_password'] );

$new_user_data = array(
    'user_login' => $_POST['account_username'],
    'user_pass'  => $user_pass,
    'user_email' => $_POST['account_email'],
    'role'       => 'subscriber'
);

$user_id = wp_insert_user( $new_user_data );

// Set the global user object
$current_user = get_user_by( 'id', $user_id );

// set the WP login cookie
$secure_cookie = is_ssl() ? true : false;
wp_set_auth_cookie( $user_id, true, $secure_cookie );

使用をリダイレクトするにはwp_safe_redirect、例えば

wp_safe_redirect( home_url( '/' ) );
exit;
于 2013-11-13T14:07:22.793 に答える
-6

サポートしてくれてありがとう..私は次のコードで自分でやった..あなたの時間とサポートに感謝します:)

<i>$getdetails= mysql_fetch_array(mysql_query("SELECT * FROM `wp_users` WHERE `ID`='$user_id'"));
$username=$getdetails['user_login'];


$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;

    $user = wp_signon( $creds, false );
    if ( is_wp_error($user) ){
        echo $user->get_error_message();
    }else{
        wp_redirect( home_url() );
    }
于 2013-11-18T06:59:38.607 に答える