Если цена равна 0, то заменяем ее на надпись (Бесплатно) как реализовать в 1с Битрикс?

Здравствуйте!
Есть код, который выводит способы доставки в карточку товара:
<div>
<?
$db_dtype = CSaleDelivery::GetList(
    array(
            "SORT" => "ASC",
            "NAME" => "ASC"
        ),
    array(
            "LID" => SITE_ID,
            "+<=WEIGHT_FROM" => $ORDER_WEIGHT,
            "+>=WEIGHT_TO" => $ORDER_WEIGHT,
            "+<=ORDER_PRICE_FROM" => $ORDER_PRICE,
            "+>=ORDER_PRICE_TO" => $ORDER_PRICE,
            "ACTIVE" => "Y",
            "LOCATION" => $DELIVERY_LOCATION
        ),
    false,
    false,
    array()
);
if ($ar_dtype = $db_dtype->Fetch())
{
   echo '<div class="delivery_list_title">Способы доставки:</div><br>';
   do
   {
      echo $ar_dtype["NAME"]." - ".CurrencyFormat($ar_dtype["PRICE"], $ar_dtype["CURRENCY"], $ar_dtype["NAME"])."<br>";
   }
   while ($ar_dtype = $db_dtype->Fetch());
}
else
{
   echo "Доступных способов доставки не найдено<br>";
}
?>

</div>

Так вот, как сделать так, чтобы при нулевой стоимости доставки, у нас сумма и валюта заменялась на слово - Бесплатно?
Есть у меня вот такой кусочек кода:
if (....[PRICE] > 0) {echo $....[PRICE];}else{echo 'бесплатно';};

Но я к сожалению плохо знаком с языками программирования и реализовать не получается, может кто-то подскажет как правильно все это слепить?
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
@hecby_v
Если для каждого способа доставки, то это
echo $ar_dtype["NAME"]." - ".CurrencyFormat($ar_dtype["PRICE"], $ar_dtype["CURRENCY"], $ar_dtype["NAME"])."<br>";

заменить на это
$price = $ar_dtype["PRICE"];
  if($price > 0){
    $txt_price = CurrencyFormat($ar_dtype["PRICE"], $ar_dtype["CURRENCY"], $ar_dtype["NAME"]);
  }
  else{
    $txt_price = 'Бесплатно';
  }
  echo $ar_dtype["NAME"] . " - " . $txt_price . '<br>';
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pro6ka
@pro6ka
web developer
Замените
if ($ar_dtype = $db_dtype->Fetch())
на $db_dtype->SelectedRowsCount() это позволит заменить do {} while на обычный while, а внутри него if-ом проверяйте значение цены, как показано выше
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы