Здравствуйте,
Есть задумка изменить расчёт "Дополнительного сбора" у платежей (в старых версиях называлось "Доплата") таким образом, чтобы показывать покупателю комиссию Почты EMS для наложенного платежа согласно тарифам http://www.emspost.ru/ru/platej/.
Дополнительный сбор включу только у одного вида оплаты, т. е. код расчёта готов слегка покорёжить и потерять возможность "обычного" поведения сбора.
Расчёт нашёл сразу в двух местах - в fn.cart.php в функциях fn_update_payment_surcharge() и fn_prepare_checkout_payment_methods().
В обеих функциях есть расчёт в соответствии с доступным абсолютным или процентным значением сбора.
fn_update_payment_surcharge()
if (floatval($surcharges['absolute'])) {
$cart['payment_surcharge'] += $surcharges['absolute'];
}
if (floatval($surcharges['percentage'])) {
$cart['payment_surcharge'] += fn_format_price($cart['total'] * $surcharges['percentage'] / 100);
}
fn_prepare_checkout_payment_methods()
if (floatval($v['a_surcharge'])) {
$payment_methods[$k]['surcharge_value'] += $v['a_surcharge'];
}
if (floatval($v['p_surcharge']) && !empty($cart['total'])) {
$payment_methods[$k]['surcharge_value'] += fn_format_price($cart['total'] * $v['p_surcharge'] / 100);
}
Вопросы:
1. Для обозначенной задачи нужно модифицировать одну из этих функций или обе?
2. Как внутри можно получить значение региона покупателя?
Заранее спасибо!