2013-03-18 35 views
1

我一直在爲x-cart中的客戶開發定製定期訂單腳本,我面臨的問題是定期訂單(cron)觸發和循環定單的訂單時, t似乎重置爲空,它會嘗試使用先前訂單的ID。我想我已經解決了這個問題,但現在它使用第一個訂單的詳細信息作爲每日處理後所有訂單的客戶詳細信息。x-cart定期訂單

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

最後paramater是一個自定義的,這裏就可以使用其中的這段($bol_ignore) - 在func.order.php

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

它cheched後付款是否成功與否,我們稱之爲在func_change_order_status()分別改變狀態。

我假設我必須錯過100%清除xcart在進入下一個過程之前可能使用的訂單,購物車和任何會話控制。我甚至在循環中使用了x_session_reset()以防萬一,並在循環開始時重置所有變量。

在此先感謝。

回答

1

經過幾個小時的浪費和大量的調試,我錯過了一個需要的全局變量。由於客戶未登錄,我們需要手動設置每個全局變量。

我從數據庫中提取客戶信息,但它被保存在一個不同的變量名中。

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

萬一有人想在將來嘗試這個,因爲他們所需要的訂單/車發生

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

我知道你一定有這些組的每個循環這個問題非常模糊,但我們認爲它歸結爲xcart的內置函數接管。

你在新鮮的一杯咖啡後發現的東西..