Как сделать "Если цена ноль то выводим слово "Звоните"

Изучаю oscommerce неделю, так что не пинайте сильно, если что не так.
Поставил 3-ю версию с русским обновлением- все стало как положено
Нашел полезную функцию, но изучая код я понял, что он как минимум - не к 3-ей версии.... А хотелось бы реализовать такую штуку.
Как малограмотный - я сделал так:
В файле includes/classes/currencies.php после

Цитировать
if ( (DISPLAY_PRICE_WITH_TAX == '1') && ($tax_class_id > 0) ) {
        $price += osc_round($price * ($osC_Tax->getTaxRate($tax_class_id) / 100), $this->currencies[DEFAULT_CURRENCY]['decimal_places']);
      }
я вставил

Цитировать
if ($price == 0) {
    return 'Звоните!!!';
               }
      else {

Общий вид кода получился такой:
Цитировать
if ( (DISPLAY_PRICE_WITH_TAX == '1') && ($tax_class_id > 0) ) {
        $price += osc_round($price * ($osC_Tax->getTaxRate($tax_class_id) / 100), $this->currencies[DEFAULT_CURRENCY]['decimal_places']);
      }
if ($price == 0) {
    return 'Звоните!!!';
               }
      else {

      return $this->format($price * $quantity, $currency_code, $currency_value);
    }   
   }


Интересует мнение гуру и корректировки данного решения.(так как я в скриптах - балбес) . Как это реализовать ПРАВИЛЬНО? Я думаю, что мое решение, хоть и работает, но технически сделано безграмотно...
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

И попутно еще вопросик - как сделать так, чтобы наличие товара на складе показывалось клиенту(в смысле - количество товара в штуках...)?

« Последнее редактирование: 11 Мар 2018 16:24:29 pm от Spido »
*

Love

И попутно еще вопросик - как сделать так, чтобы наличие товара на складе показывалось клиенту(в смысле - количество товара в штуках...)?
В листинге товаров это включается в Конфигурация -> Листинг товаров, а в полном описании надо дописывать.

В листинге товаров это включается в Конфигурация -> Листинг товаров, а в полном описании надо дописывать.
Спасибо, получилось.

*

balldress

Что-то у меня по-русски выводить 'Звоните!!!' не хочет. Все квадратики с восклицательными знаками печатает.
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Может, с кодировками разными сохраняете? Я и открывал и сохранял в UTF-8
А гуру так и не снизошли к вопросу в шапке...
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

*

balldress

А в чем открывали?

*

Love

Что-то у меня по-русски выводить 'Звоните!!!' не хочет. Все квадратики с восклицательными знаками печатает.
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Чтоб по русски светило, надо по человечески сделать. Прописать через языковые.

А в чем открывали?
Открывал редактором на хостинге. Он предлагает выбирать кодировку и потом в этой кодировке сохраняет файл...
Чтоб по русски светило, надо по человечески сделать. Прописать через языковые.
Вот если бы еще кто-нибудь написал - как это по-человечески.... Что такое "Прописать через языковые."? - фиг его знает...
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Если имелись ввиду языковые переменные, то я пробовал, но у меня не получилось... Видимо, по той же причине, которая указана в первом посте...  А другого решения - никто и не предложил...

*

Love

В этой функции дописываем $osC_Language, т.е
Вот тут

    function displayPrice($price, $tax_class_id, $quantity = 1, $currency_code = null, $currency_value = null) {
      global $osC_Tax
Делаем так
    function displayPrice($price, $tax_class_id, $quantity = 1, $currency_code = null, $currency_value = null) {
      global $osC_Tax, $osC_Language;

Через админку в Конфигурация - Языки- Ваш язык в папку general добавляем например ключ listing_price_zero со значением Звоните!!!

А в этом файле в коде свое
return 'Звоните!!!';меняете на
return $osC_Language->get('listing_price_zero');И если у вас применяются налоги лучше добавить аналогично и в function displayPriceWithTaxRate
А дописано по этому поводу нормально. Других вариантов я тоже не вижу.

« Последнее редактирование: 10 Дек 2010 14:21:40 pm от Love »

подскажите, если цена на товар 0 то нельзя оформить заказ через сайт, или есть какая то возможность?

*

Love

подскажите, если цена на товар 0 то нельзя оформить заказ через сайт, или есть какая то возможность?
Можно.

а как это сделать? подскажите пожалуйста

*

Love

а как это сделать? подскажите пожалуйста
Чего сделать? Мысли ваши читать не научились, до конца описывайте не держите половины в голове своей.
И тот вопрос который выше вы написали, сами прочитайте внимательно под одним вопросом. Что получится? То я и ответил.
Или задавайте двумя разными вопросами. Чукча не понимает вас.

« Последнее редактирование: 31 Май 2011 18:39:58 pm от Love »

на сайте цена 0, выводится слово "Звоните"
не могу через сайт оформить заказ
добавляю товар в корзину, после этого нажимаю кнопку "Оформить", переходит на страницу "Вариант доставки", нажимаю кнопку "Продолжить"
и ничего не происходит, просто перегружается страница "Вариант доставки"

*

Love

на сайте цена 0, выводится слово "Звоните"
не могу через сайт оформить заказ
добавляю товар в корзину, после этого нажимаю кнопку "Оформить", переходит на страницу "Вариант доставки", нажимаю кнопку "Продолжить"
и ничего не происходит, просто перегружается страница "Вариант доставки"
Модуль доставки какой нить установлен? Если нет то так и будет.