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

Вывод цены без валюты


Recommended Posts

Здравствуйте, возник такой вопрос, как можно вывести сумму товара $product['price'] , но без указания валюты?

Необходимо на последнем этапе для того, что бы клиент мог оплатить заказ через стандартную форму приема платежей яндекса ( не модуль ), соответственно из за того что подставляется кроме самой цены валюта - ( руб. ) ругается на неправильно указанную цену. Буду премного благодарен, если кто то подскажет выход из ситуации, спасибо!)

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


Только что, Lazdakon сказал:

Здравствуйте!
/admin/index.php?route=localisation/currency/edit здесь уберите символ справа у требуемой валюты

 

Спасибо, но это было бы слишком просто)) таким методом валюта совсем везде отключится, а нужно вывести только цифры только в одном месте =)

Но все равно спасибо за ответ!)

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


Только что, baster789 сказал:

А форматировать ее пробовали перед выводом в оплате? Она ж туда как-то попадает, вот в этом месте форматируйте ее в нужный вид

 

Не совсем понимаю, может я немного неясно разъяснил)

 

Имеется страница в которой подсчитывается сумма ( условно: checkout/checkout ) - Оформление заказа.

На ней естественно выводится итоговая сумма и должна она выводиться в формате -  *** руб.

Выводится она через <?php echo $product['price'] ?>

 

Вот я и спрашиваю, возможно есть какой то код, который так же выводит эту же сумму, но без ( руб.) - только цифры,

или же возможно что то дописать, что бы в одном месте эти руб убирались... вот) причем именно в одном конкретном месте, а не на всём сайте, странице.

 

PS .. в php крайне слаб, по этому возможно ответ кроется на поверхности,)

 

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


@donny ну вот по совету @baster789 попробуйте в контроллере перед выводом обрезать строку со стоимостью:

$product['price'] = substr($product['price'], 0, -5);

* -5 в случае, если после числа 5 символов: пробел и "руб."

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

17 минут назад, Lazdakon сказал:

@donny ну вот по совету @baster789 попробуйте в контроллере перед выводом обрезать строку со стоимостью:


$product['price'] = substr($product['price'], 0, -5);

* -5 в случае, если после числа 5 символов: пробел и "руб."

 

Огромнейшее приогромнейшее спасибо! -8 самое то, всё работает! =)

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


Прошу прощения, не хотел спамить создавая темы, но появился еще один, надеюсь последний вопрос.

 

Подскажите пожалуйста, как можно вывести эту самую сумму, которую настоили выше вывести на страницу /success, понимаю, что в контроллере нужно как то что то прописать, попытался как то так, но не угадал, заранее большое спасибо..

 

Вот что я пытался впихнуть в контроллер =)):

        if (isset($this->session->data['order_id'])) {
        $this->data['price'] = $this->session->data['price']; 
        $this->data['total'] = $this->cart->getTotal(); 
            $this->cart->clear();

 

Если вдруг окажется, что проще сделать направление клиента после нажатия на кнопку Подтвердить заказ на свою собственную страницу, а не на success, тоже очень даже подойдет..  извиняюсь за много вопросов(

 

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


  • 2 months later...

Так долго думала над решением, а всё оказалось проще чем казалось. Делюсь своим решением
Мне нужно было получить значение цены без вылюты, чтобы передать его в переменную javascript. Воспользовалась регулярными выражениями
в шалблоне  /catalog/view/theme/default/template/product

<?php
    $string = $price;
    $string = preg_replace('~[^0-9]+~','',$string);
    $string1 = $special;
    $string1 = preg_replace('~[^0-9]+~','',$string1);
    ?>

В место вывода цены пишем код

<?php if (!$special) {echo $string;} else {echo $string1;} ?>

Также это мне пригодилось для микроразметки.

 

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


Люди, что вы делаете? :blink: Зачем извращаться с отформатированной ценой удаляя оттуда валюту, если можно взять не отформатированную цену без валюты?

В соответствующих контроллерах ищите свою переменную с отформатированной ценой. Значение для неё будет браться из

$this->currency->format()

Первый параметр в этом вызове - это чистая цена (обычно она ещё обёрнута в подсчёт налогов). Берёте эту чистую цену и выводите отдельной переменной.

 

В случае оформления заказа это может быть не в контроллере, а в модели (тоталы рассчитываются в собственных моделях).

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


  • 11 months later...

Здравствуйте, подскажите пожалуйста, хочу вывести условие в карточке товара для показа гарантированной скидки от цены товара (*если цена больше *** и меньше *** то выводить ***) но в переменную $price выводится значение с валютой,пробелом и т.п. из-за этого условие не работает,как можно вывести переменную только с конечной цифрой ?

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


  • 1 year later...
On 8/8/2017 at 3:44 PM, Dotrox said:

Люди, что вы делаете? :blink: Зачем извращаться с отформатированной ценой удаляя оттуда валюту, если можно взять не отформатированную цену без валюты?

В соответствующих контроллерах ищите свою переменную с отформатированной ценой. Значение для неё будет браться из


$this->currency->format()

Первый параметр в этом вызове - это чистая цена (обычно она ещё обёрнута в подсчёт налогов). Берёте эту чистую цену и выводите отдельной переменной.

 

В случае оформления заказа это может быть не в контроллере, а в модели (тоталы рассчитываются в собственных моделях).


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

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


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

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

 

На такой случай у метода format есть четвёртый параметр, который отключает форматирование цены, но перерасчёт сохраняется.

Будет так:

$this->currency->format($price, $this->session->data['currency'], '', false);

 

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


  • 6 months later...
On 8/8/2017 at 7:06 AM, moska said:

Так долго думала над решением, а всё оказалось проще чем казалось. Делюсь своим решением
Мне нужно было получить значение цены без вылюты, чтобы передать его в переменную javascript. Воспользовалась регулярными выражениями
в шалблоне  /catalog/view/theme/default/template/product


<?php
    $string = $price;
    $string = preg_replace('~[^0-9]+~','',$string);
    $string1 = $special;
    $string1 = preg_replace('~[^0-9]+~','',$string1);
    ?>

В место вывода цены пишем код


<?php if (!$special) {echo $string;} else {echo $string1;} ?>

Также это мне пригодилось для микроразметки.

 

Сработало для микроразметки. Но 435.00 долларов превратились в 43500. Не подскажете, как разделить в вашей схеме точкой доллары и центы?

On 8/8/2017 at 7:06 AM, moska said:

 

 

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


  • 2 months later...
В 17.02.2020 в 20:31, dzam сказал:

 

Сработало для микроразметки. Но 435.00 долларов превратились в 43500. Не подскажете, как разделить в вашей схеме точкой доллары и центы?

 

 

<?php
  $string = $price;
  $string = preg_replace( '/[^.\d]/', '',$string );
  $string1 = $special;
  $string1 = preg_replace( '/[^.\d]/', '',$string1 );
?>

 

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


  • 6 months later...
В 17.04.2020 в 20:41, AlehandroF сказал:

 


<?php
  $string = $price;
  $string = preg_replace( '/[^.\d]/', '',$string );
  $string1 = $special;
  $string1 = preg_replace( '/[^.\d]/', '',$string1 );
?>

 

 

Вот решение попробуйте

<?php
  $string = $price;
  $string = preg_replace( '/[^\d]/', '',$string );
  $string1 = $special;
  $string1 = preg_replace( '/[^\d]/', '',$string1 );
?>
Надіслати
Поділитися на інших сайтах


  • 3 months later...
В 08.08.2017 в 15:06, moska сказав:

Так долго думала над решением, а всё оказалось проще чем казалось. Делюсь своим решением
Мне нужно было получить значение цены без вылюты, чтобы передать его в переменную javascript. Воспользовалась регулярными выражениями
в шалблоне  /catalog/view/theme/default/template/product


<?php
    $string = $price;
    $string = preg_replace('~[^0-9]+~','',$string);
    $string1 = $special;
    $string1 = preg_replace('~[^0-9]+~','',$string1);
    ?>

В место вывода цены пишем код


<?php if (!$special) {echo $string;} else {echo $string1;} ?>

Также это мне пригодилось для микроразметки.

 

Работает, а как сделать такое же для функции <?php echo $product['total']; ?> Цена итого в корзине

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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