2011-02-14 23 views
0

我想將用戶登錄我的網站時重定向到特定頁面。我目前這樣做在hook_user:如何在用戶登錄Drupal時重定向用戶,除非他們正在下訂單?

if($op == 'login') { 
    drupal_goto('defaut'); 
} 

這大多工作正常。但是,我使用Ubercart來接受訂單,並將其配置爲自動登錄新用戶。這發生在將訂單狀態更新爲「已完成」的條件操作被觸發之前。這意味着當用戶自動登錄時,我的hook_user重定向用戶,並繞過剩餘的訂單處理。

目前,我正在通過在調用堆棧中的某處調用函數uc_cart_checkout_complete的debug_backtrace來解決此問題,但這聽起來像是一種非常骯髒的方法來解決它。

任何人都可以建議一個更乾淨的方式來實現我的條件重定向,而不會破解偉大的Ubercart塊嗎?

回答

0

可以使用的Ubercart的掛鉤(例如,hook_order,hook_cart的Ubercart的等等,看到的Ubercart \文檔\ hooks.php),加$_SESSION['no_redirect'] = true;那裏,改變你重定向:

if($op == 'login' && !$_SESSION['no_redirect']) { 
    unset($_SESSION['no_redirect']); 
    drupal_goto('defaut'); 
} 
+0

這正是我在找 - 謝謝Nikit! – 2011-02-16 16:55:13

相關問題