README

MenuMaker WordPress Plugin

Легковесный плагин для управления меню и изображениями для служб доставки

MenuMaker — это простой и эффективный плагин WordPress, предназначенный для управления меню ресторанов/кафе и связанными с ними изображениями. Идеально подходит для интеграции со службами доставки (Glovo, Bolt, Wolt и т.д.), предоставляя централизованное место для управления данными меню и изображениями, которые могут быть затем экспортированы или отображены на вашем сайте.

Ключевые особенности:

  • Управление изображениями: Загружайте, переименовывайте и удаляйте изображения в формате JPEG с помощью удобного интерфейса Drag & Drop.
  • Галерея изображений: Просмотр изображений в виде миниатюр с эффектом увеличения при наведении и полноэкранным просмотром по клику. Поиск и сортировка изображений.
  • Управление меню: Импортируйте и экспортируйте данные меню с помощью CSV-файлов (совместимо с Google Таблицами и Excel). Редактирование и удаление строк меню прямо в админке.
  • Гибкий доступ: Настройте, какие роли пользователей WordPress могут получать доступ к функциям MenuMaker.
  • Легковесность: Плагин разработан без использования внешних PHP-библиотек (кроме стандартных для WordPress), что обеспечивает высокую производительность и минимизирует зависимости.
  • Портативность: Все загружаемые изображения хранятся в отдельной, безопасной папке вне директории wp-content/uploads, что облегчает перенос данных и сохраняет их при переустановке WordPress.
  • Публикация меню на сайте: Легко отображайте ваше меню на любой странице или посте WordPress с помощью шорткода.

Структура проекта

menumaker/
├── menumaker.php                   <-- Основной файл плагина, отвечает за инициализацию и подключение модулей.
├── assets/
│   ├── css/
│   │   └── menumaker-admin.css     <-- Стили для административного интерфейса плагина.
│   └── js/
│       └── menumaker-admin.js      <-- JavaScript для интерактивных элементов админки (D&D, поиск, модальное окно и т.д.).
└── includes/                       <-- Папка для логического разделения функциональности на модули.
    ├── admin-access.php            <-- Управление ролями доступа к плагину.
    ├── admin-pages.php             <-- Регистрация страниц админки и рендеринг табов.
    ├── image-manager.php           <-- Логика для вкладки "Images" (отображение, формы).
    ├── menu-data.php               <-- Логика для вкладки "Menu" (отображение, формы).
    ├── ajax-handlers.php           <-- Все AJAX-обработчики (загрузка/удаление/переименование изображений, экспорт CSV).
    └── shortcode-display.php       <-- Логика для отображения меню на фронтенде с помощью шорткода.

Установка

  1. Скачайте последнюю версию плагина.
  2. Распакуйте архив.
  3. Загрузите распакованную папку menumaker в директорию wp-content/plugins/ вашего сайта WordPress.
  4. Активируйте плагин «MenuMaker» через панель управления WordPress (раздел «Плагины»).
  5. После активации плагин автоматически создаст папку menumaker_uploads/ в корне вашей установки WordPress для хранения изображений и добавит в нее файл .htaccess для безопасности.

Использование

1. Доступ к плагину

После активации, в левом меню админки WordPress появится новый пункт «MenuMaker». По умолчанию доступ к плагину имеют только Администраторы. Вы можете настроить это:

  • Перейдите в MenuMaker > Access.
  • Выберите роли, которым разрешен доступ к функционалу плагина.

2. Управление изображениями (Вкладка «Images»)

  • Перейдите в MenuMaker > Images.
  • Загрузка: Перетащите JPEG-файлы в область «Drag & Drop your JPEG images here» или кликните по ней, чтобы выбрать файлы.
  • Просмотр: Загруженные изображения появятся в таблице ниже. Наведите курсор на миниатюру, чтобы увеличить ее. Кликните, чтобы открыть полноэкранный просмотр.
  • Поиск: Используйте поле «Search images…» для быстрого поиска изображений по имени.
  • Сортировка: Выберите опцию в выпадающем списке «Sort by» для сортировки изображений по имени или дате.
  • Переименование: Введите новое имя (без расширения) в текстовое поле рядом с изображением и нажмите «Rename». Плагин автоматически добавит .jpg.
  • Удаление: Нажмите кнопку «Delete» рядом с изображением.
  • Экспорт списка изображений: Нажмите «Export Images List to CSV», чтобы скачать CSV-файл со списком всех загруженных изображений, их URL и метаданными.

3. Управление меню (Вкладка «Menu»)

  • Перейдите в MenuMaker > Menu.
  • Импорт меню:
    • Подготовьте ваш CSV-файл с данными меню.
    • Ваш CSV должен быть в кодировке UTF-8 с BOM (Byte Order Mark) для лучшей совместимости с Excel.
    • Плагин постарается автоматически определить разделитель (запятая или точка с запятой).
    • Нажмите «Import Menu from CSV» и выберите ваш файл.
    • Важно: Первая строка вашего CSV-файла должна содержать заголовки колонок, которые будут использоваться как заголовки таблицы в админке.
  • Редактирование меню: После импорта данные меню отобразятся в таблице. Вы можете редактировать текст непосредственно в полях.
  • Удаление строки: Нажмите «Delete» рядом с нужной строкой, чтобы удалить ее из меню. (Первая строка с заголовками не может быть удалена).
  • Сохранение изменений: После внесения изменений нажмите «Save Menu Changes».
  • Экспорт меню: Нажмите «Export Menu to CSV», чтобы скачать текущие данные меню в CSV-файл.

4. Настройки и пресеты (Вкладка «Presets»)

  • Перейдите в MenuMaker > Presets.
  • Эта вкладка зарезервирована для будущих настроек и функций, связанных с пресетами отображения меню или другими глобальными опциями.

5. Публикация меню на сайте (Фронтенд)

  • Чтобы отобразить ваше меню на любой странице, записи или в текстовом виджете, используйте шорткод: [menumaker_menu]
  • Вставьте этот шорткод в контент, и плагин автоматически выведет отформатированное меню, используя данные, импортированные через вкладку «Menu».
  • (Подробнее об опциях шорткода и стилизации будет добавлено в будущих версиях.)

Разработка

Константы путей

  • MENUMAKER_PLUGIN_DIR: Абсолютный путь к директории плагина.
  • MENUMAKER_PLUGIN_URL: URL к директории плагина.
  • MENUMAKER_UPLOADS_DIR: Абсолютный путь к директории загрузок изображений (ABSPATH . 'menumaker_uploads/').
  • MENUMAKER_UPLOADS_URL: URL к директории загрузок изображений.

Безопасность

  • Все загружаемые файлы JPEG хранятся в отдельной папке menumaker_uploads/ в корне WordPress, в которой автоматически создается файл .htaccess, запрещающий выполнение PHP-файлов.
  • Все данные, полученные от пользователя (включая имена файлов, названия меню и т.д.), проходят санитизацию (sanitize_text_field, sanitize_file_name) перед использованием.
  • Все формы и AJAX-запросы защищены с помощью nonce для предотвращения CSRF-атак.

Лицензия

Этот плагин распространяется под лицензией GPLv2 или более поздней версии.


Благодарности и поддержка

Если у вас есть вопросы, предложения или вы обнаружили ошибку, пожалуйста, создайте Issue в репозитории проекта.