Как я могу перенаправить пользователей, когда они входят в Drupal, если они не размещают заказ? - PullRequest
0 голосов
/ 14 февраля 2011

Я хочу перенаправлять пользователей, когда они заходят на мой сайт, на определенную страницу.В настоящее время я делаю это в hook_user:

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

Это в основном работает нормально.Тем не менее, я использую Ubercart для приема заказов, и я настроил его для автоматического входа новых пользователей.Это происходит до того, как сработает условное действие по обновлению статуса заказа до «Завершено».Это означает, что когда пользователь вошел в систему автоматически, мой hook_user перенаправляет пользователя и обходит оставшуюся обработку заказа.

В данный момент я работаю над этим, проверяя debug_backtrace для вызывающей функции uc_cart_checkout_complete где-тостек вызовов, но это звучит как очень грязный способ его решения.

Может кто-нибудь предложить более чистый способ достижения моего условного перенаправления без взлома больших кусков Ubercart?

1 Ответ

0 голосов
/ 14 февраля 2011

Вы можете использовать хуки ubercart (например, hook_order, hook_cart и т. Д. Ubercart, смотрите в ubercart \ docs \ hooks.php), добавить туда $_SESSION['no_redirect'] = true; и изменить свое перенаправление:

if($op == 'login' && !$_SESSION['no_redirect']) {
  unset($_SESSION['no_redirect']);
  drupal_goto('defaut');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...