Геотаргетинг По Городу (Региону, Стране) Для Wordpress



Причины создания Недавно меня попросили сделать геотаргетинг по городам для сайта WordPress. Пересмотрев существующие плагины геотаргетинга (в том числе и платные), я не нашел ни одного, работающего с городами (только странами).

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

Сначала я начал с разработки функции в шаблоне, но потом решил создать плагин и выложить его на github, так как думаю, что он может быть полезен кому-то еще.



Выбор базы

Первым шагом был выбор базы.

И это, наверное, одна из самых сложных проблем.

В процессе разработки я пробовал множество вариантов, даже делал CURL-запросы к сайтам, определяющим местоположение по IP, и парсил их.

Но все они были неточными; например, один московский IP определил его как Москва, другой определил его как просто Россия.

Также необходимо было, чтобы плагин работал не только с Россией, но и с Белоруссией и Украиной.

Перепробовав кучу разных баз данных, я остановился на Sypex Geo. У них есть условно-бесплатные и бесплатные версии баз данных.

Условно-бесплатное ПО использует REST API и возвращает данные в форме xml, json и jsonp. Бесплатную можно скачать в виде файла, также можно скачать класс для работы с ним.

Условно-бесплатная версия более точна, но обеспечивает бесплатно только 10 000 запросов.

Бесплатная версия также достаточно точна и обновляется на сайте.



Функциональный

Как я уже писал, начал не с плагина, а с функции в шаблоне.

Сначала я думал только об условно-бесплатной версии базы, но количество бесплатных запросов закончилось через день-два.

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

При разработке плагина я решил сделать выбор между локальной базой данных и REST API. В будущем планирую сделать кнопку автоматического обновления базы.

Также из базы данных можно вернуть русские и английские названия городов (стран, регионов).

В связи с этим я сделал выбор языка.

Также я столкнулся с необходимостью включить в список несколько городов или, наоборот, исключить некоторые.



Геотаргетинг по городу (региону, стране) для WordPress

Настройка плагина в админ-панели

Выполнение

Поскольку я редко работаю с Wordpress (как и со всеми CMS) и никогда не писал для него плагинов, я начал читать, как их писать, и смотреть, как работают существующие.

Идею реализации я взял из существующих гео-плагинов.

Долгое время я думал о написании функционально или объектно-ориентированном.

Я решил сделать это функционально, так как плагин не большой.

Кратко опишу его работу.

При активации плагина мы инициируем две опции: тип базы данных и язык, на котором будем вводить имена.

   

register_activation_hook(__FILE__, 'wp_sypexgeo_activation'); function wp_sypexgeo_activation() {

Теги: #php #wordpress #плагин #геотаргетинг #sypex geo #wordpress #php
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.