Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Прошу помочь, как установить текст, вместо цены 0.00


Recommended Posts

Доброго времени суток всем!

 

Прошу помочь, как установить текст (например Звоните), вместо цены 0.00 

 

Версия магазина ocStore 2.3.0.2

 

Уже пробовал вот так в файле system/library/cart/currency.php:

 

$string = '';
if ((float)$value == 0 && ($format)) {
return 'Звоните';
}

 

Не работает, что не так...

 

Заранее благодарен!

Змінено користувачем IVANLVOVICH
Надіслати
Поділитися на інших сайтах


Доброго времени суток всем!

 

Прошу помочь, как установить текст (например Звоните), вместо цены 0.00 

 

Версия магазина ocStore 2.3.0.2

 

Уже пробовал вот так в файле system/library/cart/currency.php:

 

$string = '';
if ((float)$value == 0 && ($format)) {
return 'Звоните';
}

 

Не работает, что не так...

 

Заранее благодарен!

Для начала выведите $value через var_dump и посмотрите что там у меня есть сомнения насчет того что там знечение равно просто 0

Надіслати
Поділитися на інших сайтах

А с какой радости вы решили, что $value - это цена товара?

$value - это курс! Цена - это $number.

 

И зачем скобки вокруг $format?

 

Должно быть так:

if ((float)$number == 0 && $format) {
    return 'Звоните';
}

Но я очень рекомендую не вписывать сюда никакие тексты, а добавить эту строку в базовый языковой файл и выводить так:


if ((float)$number == 0 && $format) {
    return $this->language->get('text_call');
}

Где text_call - название переменной из /catalog/language/ru-ru/ru-ru.php.

  • +1 2
Надіслати
Поділитися на інших сайтах


А с какой радости вы решили, что $value - это цена товара?

$value - это курс! Цена - это $number.

 

И зачем скобки вокруг $format?

 

Должно быть так:

if ((float)$number == 0 && $format) {
    return 'Звоните';
}

Но я очень рекомендую не вписывать сюда никакие тексты, а добавить эту строку в базовый языковой файл и выводить так:


if ((float)$number == 0 && $format) {
    return $this->language->get('text_call');
}

Где text_call - название переменной из /catalog/language/ru-ru/ru-ru.php.

 

Ну что сказать, громадное Вам спасибо. Все сделал как сказали, работает.  :eek:

Надіслати
Поділитися на інших сайтах


  • 3 months later...
В 12.01.2017 в 00:49, Dotrox сказал:

Но я очень рекомендую не вписывать сюда никакие тексты, а добавить эту строку в базовый языковой файл и выводить так:



if ((float)$number == 0 && $format) {
    return $this->language->get('text_call');
}

Где text_call - название переменной из /catalog/language/ru-ru/ru-ru.php.

А подскажите базовый языковой файл это какой?

 

Разобрался, все заработало, спасибо большое

Змінено користувачем bakser101
Надіслати
Поділитися на інших сайтах


1 час назад, bakser101 сказал:

А подскажите базовый языковой файл это какой?

Он указан в том тексте, который вы процитировали.

Если у вас такого файла нет, тогда вместо ru-ru везде - russian (это пример для русского, в других языках соответственно языку).

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 8 months later...
В 12.01.2017 в 01:49, Dotrox сказал:

А с какой радости вы решили, что $value - это цена товара?

$value - это курс! Цена - это $number.

 

И зачем скобки вокруг $format?

 

Должно быть так:


if ((float)$number == 0 && $format) {
    return 'Звоните';
}

Но я очень рекомендую не вписывать сюда никакие тексты, а добавить эту строку в базовый языковой файл и выводить так:



if ((float)$number == 0 && $format) {
    return $this->language->get('text_call');
}

Где text_call - название переменной из /catalog/language/ru-ru/ru-ru.php.

если установлен модификатор auco calc price, то в карточке товара на секунду появляется надпись и меняется на 0. В остальных местах все норм.

 

Может знаете как поправить?

Надіслати
Поділитися на інших сайтах


4 часа назад, kamar87 сказал:

модификатор auco calc price

вы думаете все обязаны знать этот мод?  ссылку?

Надіслати
Поділитися на інших сайтах

6 часов назад, kamar87 сказал:

если установлен модификатор auco calc price, то в карточке товара на секунду появляется надпись и меняется на 0. В остальных местах все норм.

 

Может знаете как поправить?

Найдите в модуле строку:

price_text = s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right;

После неё вставьте код:
 

if (n == 0) price_text = 'Звоните';

Вместо текста лучше сразу вставить языковую переменную, если она заведена.

  • +1 2
Надіслати
Поділитися на інших сайтах

15 часов назад, mpn2005 сказал:

Найдите в модуле строку:


price_text = s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right;

После неё вставьте код:
 


if (n == 0) price_text = 'Звоните';

Вместо текста лучше сразу вставить языковую переменную, если она заведена.

огромное Вам спасибо, работает

Надіслати
Поділитися на інших сайтах


  • 11 months later...

Всем доброго дня,

Большое спасибо за подсказку - как раз искал- то что надо!

Единственное не могу понять где завести языковую переменную, в какую папку добавить ссылку на $this->language->get('text_call');

В папке /наз-ие вашего сайта/catalog/language/ru-ru или russian куча папок типа module, product, common, error  т.д.

Я так понял надо найти папку  product и файл product.php и там

дописать строчку? или я ошибаюсь, подскажите гуру

$_['text_call']                             = 'Звоните';

Надіслати
Поділитися на інших сайтах


В 09.01.2018 в 23:26, mpn2005 сказал:

Найдите в модуле строку:


price_text = s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right;

После неё вставьте код:
 


if (n == 0) price_text = 'Звоните';

Вместо текста лучше сразу вставить языковую переменную, если она заведена.

if (n == 0) price_text = 'Звоните';

с ссылкой на зыковую переменную, так будет правильно?

if (n == 0) ; $this->language->get('text_call');

Надіслати
Поділитися на інших сайтах


В 02.01.2019 в 16:50, valentin911 сказал:

if (n == 0) price_text = 'Звоните';

с ссылкой на зыковую переменную, так будет правильно?

if (n == 0) ; $this->language->get('text_call');

Так не получится.

Надо в контроллер product.php вставить строку:

$data['text_call'] = $this->language->get('text_call');

А уже в выводе использовать переменную:

if (n == 0) price_text = '<?php echo $text_call; ?>';

 

Надіслати
Поділитися на інших сайтах

  • 2 years later...
В 12.01.2017 в 01:49, Dotrox сказал:

 


if ((float)$number == 0 && $format) {
    return $this->language->get('text_call');
}

 

 

Здравствуйте все.

Может кто-нибудь подсказать каким образом можно реализовать дополнительный функционал:

- при НЕнулевой цене на кнопке быстрого заказа выводится один текст (например "сделать ");

- при нулевой цене выводится другой текст (например "Текст №2").

 

К сожалению в php полный ноль.

Змінено користувачем mmmailboxxx
уточнение
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
В 17.01.2021 в 13:39, mmmailboxxx сказав:

- при НЕнулевой цене на кнопке быстрого заказа выводится один текст (например "сделать ");

- при нулевой цене выводится другой текст (например "Текст №2").

Элементарно:

if ((float)$number > 0 && $format) {
    return $this->language->get('text_1');
} elseif ((float)$number == 0 && $format) {
    return $this->language->get('text_2');
}

 

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
9 годин назад, SFS77 сказав:

Я генерю мета Bath Editor-ом, интересно, он будет подставлять цену "0" или "Звоните" ?

Конечно, не будет.

Делайте генерацию через код на лету.

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.