2011-02-07 5 views
3

현재 로그인하지 않은 사용자는 UberCart에서 체크 아웃 할 때 "로그인 페이지"로 리디렉션됩니다. 오히려 "등록"페이지로 리디렉션해야합니다. 즉Drupal에서 UberCart 체크 아웃 중에 등록 페이지로 로그인하지 않고 리디렉션 하시겠습니까?

:

Go here: user/register 
NOT here: user 

여기서 핵심은이 UberCart와 함께 작동하도록하는 것입니다. 로그인 뼈대와 다른 트릭을 사용하여 정상적으로 처리 할 수 ​​있다는 것을 알고 있지만 UberCart와 함께 작동시키지 못합니까? 난 아직도 괜찮은 솔루션이없는

UPDATE 그래서 이것에 대한 현상금을 추가했습니다. 현재 "익명의 체크 아웃"을 사용하지 않으면 ubertcart가 자동으로 다음 메시지를 추가합니다.

  1. 체크 아웃을 진행하려면 먼저 로그인해야합니다.
  2. 아직 계정이없는 경우 지금 등록해야합니다.

사용자 페이지로 이동하면 표시하는 것이 적절하지 않기 때문에 문제가됩니다. 따라서 "user? destination = cart/checkout"을 만나고 사용자가 기록되지 않으면 "user/register? destination = cart/checkout"로 전달하기 위해/user/register에 사용자를 전달하는 내 하드 해킹조차도 잘 작동 해.

아이디어가 있으십니까?

업데이트 2

마법이 일어나는 곳입니다 :

// Send anonymous users to login page when anonymous checkout is disabled. 
if (!$user->uid && !variable_get('uc_checkout_anonymous', TRUE)) { 
    drupal_set_message(t('You must login before you can proceed to checkout.')); 
    if (variable_get('user_register', 1) != 0) { 
    drupal_set_message(t('If you do not have an account yet, you should <a href="!url">register now</a>.', array('!url' => url('user/register', array('query' => drupal_get_destination()))))); 
    } 
    drupal_goto('user', array('query' => drupal_get_destination())); 
} 

uc_cart.pages.inc 라인 (94)은, 그래서, 기본적으로 그 동작을 재정의하는 방법이 필요합니다? (즉 해킹 코어가 없습니까?)

+0

나는이 문제를 어떻게 해결했는지 듣고 싶습니다. –

+0

하나의 사이트에서 제안 된 규칙과 토큰 모듈을 사용했지만 다른 사이트에서는 저를위한 모듈을 추가했습니다. 기본적으로 등록 경로가 맞는지 확인하는 "init"훅이 있으며, 그럴 경우 나에게 리디렉션을 수행합니다. 한 가지 경우에 효과가있었습니다. 받은 편지함 좀 더 자세한 정보를 원한다면. – coderama

+0

ps. 내 솔루션이 이상적이지 않은 이유에 대한 업데이트를 추가했습니다. 내 솔루션은 해킹 알아. – coderama

답변

2

규칙 및 토큰 모듈을 살펴보아야합니다. 사용자가 로그인하여 TOKEN으로 리디렉션 할 때 규칙을 생성합니다. 토큰 작업 모듈도 활성화해야합니다.

+0

이것은 올바른 대답이 아닙니다. 전체 질문을 읽으십시오. – coderama

+0

거의 4 년이 넘었고 아직 이해하지 못했다면 나는 결코 당신을 추측하고 있습니다. 이후 나는 이런 식으로 쓰레기를 다룰 필요가없는 파이썬 기반 프레임 워크로 이동했습니다. 드루팔 (Drupal)이 겨자를 자르고 있지 않다면 나는 그 생각을 하나의 선택으로 제안한다. – xamox

관련 문제