Еще несколько найденных ошибок:
==========================================
При создании заказа не проверяется необходимость заполнения полей "адрес","город", "город(область)", а ВСЕГДА прописывается то, что было заполнено у клиента при регистрации.
Даже если комбинация заполняемых полей в "форме регистрации" с тех пор изменилась и, например, город при оформлении заказа уже не нужен.
function regGetAddress( $addressID )
{
if ( $addressID != null )
{
// $customerID
$q = db_query( "select first_name, last_name, countryID, zoneID, ".
" state, city, address, customerID from ".
CUSTOMER_ADDRESSES_TABLE." where addressID=".(int)$addressID);
$row=db_fetch_row($q);
# BEGIN исправление. "Обнулим" адрес/город/город(область) клиента, если в админке "Форма регистрации" они не нужны.
if (CONF_ADDRESSFORM_STATE==2) $row['zoneID'] = 0;
if (CONF_ADDRESSFORM_CITY==2) $row['city'] = '';
if (CONF_ADDRESSFORM_ADDRESS==2) $row['address'] = '';
# END исправление. "Обнулим" адрес/город/город(область) клиента, если в админке "Форма регистрации" они не нужны.
return $row;
}
else
return false;
}
=====================================
Нашел интересную SQL-таблицу и функции. На скорость не влияют, просто лишние
.
1. есть файл /install/sql/setting_groups.sql, из него при инсталляции получается таблица SETTINGS_GROUPS_TABLE (xxxx_settings_groups).
2. эта таблица используется в файле install.php и функциях settingInstall и settingGetAllSettingGroup (файл setting_functions.php)
3. функция settingInstall используется в xml_installer.php.
4. функция settingGetAllSettingGroup испольуется в conf_setting.php для получения смарти-массива $setting_groups.
5. смарти-массив $setting_groups не используется в conf_setting.tpl.html, да и вообще нигде.
Круг замкнулся. Ни таблица, ни функции (результат) после инсталляции нигде не используются.
PS. Из спортивного интереса пробежался по product_functions.php (помню, что там попадались какие-то мутные функции) - и точно!
Функции
GetProductInSubCategories
prdGetMetaKeywordTag
нигде и никогда не вызываются.
=====================================
Очередная прикольная штатная ошибка.
В файле order_functions.php в функции _sendOrderNotifycationToCustomer
используется шаблон customer_order_notification.tpl.html для отправки емейла клиенту о том, что создан заказ.
В шаблоне используется смарти-переменная {$order_time}, но она нигде в функции не задается.
Однако, при штатном создании заказа емейл приходит с нормальной датой/временем создания заказа.
Чудеса? Нет.
В аналогичной функции отправки емейла о заказе админу _sendOrderNotifycationToAdmin эта смарти-переменная создается,
а поскольку в функции OrderProcessing отправка письма клиенту стоит ПОСЛЕ отправки письма админу,
то на момент отправки письма клиенту смарти-переменная {$order_time} уже существует и имеет правильное значение.
_sendOrderNotifycationToAdmin(...
_sendOrderNotifycationToCustomer(...
А вот в стороннем модуле "Быстрый заказ 2.0" (quick_order) эти функции расположены наоборот
_sendOrderNotifycationToCustomer(...
_sendOrderNotifycationToAdmin(...
и письмо клиенту приходит без даты/времени создания заказа.
Исправить просто - в функции _sendOrderNotifycationToCustomer
после
$order = _getOrderById( $orderID );
вставляем
$smarty_mail->assign("order_time",format_datetime($order["order_time"]));
=====================================