'PHPSHOP_CHECKOUT_PREDOPLATA' => 'Бесплатная доставка по предоплате',
Не забыть про **запятую** в конце строки!
=== Изменяем подсчет суммы доставки, заносимая в базу заказов ===
Редактируем файл ''/administrator/components/com_virtuemart/classes/ps_checkout.php''
Заменяем строки
// Get the IP Address
if (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = 'unknown';
}
// Collect all fields and values to store them!
$fields = array(
'user_id' => $auth["user_id"],
'vendor_id' => $ps_vendor_id,
на
// Get the IP Address
if (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = 'unknown';
}
// Begin hack for prepaid
if ( vmGet( $_REQUEST, 'payment_method_id') == NN && $order_subtotal > SUMMA ) {
$order_shipping = 0;
$order_total = $order_subtotal;
}
// End hack for prepaid
// Collect all fields and values to store them!
$fields = array(
'user_id' => $auth["user_id"],
'vendor_id' => $ps_vendor_id,
Где NN - идентификатор нашего метода оплаты (payment_method_id), а SUMMA - сумма, выше которой посылка не будет оплачиваться покупателем.
=== Изменяем подсчет суммы доставки, отображающейся при оформлении заказа ===
Редактируем файл ''/administrator/components/com_virtuemart/html/ro_basket.php''
После строк
else {
$shipping_total = 0;
$shipping_display = "";
}
добавляем
// Begin hack for prepaid
if ( $payment_method_id == NN && $subtotal > SUMMA ) {
$shipping_total = 0;
$shipping_display = $GLOBALS['CURRENCY_DISPLAY']->getFullValue($shipping_total);
}
// End hack for prepaid
Где NN - идентификатор нашего метода оплаты (payment_method_id), а SUMMA - сумма, выше которой посылка не будет оплачиваться покупателем.
=== Изменяем уведомление пользователя о доставке ===
Редактируем файл шаблона ''/components/com_virtuemart/themes/default/templates/checkout/get_final_confirmation.tpl.php''
Если шаблон не default - соответственно выбираем нужный.
Заменяем кусочек кода
// Print out the Selected Shipping Method
if(!ps_checkout::noShippingMethodNecessary()) {
echo ''.$VM_LANG->_('PHPSHOP_INFO_MSG_SHIPPING_METHOD') . ": ";
$rate_details = explode( "|", urldecode(urldecode(vmGet($_REQUEST,'shipping_rate_id'))) );
echo '';
foreach( $rate_details as $k => $v ) {
// thepisu: old sample data cointaned ">" instead of ">"...
// so we don't have to make safe if ">" is found
if (strpos($v,">")===false) {
$v = shopMakeHtmlSafe($v);
}
if( $k == 3 ) {
echo $CURRENCY_DISPLAY->getFullValue( $v )."; ";
} elseif( $k > 0 && $k < 4) {
echo $v.'; ';
}
}
echo " ";
}
на
// Print out the Selected Shipping Method
if(!ps_checkout::noShippingMethodNecessary()) {
echo ''.$VM_LANG->_('PHPSHOP_INFO_MSG_SHIPPING_METHOD') . ": ";
$rate_details = explode( "|", urldecode(urldecode(vmGet($_REQUEST,'shipping_rate_id'))) );
echo '';
// Begin of hack for prepaid
if ( $payment_method_id == NN && $GLOBALS['subtotal'] > SUMMA ) {
echo $VM_LANG->_('PHPSHOP_CHECKOUT_PREDOPLATA');
}
else {
// end hack for prepaid
foreach( $rate_details as $k => $v ) {
// thepisu: old sample data cointaned ">" instead of ">"...
// so we don't have to make safe if ">" is found
if (strpos($v,">")===false) {
$v = shopMakeHtmlSafe($v);
}
if( $k == 3 ) {
echo $CURRENCY_DISPLAY->getFullValue( $v )."; ";
} elseif( $k > 0 && $k < 4) {
echo $v.'; ';
}
}
} // Needed for hack for prepaid
echo " ";
}
Где NN - идентификатор нашего метода оплаты (payment_method_id), а SUMMA - сумма, выше которой посылка не будет оплачиваться покупателем.
{{tag>virtuemart hack хак доставка бесплатная_доставка хитрая_доставка стоимость_доставки}}