Добавляем перечеркнутое поле старая цена в Ubercart Views (Drupal).

Главные вкладки

Аватар пользователя stillfinder stillfinder 28 декабря 2012 в 18:50

Итак задача: у нас есть вывод материалов типа уберкартовский продукт, и нам нужно добавить перечеркнутое поле с текущей ценой (старая цена), а вместо цены вывести старое значение - 12%. То есть у нас в шопе все как бы подешевело на 12% и мы доносим это все нашим клиентам. Приступим.

Чтобы отнять от числа какой-то процент, пользуемся следующей формулой:
n-p%=n*(1-p/100)
Для 12% (Х-12%):
Х-12%==Х*(1-12/100)==Х*0.88

Идем в нашу базу данных, я использовал для этой цели phpmyadmin, и смотрим таблицу uc_products. В ней у нас есть два интересных поля - sell_price и cost. sell_price в моем views выводился как цена, а cost везде имел значение 0. Его я и решил использовать для "старой цены".

Кликаем на вкладку SQL и выполняем следующие запросы:

UPDATE uc_products
SET sell_price=sell_price*0.88;

UPDATE uc_products
SET cost=sell_price/0.88;

Знаю, что можно было сначала скопировать значение sell_price в cost, а потом запускать первый запрос. Но изначально я собирался делать все немного по другому, поэтому получились запросы в такой последовательности.

Переходим в наш views, там добавляем еще одно поле "Товар: Стоимость" и размещаем его над "Товар: Стоимость для продажи". Сохраняем views. Теперь осталось дело за малым - немного подправить стили, чтобы старая цена была зачеркнутой, ну и еще какие-то вещи на Ваше усмотрение:

.views-field-cost .field-content {
text-decoration:line-through;
}

Дальше профит. Наша цена стала новой (меньше на 12%), а старая цена выводиться зачеркнутой над ней.

Оригинал с картинкой здесь: http://stillfinder.net/blog/dobavlyaem-perecherknutoe-pole-staraya-tsena...