2013-03-18 4 views
1

나는 x-cart에있는 고객을 위해 주문형 되풀이 주문 스크립트를 개발했다. 내가 직면하고있는 문제는 되풀이 주문 (cron)이 실행되고 예약 된 주문을 반복 할 때 주문이 ' 아무것도 재설정하지 않은 것처럼 보이면 이전 주문의 ID를 사용하려고 시도합니다. 나는이 문제를 해결하려고 생각했지만, 이제는 일일 프로세스를 따르는 모든 주문에 대한 고객 세부 정보로서 첫 번째 주문의 세부 정보를 사용합니다. 우리는 전화가 지불의 성공 여부를 cheched 후 func.order.phpx-cart 되풀이 주문

$check_order = func_query_first("SELECT orderid FROM $sql_tbl[orders] WHERE userid='" . addslashes(@$userinfo['id']) . "' AND '" . XC_TIME . "'-date < '$mintime'"); 

    if ($bol_ignore == FALSE) // @custom ***** code, may prevent the order from being broken? 
     if ($check_order) { 
      func_unlock('place_order'); 

      return FALSE; 
     } 

의 여부 -

$orderids = func_place_order(stripslashes($payment_method), 'I', $order_details, @$customer_notes, array(), array(), @$delivery_notes, TRUE); 

마지막 paramater 사용자 정의 하나, 여기가 사용되는 경우에 SNIPPIT ($bol_ignore는)입니다 에서 func_change_order_status()으로 각각 상태를 변경하십시오.

주문, 카트 및 xcart가 다음 프로세스로 이동하기 전에 사용할 수있는 모든 세션 컨트롤을 100 % 지울 수 있어야한다고 가정합니다. 심지어 경우에만 루프에서 x_session_reset() 사용하고 루프의 시작 부분에 모든 vars 다시 설정하십시오.

미리 감사드립니다.

답변

1

몇 시간이 걸리고 많은 양의 디버그가 발생한 후에 필자는 필요한 전역 변수가 누락되었습니다. 고객이 로그인하지 않았으므로 이러한 전역 변수를 수동으로 설정해야합니다.

고객 정보를 데이터베이스에서 가져 왔지만 다른 변수 이름으로 저장되었습니다. 그들은 내가 아는 장소를

# Change the "session" types 
$login_type = 'C'; 
$current_area = 'C'; 
$cart   = NULL; // Clear the Cart 

을 위해 주문/카트 필요로 누군가가 앞으로이 시도하고 싶어 그냥 경우

$userinfo = func_userinfo($row['customerid'], 'C');

, 각 루프 이러한 설정이 있어야합니다 질문은 꽤 모호 했습니다만 우리는 xcart의 기능을 대신하는 기능을 제공한다고 생각했습니다.

신선한 커피 한 잔 후에 발견되는 것들.