0

未登録のユーザーはカートにアイテムを追加できますが、注文する前に登録する必要があります。ユーザーがアクティベーション リンクをクリックすると、「アカウントがアクティベートされました。ログインして買い物を続ける」。

ユーザーをアクティブにしてログインし、ショッピングカートにリダイレクトしたいと思います。(多くのユーザーはメッセージを無視して、注文できないと文句を言っています...)

私の考えは、電子メールのアクティベーション URL に変数を挿入し (注文時に通常の登録と登録を区別するため)、アクティベーションに - 変数が設定されている場合は、ログインしてリダイレクトすることでした。

変数を登録フォーム (checkout_register_form.php) に入れることができました。com_user/controler.php には activate および _sendMail 関数があり、残りを実行する必要があります ( _sendMail() で URL とメッセージが見つかり、 activate() でログインとリダイレクトに適した場所が見つかりました) が、そのスクリプトの変更は何もしません。 :(

これが機能しない他の方法や提案はありますか? または、間違ったファイルで作業していますか?

4

1 に答える 1

0

要件に応じて、このタスクを 2 つの方法で達成できます。

1) 登録と自動ログイン

*) ユーザーが登録フォームのチェックアウト ページに入ったときに、フォームに隠し変数を保持します。

*) com_users/controller/registration.php に登録した後、登録成功セクションのリダイレクト領域が含まれています。このセクションをチェックアウトからのみ変更し、そのユーザーにログインを強制します。

                    $app    = JFactory::getApplication();
                    $options = array();
            $credentials['username'] = $_POST['email'];
            $credentials['password'] = $_POST['password'];
            $error = $app->login($credentials, $options);
            $mainframe = &JFactory::getApplication();
            $mainframe->redirect(JURI::root().'index.php?option=com_virtuemart&view=checkout1',false);

これにより、登録とログインが同時に行われるため、ユーザーは疑いや混乱を感じることがなくなります。また、セキュリティも確保されます (ほとんどのショッピング カートはこのように機能します)。

2) メールから登録後。

電子メール リンクを介してキーを渡し、そのキーを確認し、アクティベーション後にそのユーザー セッションを有効にする必要があります (これは要件に適した方法ではありません)。セキュリティ上の問題により、ログイン セクションへの URL アクセスを正しく期限切れにする必要があります。

私は、最も安全で joomla 標準の最初の方法を好みます。ユーザーマネージャーで、登録時にユーザーの有効化を有効にし、この方法を使用します。

これが役立つことを願っています..

于 2012-11-30T12:36:16.933 に答える