EZ Form Calculator: Настройка калькулятора — изменение цены от количества

Задача. На сайте полиграфии необходимо сделать калькулятор в WordPress, который позволяет выбрать формат услуги, показать цену и изменять её в зависимости от количества товара (услуги). Например, цена за товар — 14 руб до 10 штук, от 11 до 50 — 11 руб, свыше 50 — 10 руб.

Изображение 1: Цена товара до 10 шт.
Изменение цены от количества
Изображение 2: При увеличении тиража цена на одну единицу изменилась

Решение. Неплохое, многофункциональное решение для калькулятора с возможностью отправки форм на WordPress — плагин EZ Form Calculator. С помощью него можно настроить логику показа полей в зависимости от значений других полей. Также можно настроить изменение одного значения (например, цены) от изменения значения параметра другого поля (например, количество товаров).

Упрощенно, алгоритм решения задачи с изменением цены от изменения количества товаров:

  1. Создаем калькулятор и добавляем такие элементы: Переключатель (Radio), Скрытый (Hidden), Промежуточный итог (Subtotal), Числа (Numbers) и Пользовательский Расчет (Custom calculation) [Изображение 3].
  2. В Переключатель (Radio) добавляем нужное количество вариантов и настраиваем логику отправления значений в поле Скрытый Расчет, с учетом выбранного варианта (Radio) и ползунка или числового поля (Numbers).
  3. В Промежуточном итоге (Subtotal) указываем формулу подсчета. По сути это будет просто значение из поля Скрытый Расчет.
  4. Настраиваем поле Числа (Numbers) в виде слайдера.
  5. У полей Переключатель (Radio) и Числа (Numbers) в настройках нужно установить значение настройки Is_currency на Нет (т.е. не является валютой).

 

Важно! Лучше сначала настроить макет формы с блоками визульно, а уже потом программировать поля. И если, уже после удачной работы, по какой-то причине будут перемещать блоки полей по макету, то обязательно нужно проверить калькулятор на работоспособность. Замечено, что при перемещении по макету полей, которые содержат условия во вкладке «Conditional», странным образом перестают срабатывать эти условия. Они не исчезают и достаточно зайти в настройки такого блока и перевыбрать тоже самое в нескольких полях и сохранить. Потом начинает все работать.

 

Настройки EZ Form Calculator 1
Изображение 3:

В Переключатель (Radio) устанавливаем Is_currency (Валюта) — Нет. Добавляем необходимые опции, т.е. варианы переключателя. Задаем Name (напр., Форма). Во вкладке «CONDITIONAL» (условие) задаем астройки, при которых в зависимости от выбранного в переключателе варианта (опции) и значения «Тиража» будут задаваться нужные значения полю Скрытый Расчет [Изображение 4 и 5].

Настройки EZ Form Calculator 2
Изображение 4: Переключатель (Radio) добавляем необходимое количество опций (вариантов)
Настройки EZ Form Calculator 3
Изображение 5: Настройка логики переключателя и вывод выбранного значения в скрытое поле
Замечание! На Изображении 5 в поле условного оператора (CO) лучше не выбирать «Выбранное значение > (-//- <)», т.к. потом возникают сложности при расчете со значениями в нем более 1000. Лучше выбрать «>», «<«. В первом случае возникают проблемы в срабатывании условий. Например, в данном примере условие с «Выбранное значени >» не будет срабатывать, когда значение слайдера будет от 1000. Видимо, это как-то связано с тем, что трехзначное число на экран выводится через запятую как «1,000».

В поле Скрытый Расчет (Hidden) главное задать уникальное Name, т.к. оно будет использоваться в формуле далее. Is_currency должно быть — Да. [Изображение 6].

В принципе значение Name у всех полей должно быть уникальным, и плагин покажет если будут дубли в именах.
Настройки EZ Form Calculator 4
Изображение 6: В Скрытый Расчет (Hidden) задаем имя (или оставляем как есть, если дубоей в калькуляторе не будет)
Плагин сложный, поэтому рекоммендуется перевести на русский язык (если плохой английский). С переводом может помочь EZ Form Calculator русификатор
Ссылка на основную публикацию