if (!$uid) {
            continue;
        }
        // no assocdata, maybe this user never paid.
        $uinfo = $this->GetUserInfo($uid);
        if (!is_array($uinfo) || $uinfo[0] == FALSE) {
            $this->Audit($uid, $this->GetName(), sprintf('Order %d deleted but cannot find user account', $order_id));
            return;
        }
        $uinfo = $uinfo[1];
        switch ($this->GetPreference('ecomm_orderdeleted')) {
            case 'delete':
                $this->DeleteAllUserProperties('', $uid, true);
                $this->DeleteUser($uid);
                $this->Audit($uid, $this->GetName(), sprintf('Deleted user %s because order %d was deleted', $uinfo['username'], $order_id));
                break;
            case 'expire':
                $this->SetUser($uid, $uinfo['username'], $uinfo['password'], time() - 3600, false);
                $this->Audit($uid, $this->GetName(), sprintf('Expired user %s because order %d was deleted', $uinfo['username'], $order_id));
                break;
            case 'none':
            default:
                break;
        }
    }
}
// setup for another order... shouldn't happen, but just in case.
cge_tmpdata::erase(__FILE__);
#
# EOF
#
 public static function cge_array_erase($params, &$smarty)
 {
     if (!isset($params['array']) || !isset($params['key'])) {
         // no params, do nothing.
         return;
     }
     $arr = trim($params['array']);
     $key = trim($params['key']);
     if ($arr == '' || $key == '') {
         return;
     }
     if (!cge_tmpdata::exists($arr)) {
         return;
     }
     $data = cge_tmpdata::get($arr);
     if (isset($data[$key])) {
         unset($data[$key]);
     }
     if (count(array_keys($data)) == 0) {
         cge_tmpdata::erase($arr);
         return;
     }
     cge_tmpdata::set($arr, $data);
 }