Как сделать разные дополнительные поля для разных услуг?
Дополнительные поля по-умолчанию отображаются одни на все услуги. Используя пример доработки ниже, Вы можете управлять отображением тех или иных полей в зависимости от названия услуги или имени сотрудника. Для начала необходимо создать все возможные дополнительные поля на 5 шаге настроек в блоке "Настройка отображения полей формы контактов клиента" и сохранить настройки. Далее, в дополнительный CSS и JS необходимо вставить следующий код:
CSS:
<style>.custom-field { display: none; }</style>
JS:
<script>
var fields = {
'Замена свечей': '1',
'Замена масла в двигателе': '2|3',
};
function checkCustomFields(fields) {
if ($('#contact:visible').length > 0 && $('.custom-field:first').attr('data-inited') == undefined) {
$('.custom-field:first').attr('data-inited', '1');
var info = $('.contact-service').text().replace(/«|»|"/g, '');
$('.custom-field').each(function() {
$(this).find('input, textarea').val('-');
});
for (var service in fields) {
if (info.indexOf(service.replace(/«|»|"/g, '')) >= 0) {
for (var n in fields[service]) {
$('.custom-field').eq(fields[service][n]-1).show().find('input, textarea').val('');
}
}
}
}
}
$(document).ajaxComplete(function() { checkCustomFields(fields); });
checkCustomFields(fields);
</script>
Данный код скроет по-умолчанию отображение всех дополнительных полей и отобразит поле 1 в услуге "Замена свечей" и поля 2 и 3 в услуге "Замена масла в двигателе". Добавляя услуги или меняя номера полей можно управлять их отображением. Нумерация полей идет сверху вниз от 1 до 10, записываются через |, например "1|2|3".