Разработать плагин для wordpress

30 000 руб. за проект
01 декабря 2019, 16:21 • 7 откликов • 48 просмотров
Прототип: https://drive.google.com/file/d/1ilClC3W0Ootuay1ckulTJnvqbxH1qrlc/view?usp=sharing

Задачи плагина:
  1. подключает код для сбора push подписок на сайте
  2. добавляет функцию рассылки новых постов через API
  1. Сбор подписок
После установки и активации плагина в корень сайта копируется файл http://3xpush.com/firebase-messaging-sw.js

Далее пользователь должен зайти на страницу настроек плагина и указать API ключ и ID сайта, которые он получит после регистрации в 3xpush.com

Если API ключ указан неверно, то вернет текст ошибки из API, если ошибки нет, то выведет: Проверка пройдена успешно!

После указания Site ID и сохранения формы выводятся остальные настройки, и в код сайта добавляется скрипт:

<script>
psx_host = '3xpush.com';
psx_site_id = SITE ID;
psx_sub_id = '';
psx_tag = '';
psx_time = '';
blocksite = 0;
hasBlockCross = 0;
blockText = ''

(function(d){let s=d.createElement('script');s.async=true;s.src='https://'+psx_host+'/new.js';d.head.appendChild(s);})(document);
</script>

В код подставляются настройки:

  • SITE ID - из поля Site ID (если Site ID не указан, то код не выводится, так как это основной параметр)
  • psx_tag - из селекта “Передавать в качестве тэга подписчика”, варианты:
    • нет
    • категория
если выбрана категория, по подставляется название категории страницы, на которой находится пользователь
  • psx_time - “Пауза перед показом запроса на подписку”, секунды переводятся в миллисекунды и подставляется в этот параметр
  • blocksite - опция “Закрывать сайт блоком с запросом на подписку”, если да, то тут подставляем 1
  • hasBlockCross - опция “Выводить крестик для закрытия блока”, если да, то тут подставляем 1
  • blockText - Текст в закрывающем блоке

  1. Рассылка оповещения
Описание API метода - https://3xpush.com/page.php?id=21§ion=2
На странице добавления поста появляется блок “3xpush. Отправить Push”
В блоке есть настройки:

  • Отправить уведомление подписчикам - по умолчанию включено, если снять галочку, то остальные настройки скрываются
  • Время рассылки - при клике выводится календарь с выбором даты и времени, по умолчанию указано текущее время, формат времени: YYYY-MM-DD H:i:s
  • Сайты - мультиселект, через метод https://3xpush.com/page.php?id=23§ion=2 подгружается список сайтов пользователя, по умолчанию выбран сайт с указанным в настройках site id, можно выбрать сразу все сайты
  • Регионы - мультиселект, метод https://3xpush.com/page.php?id=14§ion=2 выводится в виде “Название на русском [ISO]”
  • Языки - мультиселект, выводится в виде “Название на русском [ISO]”
  • Тэги - мультиселект, https://3xpush.com/page.php?id=22§ion=2, выводится в виде списка тэгов
Для мультиселекта подключить этот плагин - http://www.jqueryfaqs.com/Articles/Multiple-Select-MultiSelect-DropDownList-with-CheckBoxes-using-jQuery.aspx

После создания поста отправляем запрос на API с параметрами:

  • title - заголовок поста, обрезанный до 33 символов
  • text - текста поста, только текст, без тэгов, обрезанный до 123 символов
  • icon - иконка из настроек в виде полного URL на картинку, если не указано, то будет использовано системное изображение
  • image - если в посте есть изображение, то получаем к нему путь и передаем в этом параметре
  • url - ссылка на пост
  • tags - массив выбранных тэгов, либо пусто, если выбрано “все”
  • langs - массив ISO выбранных языков, либо пусто, если выбрано “все”
  • regions - массив ISO выбранных регионов, либо пусто, если выбрано “все”
  • sids - массив ID выбранных сайтов, либо пусто, если выбрано “все”
  • send_time - указанное время рассылки
  • active - 1
В случае успешного добавления рассылки, вернет [success]: 1, [subs]: - кол-во подписчиков, если нет, то [error]: текст ошибки, ошибку нужно вывести пользователю.

Рассылка логируется, лог выводится на странице настроек внизу.
Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
задача выполнена в срок и с учетом замечаний, при этом во время работы было минимально уточняющих вопросов, что немного удивило, это значит исполнитель хорошо изучил тз и документацию, понравилось сотрудничество
~ 5 лет назад
R50 41d667c7bc9be841d70cfffbc4a9fc2e
Фрилансер
 
~ 5 лет назад