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

Помощь по php


Recommended Posts

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

Есть такой фрагмент кода

<?php if ($price)  {  ?>
   , "offers":{"@type": "Offer",
    "priceCurrency": "<?php echo $currencycode; ?>",
	<?php if (!$special) { 
	if ($language_decimal_point == ','){
		$newprice = str_replace('.','',$price);
		$newprice = str_replace(',','.',$newprice);
		$newprice = preg_replace("/[^0-9.]/", "", $newprice);
		$newprice = ltrim($newprice,'.');
	}else{
		$newprice = $price;
		$newprice = preg_replace("/[^0-9.]/", "", $newprice);
		$newprice = ltrim($newprice,'.');
	}
	?>
		"price": "<?php echo $newprice; ?>"
	<?php } else { 
		if ($language_decimal_point == ','){
		$hewspecial = str_replace('.','',$special);
		$hewspecial = str_replace(',','.',$hewspecial);
		$hewspecial =  preg_replace("/[^0-9.]/", "", $hewspecial);
		$hewspecial = ltrim($hewspecial,'.');
		}else{
		$hewspecial = $special;
		$hewspecial =  preg_replace("/[^0-9.]/", "", $hewspecial);
		$hewspecial = ltrim($hewspecial,'.');
		}
	?>
		"price": "<?php echo $hewspecial; ?>"
	<?php } ?>

Он преобразует цену из 10.00 грн. в 10.00.

Т.к. используется точка после валюты грн то она остается, а нужно что бы было 10.00

Подскажите как подправить выражение.

Спасибо.

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


Для этого вероятно нужно править файлы контроллера. Здесь же обычный vqmod на странице продукта формирует цену для сниппета микроразметки.

Абсолютно не разбираюсь в движке, правлю только дизайн в основном, поэтому и вопрос.

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


зачем трим? 

почему тем же ocmod не получить новую переменную из контроллера? 

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


4 минуты назад, prived сказал:

зачем трим? 

почему тем же ocmod не получить новую переменную из контроллера? 

Если бы знал как, конечно бы сделал, тут уже готовое было.

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


15 минут назад, buslikdrev сказал:


Попробуйте это регулярное выражение:

  Показать контент

$newprice = preg_replace("/[^0-9.][^0-9]/", "", $newprice);
$hewspecial = preg_replace("/[^0-9.][^0-9]/", "", $hewspecial);

trim можно будет убрать.
 



<?php if ($price)  {  ?>
   , "offers":{"@type": "Offer",
    "priceCurrency": "<?php echo $currencycode; ?>",
	<?php if (!$special) { 
	if ($language_decimal_point == ',') {
		$newprice = str_replace(',', '.', $price);
		$newprice = preg_replace("/[^0-9.][^0-9]/", "", $newprice);
	} else {
		$newprice = preg_replace("/[^0-9.][^0-9]/", "", $price);
	}
	?>
		"price": "<?php echo $newprice; ?>"
	<?php } else { 
		if ($language_decimal_point == ',') {
		$hewspecial = str_replace(',', '.', $special);
		$hewspecial = preg_replace("/[^0-9.][^0-9]/", "", $hewspecial);
		} else {
		$hewspecial = preg_replace("/[^0-9.][^0-9]/", "", $special);
		}
	?>
		"price": "<?php echo $hewspecial; ?>"
	<?php } ?>

 

 

Еще лучше! Благодарю, очень выручили :) Все благ!!!!

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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