MODx: вывод даты +N дней, завтра п/завтра и любое количество дней

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

Акция, до завершения которой всегда будет +n дней, мы установили +3 дня.

Вы заходите на сайт в карточку товара, видите перечеркнутую цену, рядом цену со скидкой и надпись: Акция до NN/NN спешите!

Рассказываю подробно как это просто реализовать:

Что сделать, чтоб ваша цена на сайте красиво смотрелись, с пробелом после знаков. Не так 25000, а вот так 25 000. Создаем сниппет, можем назвать, как угодно, например: priceformat. В код сниппета PHP вставляем:

<?php if(strlen($input) == 0) return; $input = floatval(str_replace(array(' ',','), array('','.'), $input)); return number_format($input,(floor($input) == $input ? 0 : 2),'.',' ');

Создаем TV поле для актуальной цены [[*price]] и для старой, которая будет перечеркнута [[*price-old]].

Вставляем в необходимые вам места в шаблоне эти TV поля только добавляем к ним наш сниппет: [[*price:priceformat]], [[*price-old:priceformat]], конечно же не забудьте все красиво оформить с помощью CSS стилей. Теперь вывод цены будет разделен пробелом.

С ценой определились, теперь как вывести дату, которая всегда будет прибавлять любое количество дней.

Создаем сниппет, например date, со следующим кодом:

<?php $month_arr = array('01' => 'января', '02' => 'февраля', '03' => 'марта', '04' => 'апреля', '05' => 'мая', '06' => 'июня', '07' => 'июля', '08' => 'августа', '09' => 'сентября', '10' => 'октября', '11' => 'ноября', '12' => 'декабря' ); $time = strtotime($input); $month = strftime('%m', $time); $day = strftime('%d', $time); $year = strftime('%Y', $time); return "$day $month_arr[$month] $year";

Месяцы специально прописаны в родительном падеже и с маленькой буквы.

В том месте, где необходимо вывести дату, вставляем: [[!+nowdate:default=`+3 day`:date]] дата будет всегда выводиться +3 дня в формате «15 октября 2024».

Как и где еще это можно использовать ограничивается лишь вашей фантазией!

1
Начать дискуссию