我一直在为x-cart中的一个客户开发一个自定义的循环订单脚本,我面临的问题是,当循环订单(cron)触发并循环预定的订单时,订单似乎没有重置为零,它试图使用前一个订单的ID。我认为我已经解决了这个问题,但现在它使用第一个订单的详细信息作为日常流程之后所有订单的客户详细信息。
$orderids = func_place_order(stripslashes($payment_method), 'I', $order_details, @$customer_notes, array(), array(), @$delivery_notes, TRUE);最后一个参数是一个自定义参数,下面是在func.order.php中使用它的地方的代码片段($bol_ignore
$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;
}在检查支付是否成功后,我们调用func_change_order_status()来分别更改状态。
我假设我一定是遗漏了一些东西,无法100%清除订单、购物车和xcart可能正在使用的任何会话控制,然后才能继续处理下一个。为了以防万一,我甚至在循环中使用了x_session_reset(),并在循环开始时重置了所有变量。
提前谢谢。
发布于 2013-03-19 09:50:19
经过几个小时的浪费和大量的调试,我遗漏了一个所需的全局变量。由于客户未登录,我们需要手动设置每个全局变量。
我从数据库中提取客户信息,但它是以不同的变量名保存的。
$userinfo = func_userinfo($row['customerid'], 'C');
以防将来有人想尝试这样做,您必须为每个循环设置这些设置,因为它们是订单/购物车发生所必需的
# Change the "session" types
$login_type = 'C';
$current_area = 'C';
$cart = NULL; // Clear the Cart我知道这个问题相当模糊,但我们认为它归结为xcart的内置函数接管。
你在一杯新鲜咖啡后发现的事情..
https://stackoverflow.com/questions/15488759
复制相似问题