Перейти к содержанию

Рекомендуемые сообщения

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

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

<?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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

buslikdrev

Огромное спасибо! Помогло.

 

Изменено пользователем molexuse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, prived сказал:

зачем трим? 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, molexuse сказал:

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


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

Спойлер

$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 } ?>

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.