Skip to content

Latest commit

 

History

History
220 lines (174 loc) · 21.2 KB

File metadata and controls

220 lines (174 loc) · 21.2 KB

Changelog

2026-08-04 - version 1.8.0

Исправление замечаний ревью каталога плагинов WordPress.org (WP-38).

Соответствие требованиям WordPress.org

  • Text domain приведён к слагу плагина: wp-apiship → apiship; файлы переводов переименованы, добавлен перевод строки Shipping
  • Из gettext-вызовов убраны переменные и пустые/чужие домены — все параметры теперь литеральные строки
  • Переименованы PHP-идентификаторы с запрещённым префиксом wp: namespace и классы WP_ApiShip* → ApiShip*, константы WP_APISHIP_* → APISHIP_*, wp_apiship_bootstrap → apiship_bootstrap. Ключи опций/хуков/меты wp_apiship_* в БД сохранены — обратная совместимость установленных магазинов. WP_APISHIP_SHIPPING_CACHE из wp-config.php продолжает действовать
  • Экранирован весь вывод (~110 мест): шаблоны метабокса заказа, карточек служб доставки, сопоставления статусов, чекаута — esc_html/esc_attr/esc_url/absint/wp_kses по контексту
  • JSON тарифов в скрытых контейнерах выводится экранированным, JS читает его через .text() — устранён вектор XSS через htmlspecialchars_decode
  • Точечная обработка ввода вместо всего $_POST: калькулятор получает только payment_method, сохранение настроек читает только свой токен; добавлены wp_unslash при чтении $_GET и cookie ПВЗ с валидацией JSON
  • Безлимитный set_time_limit(0) удалён из крона списка провайдеров и заменён ограниченными значениями внутри конкретных длительных функций (синхронизация статусов — 300 сек, загрузка списка ПВЗ — 120 сек)
  • Добавлена защита от прямого доступа (ABSPATH) в оставшиеся файлы шаблонов и настроек
  • Тестовый API переведён на https://api.dev.apiship.ru
  • Добавлен readme.txt в формате WordPress.org: задокументированы внешние сервисы (ApiShip API, Яндекс.Карты) со ссылками на условия использования и расположение неминифицированных исходников JS/CSS

2026-08-04 - version 1.7.1

Исправительный релиз к 1.7.0: в 1.7.0 плагин не активировался и его AJAX не работал.

Критические исправления

  • Устранена фатальная ошибка активации: вызов WP_ApiShip_HPOS_Migration::init() внутри пространства имён WP_ApiShip резолвился в задвоенный namespace
  • Инициализация перенесена на хук plugins_loaded. Ранее классы WooCommerce могли быть ещё не загружены, если каталог плагина сортируется до woocommerce/ (например apiship/) — это приводило к Fatal error: Class "WC_Admin_Settings" not found на каждом запросе
  • Восстановлена работа AJAX: проверка nonce, добавленная в 1.7.0, отклоняла все запросы, так как JavaScript плагина nonce не передавал
  • Разграничены права доступа к AJAX: административные операции требуют manage_woocommerce, покупателю доступны только выбор ПВЗ и тарифа

Совместимость с HPOS

  • Мета-бокс ApiShip снова отображается на странице заказа: в хуки HPOS передаётся объект WC_Order вместо WP_Post
  • Восстановлено подключение JS и CSS на экране заказа HPOS
  • Колонка «ApiShip Order» возвращена в список заказов HPOS
  • Массовые действия печати наклеек и актов регистрируются для обоих типов хранилища
  • Миграция переносит данные заказов из корзины; на сайтах без устаревших данных уведомление о миграции больше не показывается

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

  • Устранена SQL-инъекция в обработчике статусов: идентификатор заказа из ответа API подставлялся в запрос без подготовки
  • Устранено межсайтовое выполнение сценариев: данные пункта выдачи с оформления заказа санитизируются, экранирован вывод истории статусов, адресов ПВЗ, колонки заказов, наименования метода доставки и уведомлений массовых действий
  • Обработчик активатора больше не запускается по GET-параметру без прав администратора
  • Удалены AJAX-действия getToken и getTokenTest, возвращавшие ключ API в браузер
  • Служебная страница отладки экранирует значения и маскирует ключ API
  • Журналы пишутся через WC_Logger вместо каталога плагина, доступного по HTTP
  • Cookie выбора ПВЗ получила флаги Secure и SameSite

Совместимость с актуальными версиями WordPress и WooCommerce

Проверено на живых стендах: WordPress 7.0.2 + WooCommerce 10.9.4 + PHP 8.3 (HPOS включен и выключен) и WordPress 6.4.3 + WooCommerce 8.0.4 + PHP 8.1 — активация, регистрация метода доставки, мета-данные заказов, крон, страницы админки; журнал отладки без единой записи от плагина.

  • Обновлён заголовок WC tested up to: 10.9, добавлены Requires at least: 6.0, Requires PHP: 7.4 и Requires Plugins: woocommerce (WordPress 6.5+ не даст активировать плагин без WooCommerce; старые версии заголовок игнорируют)
  • Объявлена несовместимость с блочным чекаутом (cart_checkout_blocks): выбор ПВЗ работает только с классическим чекаутом [woocommerce_checkout] — WooCommerce теперь честно предупреждает об этом владельца магазина
  • Переводы загружаются на хуке init: с WordPress 6.7 более ранняя загрузка вызывала notice _load_textdomain_just_in_time; заголовок вкладки настроек переводится лениво по той же причине
  • Объявлено свойство WP_ApiShip_Shipping_Method::$is_admin: динамические свойства устарели в PHP 8.2 и удаляются в PHP 9
  • Устранено предупреждение Undefined variable $meta_data для заказов без строк доставки (созданных вручную или импортированных)

Стабильность

  • Исправлен таймаут HTTP-запросов: значение задавалось в миллисекундах, из-за чего запрос к недоступному API висел до 5,5 часов вместо 20 секунд
  • Исправлен запрос истории статусов: дата кодируется для URL (иначе терялось смещение часового пояса), пагинация читается из объекта meta и больше не использует рекурсию
  • Массовая печать наклеек больше не привязывает заказ ApiShip от предыдущего заказа к заказу без строки доставки
  • Добавлены проверки на отсутствующий заказ, удалённый товар и некорректный JSON
  • Исправлено отображение срока доставки «1 день»

2025-01-23 - version 1.7.0

  • Добавлена полная поддержка высокопроизводительного хранилища заказов (HPOS) WooCommerce 8.0+
  • Создан слой абстракции для совместимости с HPOS и legacy системой постов
  • Добавлена автоматическая миграция данных между системами хранения заказов
  • Реализованы комплексные тесты совместимости HPOS
  • Обновлены мета-боксы заказов для поддержки новых экранов HPOS
  • Адаптированы bulk actions для работы с правильными хуками HPOS
  • Улучшена безопасность AJAX запросов с добавлением nonce проверок
  • Заменены все вызовы json_encode на wp_json_encode для соблюдения WordPress стандартов
  • Устранены все прямые вызовы post_meta функций в пользу HPOS-совместимых методов
  • Исправлены критические SQL запросы к wp_posts/wp_postmeta в миграции для полной HPOS совместимости
  • Добавлена декларация совместимости с HPOS через FeaturesUtil
  • Обновлены требования: WooCommerce 8.0+, WordPress 6.0+, PHP 7.4+
  • Добавлена подробная документация по HPOS в HPOS-SUPPORT.md

2024-01-19 - version 1.6.0

  • Добавлена возможность изменить стоимость доставки с получателя
  • Добавлена возможность изменить способ доставки (СД, тариф, ПВЗ)
  • На карту добавлены кнопки масштабирования + и -
  • Улучшена скорость работы модуля
  • Исправлена ошибка отображения большого кол-ва ПВЗ на карте
  • Исправлен расчет общих габаритов заказа, если не указаны габариты грузоместа по умолчанию

2023-09-23 - version 1.5.0

  • Добавлена возможность отображения всех ПВЗ на одной карте
  • Добавлена возможность отображения ПВЗ каждой из СД на отдельной карте
  • Добавлена возможность удаления заказа в ApiShip
  • Исправлено формирование строки адреса получателя и отправителя
  • Улучшен процесс удаления модуля

2023-07-31 - version 1.4.0

  • Добавлена возможность пройти авторизацию в ApiShip по токену
  • Добавлена возможность массовой генерации этикеток и актов приема-передачи
  • Добавлена возможность валидации заказа до его передачи в СД
  • Добавлена возможность отменять заказ в СД
  • Добавлена возможность указать шаблон отображения способа доставки в корзине
  • Добавлена возможность указать способ и пункт приема для каждой СД
  • Добавлена возможность указать вес и габариты грузоместа по умолчанию
  • Добавлена возможность пройти авторизацию в ApiShip по токену
  • Добавлено отображение истории статусов доставки на странице работы с заказом
  • Добавлено отображение трек номера на странице работы с заказом
  • Добавлен функционал синхронизации статусов и настройка из сопоставления
  • Изменено расположение кнопки выбора ПВЗ в корзине
  • Убрана возможность пройти авторизацию в ApiShip по логину и паролю
  • Исправлена ошибка передачи стоимости доставки с получателя

2022-06-29 - version 1.3.0

  • Добавлено использование ceil для предотвращения передачи в запросе дробных размеров.
  • Добавлено логирование в случае пустого $response_body.
  • Добавлены переносы строк в карточку Транспортной Компании на странице заказа.
  • Исправлены синтаксические ошибки.

2022-06-03 - version 1.2.0

  • Удалена инициализация константы WP_APISHIP_SHIPPING_CACHE.

2022-05-27 - version 1.1.0

  • Добавлена опция выбора Транспортных Компаний которые будут выводится на странице checkout.
  • Обход кэша тарифов доставки в соответствии с опцией Woocommerce Режим отладки.
  • Добавлен перевод кнопки Select для Яндекс карт на фронт-енд.
  • Центрирование Яндекс карты в соответствии с выбранным ПВЗ.
  • Исправлено PHP Notice: Undefined variable: response_body in includes/class-wp-apiship-shipping-method.php

2022-05-13 - version 1.0.0

  • Первая версия.

2022-05-11 - version 1.0.0-RC5

  • Промежуточный RC.

2022-05-11 - version 1.0.0-RC4

  • Установлено значение pickupType в классе WP_ApiShip_Order по умолчанию для случая переданного значения в запросе 1,2.
  • Добавлена возможность удаления данных Пункта приёма заказа.
  • Добавлен фильтр cod в запрос lists/points для Яндекс карт на фронт-енд.
  • Добавлены переводы на странице настроек плагина.

2022-05-09 - version 1.0.0-RC3

  • Добавлено сообщение если Yandex карты не загружены (админ).
  • Исправлена ошибка в метабоксе если не выбрана Point In по умолчанию.
  • Добавлено поле адреса Point Out для пользователя на странице checkout.
  • Добавлена кнопка закрытия карты Points Out для пользователя на странице checkout.

2022-05-07 - version 1.0.0-RC2

  • Обновлены переводы на странице настроек плагина.
  • Обновлены подсказки на странице Службы доставки.
  • Изменён алгоритм работы с мета данными метода add_rate класса WP_ApiShip_Shipping_Method.
  • Добавлена пакетная печать наклеек.

2022-05-05 - version 1.0.0-RC1

  • Добавлено предупреждение об отсутствии установки ПВЗ по умолчанию на карточке ТК.
  • Добавлен вывод Тип доставки в информации о тарифе.
  • Изменён алгоритм центрирования карт перед выбором ПВЗ.
  • Изменён алгоритм редактирования данных пунктов приёма/выдачи заказов.
  • Изменён алгоритм сохранения/загрузки данных контактного лица.

2022-05-04 - version 1.0.0-beta9

  • Добавлена карта выбора ПВЗ на странице checkout для тарифов с доставкой в ПВЗ.
  • Добавлена секция Пункт выдачи заказа в метабоксе ApiShip с возможностью смены ПВЗ на карте.
  • Добавлена возможность перехода на страницу Службы Доставки со страницы Заказ кликом по лого транспортной компании.
  • Номер заказа в метабоксе ApiShip выведен в поле с типом text.

2022-04-25 - version 1.0.0-beta8

  • Добавлена возможность выбора/отмены предпочитаемых служб доставки на странице Службы Доставки.
  • Добавлена возможность установки пунктов приёма отправлений на странице Службы Доставки для магазина/склада.
  • Обновлена секция информации о службе доставки в метабоксе ApiShip.
  • Добавлена секция Пункт приёма заказа с возможностью изменений адресов в метабоксе ApiShip.
  • Добавлена смена места отгрузки магазин/склад (в зависимости от настроек) в секции Отправитель в метабоксе ApiShip.

2022-04-18 - version 1.0.0-beta7

  • Добавлена константа WP_APISHIP_SHIPPING_CACHE со значением false|true для отмены|разрешения кеширования при тестировании.
  • Добавлен метабокс для деталей заказа и кнопками действий.
  • Добавлена иконка предупреждения о наличии заказа в системе ApiShip, но без информации в плагине.
  • Исправлены ошибки в запросах API.

2022-04-11 - version 1.0.0-beta6

  • Добавлено свойство $timeout в класс WP_ApiShip_HTTP.
  • Добавлено кэширование запросов калькуляции доставки.

2022-04-10 - version 1.0.0-beta5

  • Согласование настройки опции Country/State в адресе склада с основной опцией Woocommerce Country/State.
  • Вывод сообщения об ошибке в секции Providers в случае ошибки в ответе API.
  • В окно Tools добавлены запросы для удаления/отмены существующего заказа ApiShip.

2022-04-07 - version 1.0.0-beta4

  • Добавлен расчёт общего веса в классе WP_ApiShip_Order.
  • Добавлен перерасчёт стоимости доставки для каждого метода платежа: Прямой банковский перевод, Оплата при доставке на странице checkout.
  • Добавлен JS скрипт для фронт-енд.
  • Добавлена возмжность загрузки минифицированных скриптов JS,CSS.

2022-04-03 - version 1.0.0-beta3

  • Добавлена опция includeFees на странице настроек.
  • Добавлена опция includeFees в запросе на калькуляцию.
  • Добавлена кнопка тестирования подключения к API на странице настроек.
  • Добавлены переводы настроек ru_RU.

2022-03-31 - version 1.0.0-beta2

  • Исправления в запросе на калькуляцию (кроме опции includeFees)
  • Исправления в запросе на создание/редактирование заказа
  • Добавлен метабокс ApiShip на странице заказа.

2022-03-29 - version 1.0.0-beta1

  • Updates as 29.03.2022

2022-03-24 - version 0.2.0

  • Updates as 24.03.2022

2022-03-11

  • Added many updates.

2021-03-04 - version 0.1.0

  • Init commits.