Создать сайт на WordPress (PHP, CSS, JS, WooCommerce, MySQL, Elasticsearch) (для всех)

⚓ Work    📅 2026-04-09    👤 surdeus    👁️ 3      

surdeus

1. Общие требования · Тип сайта: информационно-образовательный портал с платным доступом к контенту. · Контент: научные статьи (до 30 тысяч штук, возможно больше). · Разделы статей: · По направлениям (примерно 10 разных). · По языку (русские / иностранные). · Бесплатные / платные. · Доступ: платный (разовый или подписка) ко всем статьям или к отдельным направлениям. · Технологии: · CMS: WordPress (последняя стабильная версия). · Поисковый движок: Elasticsearch (через плагин ElasticPress). · Платежи: WooCommerce + Робокасса (официальный шлюз с поддержкой подписок). · Вёрстка: CSS/JS по готовым макетам (макеты предоставлю). · Адаптивность: под все устройства. 2. Функциональность админки (для редакторов) · Создание / редактирование / удаление статей (кастомный тип записи article). · Назначение статье: · направления (таксономия direction), · языка (таксономия language), · метки «бесплатная / платная». · Возможность закрыть платную статью от просмотра неавторизованным пользователям (виден только заголовок и краткая аннотация). · Управление доступом к направлениям: какие направления входят в пакеты подписок. 3. Платёжная система и доступ 3.1. Варианты оплаты (через WooCommerce + Робокассу) · Разовый доступ ко всем статьям (навсегда). · Разовый доступ к выбранным направлениям. · Подписка (рекуррентные платежи) — ежемесячная / ежегодная: · ко всем статьям, · к выбранным направлениям. · Возможность для пользователя в личном кабинете: · видеть свой текущий доступ, · продлить подписку, · отменить автоматическое списание. 3.2. Логика доступа · Пользователь регистрируется (обычная регистрация WordPress). · После успешной оплаты получает роль или членство (MemberPress / Paid Memberships Pro) с доступом к определённым направлениям или ко всем статьям. · Платные статьи полностью скрыты (или показывается только анонс) для тех, у кого нет соответствующего доступа. 4. Поиск (основное требование) 4.1. Первый тип поиска (мгновенный, с фильтрами и приоритетом) Реализуется через ElasticPress + кастомные настройки. Обязательные возможности: · Поисковая строка на сайте. · При вводе текста — мгновенный выпадающий список (autosuggest) с результатами: · сначала статьи, где совпадение в названии, · затем статьи, где совпадение только в тексте (или в аннотации). · После нажатия Enter → открывается полная страница результатов поиска с кратким резюме каждой статьи. · Фильтры на странице результатов (или в выпадающем списке): · по направлениям (одно или несколько), · по языку, · только платные / только бесплатные, · по типу доступа (есть у пользователя / нет). · Поиск учитывает права доступа: · платные статьи видны в результатах, но текст недоступен без оплаты (показывается заглушка). 4.2. Второй тип поиска — семантический (по смыслу) Важное уточнение: этот пункт может быть реализован отдельным этапом после запуска основного функционала. Исполнитель должен оценить его отдельно. Требование к семантическому поиску: · Поле ввода вопроса (естественным языком). · Система возвращает наиболее релевантные статьи, отвечающие на вопрос (не просто совпадение ключевых слов). · Используется векторный поиск (Elasticsearch с плотными векторами, либо отдельный сервис). · Возможность фильтрации по направлениям и языку. · Желательно выделение фрагмента текста с предполагаемым ответом. Если не сможете сделать семантический поиск, то укажите это в отклике. 5. Обязательные к выполнению пункты (без которых приёмка не состоится) · Всё, кроме семантического поиска, должно быть реализовано в полном объёме. · В том числе: · бэкенд на PHP (WordPress + кастомные типы и таксономии), · вёрстка по макетам, · WooCommerce + Робокасса (разовые и рекуррентные платежи), · разграничение доступа к направлениям, · первый тип поиска (мгновенный с ElasticPress и фильтрами). 6. Требования к производительности · Поиск (первый тип) должен отрабатывать менее 0,5 секунды при одновременной работе 100 пользователей. · Elasticsearch выделяется на отдельный сервер или VPS. · Поддерживается индексация всех статей (включая текст) через ElasticPress. 7. Что хочу получить на выходе: · Полностью работающий сайт на WordPress. · Исходные коды темы / дочерней темы. · Файлы конфигурации Elasticsearch. · Инструкция по администрированию (как добавлять статьи, менять цены, настраивать доступы). · Документация по поиску (как работают фильтры и приоритеты). 8. Условия отклика · чётко напишите, берётесь ли за семантический поиск или только за основной функционал (пункты 1–4.1). · Опыт с ElasticPress и WooCommerce Subscriptions — обязателен. · Примерная стоимость такого сайта под ключ (по верхней планке) и стоимость часа вашей работы. 🏷️ Work_feed