2012-11-22 78 views
0

未註冊的用戶可以添加項目到購物車,但需要註冊才能下訂單。 當用戶點擊激活鏈接時,他留下的信息如'您的帳戶已激活。登錄以繼續購物'。如何登錄用戶併發送到購物車,當他點擊電子郵件中的激活鏈接

我想激活並登錄用戶,並將其重定向到購物車。 (很多用戶只是忽略郵件,然後抱怨他們不能下訂單...)

我的想法是在電子郵件激活url中插入一個變量(以區分訂購期間的常規註冊和註冊)以及激活 - 如果設置了變量,請登錄並重定向。

設置了變量的註冊形式(在checkout_register_form.php中)。 com_user/controler.php中有activate和_sendMail函數,它們應該完成其餘部分(在_sendMail()中找到URL和消息,並且在activate()中用於登錄和重定向的適當位置),但該腳本中的更改不會執行什麼:(

任何其他方式或建議,爲什麼這是行不通的?還是我的工作對錯誤的文件?

回答

0

根據您的要求,您可以通過以下兩種方式完成此任務。

1)註冊和自動登錄

*)當用戶進入註冊表格chec kout頁面在窗體中保留一個隱藏的變量。

*)然後註冊後在com_users/controller/registration.php 包含註冊成功部分的重定向區域,只有從check out中更改此部分,並強制該用戶登錄。

    $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); 

這將做的註冊和登錄,同時用戶毫無疑問或confusion.Also安全。(大多數的購物車的工作是這樣)。

2)通過電子郵件註冊後。

您應該通過電子郵件鏈接傳遞一個密鑰,並檢查該密鑰,然後激活。然後推動該用戶會話啓用(這根本不是您的要求的正確方法。)安全問題,您應該過期URL訪問正確登錄部分。

我preffer第一種方法最安全和joomla標準。只需在用戶管理器中激活用戶啓用註冊並使用此方法。

希望這會有所幫助..

相關問題