Array ( [0] => 6592 [1] => 5777 [2] => 5768 [3] => 9687 [4] => 6123 [5] => 8835 [6] => 8798 [7] => 8588 [8] => 8448 [9] => 7309 [10] => 6985 [11] => 6700 [12] => 3701 [13] => 3573 [14] => 2023 [15] => 1791 ) в запросе 16 результатов
Категория: 35
API Яндекс.Карт

API Яндекс.Карт

Если нам нужно кастомизировать карту Яндекс, то будет не достаточно подключить ее через iframe, т.к. в нем не будет никаких настроек. Необходимо подключить API Яндекс.Карт Подключаем API Яндекс.Карт На данный Читать далее »

Contact Form 7

Contact Form 7

Contact Form 7 — очень нужный плагин для модулирования различных форм обратной связи. Имеет множество дополнений. Плагин Contact Form 7 Код вставки формы <?php echo do_shortcode( '[[contact-form-7 id="143" title="Контактная форма Читать далее »

/
Взаимодействие форм и scripts

Взаимодействие форм и scripts

Для различных задач требуется отслеживать значения форм и полей формы. У каждого поля (input, select, checkbox, radio) есть свои особенности, которые необходимо учитывать. Поле select $('#sort').change(function(){ //функция работает при изменении Читать далее »

Дополнительные модули комментариев

Дополнительные модули комментариев

Знакомимся с различными модулями / плагинами / api по функционалу комментирования. Комментарии ВКОНТАКТЕ Нужно зарегистрироваться и авторизоваться. 1. Создать приложение ВКОНТАКТЕ, нам будет нужен ID приложения. http://vk.com/apps?act=manage 2. Потом идем Читать далее »

WP_Query Object
(
    [query] => Array
        (
            [post__in] => Array
                (
                    [0] => 6592
                    [1] => 5777
                    [2] => 5768
                    [3] => 9687
                    [4] => 6123
                    [5] => 8835
                    [6] => 8798
                    [7] => 8588
                    [8] => 8448
                    [9] => 7309
                    [10] => 6985
                    [11] => 6700
                    [12] => 3701
                    [13] => 3573
                    [14] => 2023
                    [15] => 1791
                )

            [orderby] => title
            [order] => ASC
            [posts_per_page] => 4
        )

    [query_vars] => Array
        (
            [post__in] => Array
                (
                    [0] => 6592
                    [1] => 5777
                    [2] => 5768
                    [3] => 9687
                    [4] => 6123
                    [5] => 8835
                    [6] => 8798
                    [7] => 8588
                    [8] => 8448
                    [9] => 7309
                    [10] => 6985
                    [11] => 6700
                    [12] => 3701
                    [13] => 3573
                    [14] => 2023
                    [15] => 1791
                )

            [orderby] => title
            [order] => ASC
            [posts_per_page] => 4
            [error] => 
            [m] => 
            [p] => 0
            [post_parent] => 
            [subpost] => 
            [subpost_id] => 
            [attachment] => 
            [attachment_id] => 0
            [name] => 
            [static] => 
            [pagename] => 
            [page_id] => 0
            [second] => 
            [minute] => 
            [hour] => 
            [day] => 0
            [monthnum] => 0
            [year] => 0
            [w] => 0
            [category_name] => 
            [tag] => 
            [cat] => 
            [tag_id] => 
            [author] => 
            [author_name] => 
            [feed] => 
            [tb] => 
            [paged] => 0
            [meta_key] => 
            [meta_value] => 
            [preview] => 
            [s] => 
            [sentence] => 
            [title] => 
            [fields] => 
            [menu_order] => 
            [embed] => 
            [category__in] => Array
                (
                )

            [category__not_in] => Array
                (
                )

            [category__and] => Array
                (
                )

            [post__not_in] => Array
                (
                )

            [post_name__in] => Array
                (
                )

            [tag__in] => Array
                (
                )

            [tag__not_in] => Array
                (
                )

            [tag__and] => Array
                (
                )

            [tag_slug__in] => Array
                (
                )

            [tag_slug__and] => Array
                (
                )

            [post_parent__in] => Array
                (
                )

            [post_parent__not_in] => Array
                (
                )

            [author__in] => Array
                (
                )

            [author__not_in] => Array
                (
                )

            [ignore_sticky_posts] => 
            [suppress_filters] => 
            [cache_results] => 1
            [update_post_term_cache] => 1
            [lazy_load_term_meta] => 1
            [update_post_meta_cache] => 1
            [post_type] => 
            [nopaging] => 
            [comments_per_page] => 50
            [no_found_rows] => 
        )

    [tax_query] => WP_Tax_Query Object
        (
            [queries] => Array
                (
                )

            [relation] => AND
            [table_aliases:protected] => Array
                (
                )

            [queried_terms] => Array
                (
                )

            [primary_table] => wp_posts
            [primary_id_column] => ID
        )

    [meta_query] => WP_Meta_Query Object
        (
            [queries] => Array
                (
                )

            [relation] => 
            [meta_table] => 
            [meta_id_column] => 
            [primary_table] => 
            [primary_id_column] => 
            [table_aliases:protected] => Array
                (
                )

            [clauses:protected] => Array
                (
                )

            [has_or_relation:protected] => 
        )

    [date_query] => 
    [request] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.ID IN (6592,5777,5768,9687,6123,8835,8798,8588,8448,7309,6985,6700,3701,3573,2023,1791) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled')  ORDER BY wp_posts.post_title ASC LIMIT 0, 4
    [posts] => Array
        (
            [0] => WP_Post Object
                (
                    [ID] => 8798
                    [post_author] => 1
                    [post_date] => 2017-12-10 21:30:55
                    [post_date_gmt] => 2017-12-10 18:30:55
                    [post_content] => Если нам нужно кастомизировать карту Яндекс, то будет не достаточно подключить ее через iframe, т.к. в нем не будет никаких настроек. Необходимо подключить API Яндекс.Карт

Подключаем API Яндекс.Карт

На данный момент существуют разные версии Api. Будем подключать версию 2.1
wp_enqueue_script( 'yandex-maps', 'https://api-maps.yandex.ru/2.1/?lang=ru_RU' , array( ), '2.0', true );
Создаем контейнер в котором будет создаваться карта
<div id="YMapsID" style="width: 100%; height: 400px;"></div>

Конструируем карту

Привожу типовой вариант карты Яндекс
ymaps.ready(function () {
    var myMap = new ymaps.Map('YMapsID', {
        center: [43.567075, 39.736186],
        zoom: 14,
		controls: ['smallMapDefaultSet']
    });
	
    myMap.geoObjects
        .add(new ymaps.Placemark([43.567075, 39.736186], {
            balloonContent: '', //Всплывающий при наведении текст
            iconCaption: 'Черноморская, 13 Г'
        }, {
            preset: 'islands#redCircleDotIconWithCaption',
            iconCaptionMaxWidth: '200'
   }));
	
	myMap.behaviors.disable('scrollZoom'); //Отключам zoom колесом при наведении
});
Координаты объекта проще всего выяснять, открыв Яндекс карты и введя необходимый адрес. Чуть ниже введенного адреса ебудут сами координаты и кнопка Скопировать. Больше настроек и параметров можно узнать на специальном сайте API Яндекс.Карт

Собственная иконка на карте

Добавляем в скрипт следующий код:
// Создаём макет содержимого.
MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
     '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
),

myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
     hintContent: 'Таганрогская, 140 Б, офис 16',
     balloonContent: 'НАЗВАНИЕ<br>Таганрогская, 140 Б, офис 1<br>+7 (863) 288-88-88 доб. 118<br>+7 (888) 888-88-89'
}, {

     // Необходимо указать данный тип макета.
     iconLayout: 'default#image',
     iconImageHref: '/wp-content/uploads/2018/07/bazabirs-map.png',
     // Размеры метки.
     iconImageSize: [52, 83],
     // Смещение левого верхнего угла иконки относительно её точки привязки.
     iconImageOffset: [-26, -83]
})
		
myMap.geoObjects
.add(myPlacemark)
[post_title] => API Яндекс.Карт [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => api-yandeks-kart [to_ping] => [pinged] => [post_modified] => 2018-07-07 15:08:41 [post_modified_gmt] => 2018-07-07 12:08:41 [post_content_filtered] => [post_parent] => 0 [guid] => https://opttour.ru/?p=8798 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ) [1] => WP_Post Object ( [ID] => 2023 [post_author] => 1 [post_date] => 2015-06-24 08:40:00 [post_date_gmt] => 2015-06-24 05:40:00 [post_content] => Contact Form 7 — очень нужный плагин для модулирования различных форм обратной связи. Имеет множество дополнений.

Плагин Contact Form 7

Код вставки формы
<?php echo do_shortcode( '[[contact-form-7 id="143" title="Контактная форма 1"]]' ); ?>
Форма обратной связи
[text* your-name placeholder "Ваше имя"]

[email* your-email placeholder "Ваш E-Mail"]

[text your-subject placeholder "Тема"]

[textarea your-message placeholder "Ваш вопрос"]

[submit "Отправить"]

CAPTCHA

Really Simple CAPTCHA — доп. плагин для добавления captcha Для вставки необходимо в первое поле генерации формы добавить это:
[captchac captcha-167 class:inp_1][captchar captcha-167 class:inp_1 placeholder "Введите символы"]

Сохранение отправленных форм в админке

Flamingo — доп. плагин для сохранения всех отправленных форм в интерфейсе админки.

Цели Yandex

[warn]В новейших версиях плагина рекомендуется js-обработчики прописывать в функциях. Ниже описано подробнее.[/warn] Добавление целей для Yandex Metrika для Form7 — в Дополнительных настройках формы прописываем строку
on_sent_ok: "yaCounterXXXXXX.reachGoal('ORDER');"
Добавление целей для Yandex Metrika для обычной ссылки (можно устанавливать на любой объект):
<a href="/price.zip" onclick="yaCounterXXXXXX.reachGoal('ORDER'); return true;">Прайс</a>
Если у ссылки уже есть параметр onclick, то лучше повесить счетчик на js. Пример:
$('a.notranslate').click(function() {
yaCounter66285164.reachGoal('clickeng'); return true;
});
Добавление целей для формы
<form onsubmit="yaCounter33638554.reachGoal('zakaz'); return true;" >
[info]yaCounterXXXXXX - номер счетчика Yandex (!не ID цели), для нескольких целей будет единым. ORDER - название цели (без пробелов и без цифр, только латинские буквы) в зависимости от назначения формы[/info] Протестировать цели на работоспособность можно таким образом:
  1. добавляем к url странице с целью запрос/?_ym_debug=1
  2. открываем инструменты разработчика, вкладку Console
  3. там будет содержаться созданная цель и при успешной активации цели будет выводиться строка Reach goal

«Оформленная» форма

<p class="close"><i class="fa fa-times"></i></p>

[text* your-name class:textbox placeholder "Ваше имя"]

[date* date-615 class:textbox placeholder "Дата рождения"]

[tel* tel-968 class:textbox placeholder "Телефон"]

[email* your-email class:textbox placeholder "E-mail"]

[textarea* your-message 40x8 placeholder "Сообщение"]

[captchac captcha-167 class:inp_1][captchar captcha-167 class:inp_1 placeholder "Введите символы"]

<!--[submit class:button send_one "Отправить"]-->

<button class="send-bt"><i class="fa fa-envelope"></i> Отправить</button>
Стили формы CSS
/* Стили формы обратной связи */

#feedback .wpcf7-form {
  position: relative;
  float:left;	  
  background-color: whitesmoke;
  box-sizing:border-box;
  width: 50%;
  margin: 0 25%;
  padding: 15px 5%;  
  text-align: center;
  font-size:16px;
  transition: width 0.5s ease;
  -webkit-transition: width 0.5s ease 0s; 
  border-radius: 10px;
  box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); 
}

.wpcf7-form p {margin: 8px 0; float: left; width: 100%;}

.wpcf7-form p.close {width: 20px; height: 20px; top: -15px;}
  
.textbox {
  width:100%;
  border:rgba(0,0,0,.3) 1px solid;
  box-sizing:border-box;
  font-family: "PlayRegular"; 
  padding: 5px 10px;
}

.wpcf7-form-control-wrap {position: inherit !important; width: 100%;}

.wpcf7-captchar {
    width: 60%;
    border: rgba(0,0,0,.3) 1px solid;
    box-sizing: border-box;
    font-family: "PlayRegular";
    padding: 5px 10px;
    float: right;
}

.wpcf7-captchac {float: left; width: 30% !important;}

.wpcf7-form textarea {
    width: 100%;
    border: 1px solid rgba(0,0,0,.3);
    box-sizing: border-box;
    padding: 5px 10px;
}

.message:focus, .textbox:focus, .wpcf7-textarea:focus, .wpcf7-captchar:focus {
  outline:none;
   border:rgba(24,149,215,1) 1px solid;
   color:rgba(24,149,215,1);
}

.message{
    background: rgba(255, 255, 255, 0.4); 
    width:100%;
    height: 120px;
    border:rgba(0,0,0,.3) 1px solid;
    box-sizing:border-box;
    -moz-border-radius: 3px;
    font-family: "PlayRegular";
    display:block;
    padding:10px;
    margin-bottom:30px;
    overflow:hidden;
}

.wpcf7-form .button {
    height: 40px;
    width: 70%;
    border: rgba(0,0,0,.3) 0px solid;
    box-sizing: border-box;
    padding: 10px;
    background: rgb(28, 107, 195);
    color: #FFF;
    font-family: "PlayRegular";
    transition: background .4s ease;
    -webkit-transition: background 0.5s ease 0s; 
    cursor: pointer;
    margin-top: 20px;
}

.wpcf7-form .button:hover {background: rgb(16, 68, 125);}
	  
.wpcf7-response-output.wpcf7-display-none.wpcf7-validation-errors {float: left;}

.wpcf7-not-valid-tip {
    background-color: #f00;
    color: #fff !important;
    position: relative;
    font-size: 12px !important;
    clear: both;
    display: block;
}

.wpcf7-not-valid-tip:before {
    content: '';
    position: absolute;
    top: -5px;
    left: 45%;
    border: 5px solid transparent;
    border-bottom-color: red;
    border-top: 0;
}

.wpcf7-response-output {
    margin: 0px 5px 10px 5px !important;
    padding: 5px 10px !important;
    font-size: 14px;
}

img.ajax-loader {display: none;}


/* своя кнопка отправки */

.send-bt {
    border: none;
    background: none;
    width: 70%;
    margin-bottom: 20px;
    padding: 10px;
    border-radius: 5px;
    background-color: #81D426;
    cursor: pointer;
    transition: color 0.3s, background-color 0.3s, border 0.3s;
    -webkit-transition: color 0.3s ease, background-color 0.3s ease, border 0.3s ease; 
}

.send-bt:hover {background-color: #3E8806; color: #fff;}
.send-bt:focus {outline: none;}
Классный эффект для любых форм на сайте. При нажатии на форму placeholder плавно исчезает.
/* плавное изменение прозрачности  placeholder-а при фокусе */

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder       {opacity: 1; transition: opacity 0.3s ease;}
input::-moz-placeholder, textarea::-moz-placeholder                {opacity: 1; transition: opacity 0.3s ease;}
input:-moz-placeholder, textarea:-moz-placeholder                 {opacity: 1; transition: opacity 0.3s ease;}
input:-ms-input-placeholder, textarea:-ms-input-placeholder            {opacity: 1; transition: opacity 0.3s ease;}
input:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder {opacity: 0; transition: opacity 0.3s ease;}
input:focus::-moz-placeholder, textarea:focus::-moz-placeholder        {opacity: 0; transition: opacity 0.3s ease;}
input:focus:-moz-placeholder, textarea:focus:-moz-placeholder           {opacity: 0; transition: opacity 0.3s ease;}
input:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder      {opacity: 0; transition: opacity 0.3s ease;}

[info]Если текст на кнопке отправки слишком велик
[submit class:button send_one "Получить консультацию по карте"]
и в мобильной версии уходит за экран, можно заменить на
<button class="button">Получить консультацию по карте</button>[/info]

Contact Form 7 Dynamic Text Extension

Дополнение добавляющее в плагин Contact Form 7 два дополнительных поля с динамическим содержанием (открытой и скрытое). Есть возможность подгружать в это поле шорткоды. В примере ниже — user_favorites — шорткод
[dynamichidden dynamichidden-816 CF7_GET key='user_favorites'] — скрытое
[dynamictext dynamictext-654 CF7_GET key='user_favorites'] — открытое

Событие после отправки формы

[warn]В новейших версиях плагина рекомендуется js-обработчики прописывать в функциях. Ниже описано подробнее.[/warn] В каждой форме в Дополнительных настройках можно выставлять события после отправки формы:
on_sent_ok:"$('#backfon').addClass('fadeOut')" - скрыть затемнение фона
on_sent_ok:"$('.popup').addClass('fadeOutDown')" - скрыть всплывающее окно
on_sent_ok:"$('#order-product').hide()" - спрятать кнопку вызывающую форму
on_sent_ok:"setTimeout(function () { $('#backfon').hide(); $('.popup').hide(); }, 700)" - скрыть фон и окно
on_sent_ok:"setTimeout(function(){$('.thanks').fadeIn('fast')},500)" - показать сообщение после отправки
on_sent_ok:"setTimeout(function(){$('.thanks').fadeOut('slow')},4000)" - спрятать сообщение
Сообщение ставим в подвал
<div class="thanks">Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.</div>
CSS сообщения
.thanks {
    position: fixed;
    left: 50%;
    z-index: 99;
    font-size: 22px;
    background-color: #043871;
    color: #fff;
    width: 200px;
    margin-left: -100px;
    padding: 25px 50px;
    display: none;
}
Редирект на другую страницу после отправки
on_sent_ok: "location.replace('http://www.SITE.com');"
либо
on_sent_ok: «location='http://адрес_страницы/';»

Дублирующиеся письма

Если мы получаем несколько одинаковых писем, то причиной может быть то что посетитель не видит подтверждения отправки формы и жмет несколько раз. Происходить это может из-за того что все уведомления отключены, а пользовательские события после отправки письма не работают из-за ошибки.. Также причиной может быть не очевидное уведомление об отправленном письме, либо задержка уведомления после отправки.

Contact Form 7 Datepicker

Еще один плагин расширяющий функционал Contact Form 7, добавляющий полноценный функционал добавления полей даты и времени с настройками оформления этих полей. Сходу плагин не работал, не появлялись всплывающие календари при выборе поля. Проблема устранилась после добавления стиля #ui-datepicker-div {z-index: 99 !important;} !Важной особенностью является то что поле не должно быть доступно для фокусирования. Иначе в мобильных браузерах будет происходить переход на заполнение стандартной текстовой формы. Чтобы запретить фокус на форме — необходимо прописать ему свойство readonly. Есть такой косяк: когда даем возможность выбирать год (change-year) в выпадающем списке года выводятся в диапазоне -10 +10. Исправить это можно параметром указывающем точный диапазон годов — year-range:1940:2020. А если указать в одном из параметров now, то это будет текущий год.

Обновления обработчика событий

До конца 2017 плагин переходит с системы Дополнительные настройки, в которых прописывались js-события при отправке формы. Теперь создатели плагина рекомендуют эти события прописывать в functions.php следующим образом: Общий обработчик событий для всех форм Contact Form 7
add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
ga( 'send', 'event', 'Contact Form', 'submit' );
}, false );
</script>
<?php
}
Локализованный обработчик для конкретной формы (например, для счетчиков Яндекс и Google, либо для индивидуальных уведомлениях при отправке). Добавляем проверку по ID формы.
add_action( 'wp_footer', 'mycustom_wp_footer' );

function mycustom_wp_footer() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '123' == event.detail.contactFormId ) {
ga( 'send', 'event', 'Contact Form', 'submit' );
}
}, false );
</script>
<?php
}
Также эти же скрипты можно реализовать не в виде функций, а вставлять в файл скриптов
//Обработчик событий Contact Form 7

//Общий
document.addEventListener( 'wpcf7mailsent', function( event ) {

  //$('#backfon').addClass('fadeOut');
  //$('.popup').addClass('fadeOutDown');
  //setTimeout(function () { $('#backfon').hide(); $('.popup').hide(); }, 700);
  
setTimeout(function(){$('.thanks').fadeIn('fast')},500);
setTimeout(function(){$('.thanks').fadeOut('slow')},4000);
  
}, false );

//Для конкретной формы с ID 8062
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '8062' == event.detail.contactFormId ) {

alert('Работает!');  
  
}
}, false );
Три закомментированные строки нужны, если форма сделана в виде всплывающего окна. Обновленный обработчик с целями Яндекс
document.addEventListener( 'wpcf7mailsent', function( event ) {
	
if ( '66' == event.detail.contactFormId ) {
yaCounter44705752.reachGoal('zakazconfer'); return true; 
}

}, false );

Вложение файлов

В функционале Contact Form 7 есть возможность добавления «поля» Файл (Вложение). Выглядит поле примерно так: [file file-481 limit:100000 filetypes:.doc|.docx|.xls|.xlsx] limit — максимальный размер файла, причем 10000 — это 10 Kb, 100000 — 1 Mb filetypes — допустимые расширения файлов для вложения. Обязательно вставить в шаблоне письма в поле Прикреплённые файлы название полей [file-481]

Маска для телефона

Чтобы для поля с телефоном создать такую маску — (+7 (___) ___-__-__), нужно сделать следующее:
  • Установить скрипт jquery.maskedinput.min
  • Прописать для телефонных полей (.wpcf7-tel — универсальный класс для полей с телефоном) простой скрипт:
    // Маска для телефона
    $(document).ready(function() { 
    $('.wpcf7-tel').mask('+7 (999) 999-9999');
    });
[post_title] => Contact Form 7 [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => contact-form-7 [to_ping] => [pinged] => [post_modified] => 2018-07-13 22:48:58 [post_modified_gmt] => 2018-07-13 19:48:58 [post_content_filtered] => [post_parent] => 0 [guid] => http://opttour.ru/?p=2023 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ) [2] => WP_Post Object ( [ID] => 6700 [post_author] => 1 [post_date] => 2017-01-19 03:05:15 [post_date_gmt] => 2017-01-19 00:05:15 [post_content] => Для различных задач требуется отслеживать значения форм и полей формы. У каждого поля (input, select, checkbox, radio) есть свои особенности, которые необходимо учитывать.

Поле select

$('#sort').change(function(){ //функция работает при изменении select

var sortValues = $("#sort option:selected").val(); //получаем значение выбранного пункта select
//alert( sortValues );

if($("#sort").val()=="") { 
если значение поля пустое (обычно исходное состояние)		
} else {
если значение поля заполнено		
}

});

Поле checkbox

$('.metka').change(function(){ //функция работает при изменении checkbox

//собираем выбранные значения тэгов(меток) в массив, значения через запятую
var arrList = $('.metka:checkbox:checked').map(function(){
    return $(this).attr('value');
}).get();

var arrListstroke = arrList.join(' '); // преобразовываем массив в строку с разделителем ' '

if(arrList == 0) { 		
если чекбокс не включен	
} else {
если чекбокс(ы) включен(ы)					
}

});

Поле radio

Нам например нужно что-то скрыть в зависимости от выбранного пункта. В случае если необходимый нам пункт единственный:
jQuery(document).ready(function() {
	
	$('.spec').hide(); 
	
	$('input:radio[name="education"]').on('change', function () {
		if (this.checked && this.value == 'Да') { $('.spec').show(); } 
		else { $('.spec').hide(); }
	});
	
});
Если необходимых пунктов несколько:
jQuery(document).ready(function() {
	$('.spec').hide(); 
	
	$('input:radio[name="education"]').on('change', function () {
				if (this.value == 'среднее профессиональное' || this.value == 'незаконченное высшее' || this.value == 'полное высшее') {
				$('.spec').show();
				} else {
				$('.spec').hide();
				}		
	});
});
Продолжение следует.. Далее input. [post_title] => Взаимодействие форм и scripts [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => vzaimodeystvie-form-i-scripts [to_ping] => [pinged] => [post_modified] => 2018-07-13 21:21:48 [post_modified_gmt] => 2018-07-13 18:21:48 [post_content_filtered] => [post_parent] => 0 [guid] => https://opttour.ru/?p=6700 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ) [3] => WP_Post Object ( [ID] => 3701 [post_author] => 1 [post_date] => 2016-01-24 11:23:30 [post_date_gmt] => 2016-01-24 08:23:30 [post_content] => Знакомимся с различными модулями / плагинами / api по функционалу комментирования.

Комментарии ВКОНТАКТЕ

Нужно зарегистрироваться и авторизоваться. 1. Создать приложение ВКОНТАКТЕ, нам будет нужен ID приложения. http://vk.com/apps?act=manage 2. Потом идем в сайты и виджеты - http://vk.com/dev/sites Выбираем виджет комментариев. Сайт/приложение: новый сайт. Заполняем все поля. Ширину пишем auto. 3.Получившийся виджет копируем и вставляем в сайт. Первую часть в шапку. Остальное в шаблон сайта. При этом в строке VK.init({apiId: API_ID, onlyWidgets: true}); API_ID - меняем на ID полученный и скопированный на первом этапе. [post_title] => Дополнительные модули комментариев [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => dopolnitelnyie-moduli-kommentariev [to_ping] => [pinged] => [post_modified] => 2017-10-19 22:30:33 [post_modified_gmt] => 2017-10-19 19:30:33 [post_content_filtered] => [post_parent] => 0 [guid] => http://opttour.ru/?p=3701 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ) ) [post_count] => 4 [current_post] => -1 [in_the_loop] => [post] => WP_Post Object ( [ID] => 8798 [post_author] => 1 [post_date] => 2017-12-10 21:30:55 [post_date_gmt] => 2017-12-10 18:30:55 [post_content] => Если нам нужно кастомизировать карту Яндекс, то будет не достаточно подключить ее через iframe, т.к. в нем не будет никаких настроек. Необходимо подключить API Яндекс.Карт

Подключаем API Яндекс.Карт

На данный момент существуют разные версии Api. Будем подключать версию 2.1
wp_enqueue_script( 'yandex-maps', 'https://api-maps.yandex.ru/2.1/?lang=ru_RU' , array( ), '2.0', true );
Создаем контейнер в котором будет создаваться карта
<div id="YMapsID" style="width: 100%; height: 400px;"></div>

Конструируем карту

Привожу типовой вариант карты Яндекс
ymaps.ready(function () {
    var myMap = new ymaps.Map('YMapsID', {
        center: [43.567075, 39.736186],
        zoom: 14,
		controls: ['smallMapDefaultSet']
    });
	
    myMap.geoObjects
        .add(new ymaps.Placemark([43.567075, 39.736186], {
            balloonContent: '', //Всплывающий при наведении текст
            iconCaption: 'Черноморская, 13 Г'
        }, {
            preset: 'islands#redCircleDotIconWithCaption',
            iconCaptionMaxWidth: '200'
   }));
	
	myMap.behaviors.disable('scrollZoom'); //Отключам zoom колесом при наведении
});
Координаты объекта проще всего выяснять, открыв Яндекс карты и введя необходимый адрес. Чуть ниже введенного адреса ебудут сами координаты и кнопка Скопировать. Больше настроек и параметров можно узнать на специальном сайте API Яндекс.Карт

Собственная иконка на карте

Добавляем в скрипт следующий код:
// Создаём макет содержимого.
MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
     '<div style="color: #FFFFFF; font-weight: bold;">$[properties.iconContent]</div>'
),

myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
     hintContent: 'Таганрогская, 140 Б, офис 16',
     balloonContent: 'НАЗВАНИЕ<br>Таганрогская, 140 Б, офис 1<br>+7 (863) 288-88-88 доб. 118<br>+7 (888) 888-88-89'
}, {

     // Необходимо указать данный тип макета.
     iconLayout: 'default#image',
     iconImageHref: '/wp-content/uploads/2018/07/bazabirs-map.png',
     // Размеры метки.
     iconImageSize: [52, 83],
     // Смещение левого верхнего угла иконки относительно её точки привязки.
     iconImageOffset: [-26, -83]
})
		
myMap.geoObjects
.add(myPlacemark)
[post_title] => API Яндекс.Карт [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => api-yandeks-kart [to_ping] => [pinged] => [post_modified] => 2018-07-07 15:08:41 [post_modified_gmt] => 2018-07-07 12:08:41 [post_content_filtered] => [post_parent] => 0 [guid] => https://opttour.ru/?p=8798 [menu_order] => 0 [post_type] => post [post_mime_type] => [comment_count] => 0 [filter] => raw ) [comment_count] => 0 [current_comment] => -1 [found_posts] => 16 [max_num_pages] => 4 [max_num_comment_pages] => 0 [is_single] => [is_preview] => [is_page] => [is_archive] => [is_date] => [is_year] => [is_month] => [is_day] => [is_time] => [is_author] => [is_category] => [is_tag] => [is_tax] => [is_search] => [is_feed] => [is_comment_feed] => [is_trackback] => [is_home] => 1 [is_404] => [is_embed] => [is_paged] => [is_admin] => [is_attachment] => [is_singular] => [is_robots] => [is_posts_page] => [is_post_type_archive] => [query_vars_hash:WP_Query:private] => 339a7c35a7bfe197dd077e89d71f5457 [query_vars_changed:WP_Query:private] => [thumbnails_cached] => [stopwords:WP_Query:private] => [compat_fields:WP_Query:private] => Array ( [0] => query_vars_hash [1] => query_vars_changed ) [compat_methods:WP_Query:private] => Array ( [0] => init_query_flags [1] => parse_tax_query ) )
Атрибуты товара WC
Рекомендации для васАтрибуты товара WCOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.