public function recover_cart($sid = false, $ord_id = false)
{
if ($sid == false) {
return;
}
$cur_sid = mw()->user_manager->session_id();
if ($cur_sid == false) {
return;
} else {
if ($cur_sid != false) {
$c_id = $sid;
$table = $this->table;
$params = array();
$params['order_completed'] = 0;
$params['session_id'] = $c_id;
$params['table'] = $table;
if ($ord_id != false) {
unset($params['order_completed']);
$params['order_id'] = intval($ord_id);
}
$will_add = true;
$res = $this->app->database_manager->get($params);
if (!empty($res)) {
foreach ($res as $item) {
if (isset($item['id'])) {
$data = $item;
unset($data['id']);
if (isset($item['order_id'])) {
unset($data['order_id']);
}
if (isset($item['created_by'])) {
unset($data['created_by']);
}
if (isset($item['updated_at'])) {
unset($data['updated_at']);
}
if (isset($item['rel_type']) and isset($item['rel_id'])) {
$is_ex_params = array();
$is_ex_params['order_completed'] = 0;
$is_ex_params['session_id'] = $cur_sid;
$is_ex_params['table'] = $table;
$is_ex_params['rel_type'] = $item['rel_type'];
$is_ex_params['rel_id'] = $item['rel_id'];
$is_ex_params['count'] = 1;
$is_ex = $this->app->database_manager->get($is_ex_params);
if ($is_ex != false) {
$will_add = false;
}
}
$data['order_completed'] = 0;
$data['session_id'] = $cur_sid;
if ($will_add == true) {
$s = $this->app->database_manager->save($table, $data);
}
}
}
}
if ($will_add == true) {
$this->app->cache_manager->delete('cart');
$this->app->cache_manager->delete('cart_orders/global');
}
}
}
}