У цій статті я опишу як я робив геотаргетинг в wordpress. Якщо в двох словах:
Кому цікаві подробиці - ласкаво просимо під кат
Крок 1. Пишемо плагін для wordpress
Створюємо директорію з ім'ям плагіна і не забуваємо, що ім'я плагіна має бути унікальним.
Я назвав плагін opCity і таким чином у мене в wordpress з'явилася директорія / wp-content / plugins / opCity і файл /wp-content/plugins/opCity/opCity.php.
Весь код приводити тут не буду. Там більш-менш все ясно, так що качайте мій архів з файлами і розархівуйте його в / wp-content / plugins.
Завантажили? Розархівували? Активували? Тоді продовжуємо!
Як Ви вже помітили в архіві 3 файли:
- opCity.php - в ньому міститься основна логіка роботи плагіна.
- jquery.balloon.js - це jquery фреймворк для підказок по типу: "Ваше місто: Москва. Вгадали? "
- my_query.js - в цьому файлі функції роботи з cookie і робота з ajax запитами.
КРОК 2. підключення jquery.balloon.js
Тут Вам нічого писати не треба, тому що всі вже написано в архів, що скачав.
Підключення обох js файлів виконується в тілі файлу opCity.php наступним рядком
Потім вставляємо шорткод в підготовлену раніше форму EasyModal. Якщо хто не в курсі - шорткод вставляється так: [opcity_list]
А посилання, при кліці на яку буде з'являтися список міст я вставив в шаблон header.php так:
Запис в cookie id міста відбувається тільки при виборі міста або при натисканні на кнопку "Так", коли плагін запитує вгадав він місто.
Якщо в cookie не знаходить місто - намагається його визначити. Після визначення - шукає в базі місто по найменуванню. Якщо знаходить - ставить його, якщо не знаходить - ставить Москву, але Ви можете трохи переписати код і зробити місто за замовчуванням іншим.
Схожі записи
Так, і ще, якщо я використовую інший можель для виведення модальних вікон, що в коді зміниться?
Потрібні елементи - це які? Де в html прописати, що ось тут номер, а тут місто?
І ще питання - на локальному хостингу буде працювати? А то я ніби все зробив, а при завантаженні сторінки місто відразу не проставляється ... або, може, я ступив на попередньому питанні і щось не так прописав?
Спасибі за відповідь!