"WooCommerce Новая Почта" - Интеграция и настройка плагина

Данная статья подробно описывает процесс интеграции плагина доставки "Новая Почта" с WooCommerce.

Установка

Для автоматической установки перейдите в вашу админ-панель Wordpress. Выберите пункт меню "Плагины" -> Добавить новый. На появившейся странице введите в строку поиска wc ukr shipping. Нажмите кнопку Установить, а затем Активировать на появившемся плагине в результатах поиска.

Настройка

Для открытия страницы настроек плагина WC Nova Poshta Shipping кликните на пункт меню WC Ukr Shipping вашей админ-панели.
На странице настроек вы увидите перед собой две секции: Общие и Переводы.
Секция Общие содержит следующие настройки:
Добавьте актуальный API ключ Новой Почты, сохраните настройки и нажмите кнопку Обновить отделения. Подождите пока плагин загрузит актуальные данные с Новой почты (вы увидите зеленый индикатор того, что данные успешно загружены).
Секция Переводы содержит данные для всех текстов которые будут показаны пользователю при работе плагина во front-end. Вы можете изменить их по вашему вкусу и желанию. Например, поменять название метода доставки на удобное вам (по-умолчанию стоит Доставка службой Новая Почта). Обратите внимание, что данные опции позволяют задавать тексты только для одного языка (украинский или русский). Для более расширенной локализации текстов и для настройки плагина для нескольких языков читайте пункт Локализация.

Установка метода доставки для WooCommerce

После настройки основных опций, вы должны добавить созданный плагином метод доставки в настройки геозон WooCommerce. Для этого перейдите в пункт меню WooCommerce -> Настройки и выберите вкладку Доставка. Вам нужно создать геозону Украина (если она еще не создана). Сделать это можно кликнув на кнопку Добавить зону доставки.
Далее выберите вашу геозону (наведите на неё курсором) и нажмите кнопку изменить. Вам откроется страница настройки методов доставки для данной геозоны. Нажмите кнопку Добавить метод доставки.
В появившемся окне выберите в выпадающем списке "Доставка службой Новая Почта" и нажмите кнопку Добавить метод доставки. Подождите пока WooCommerce обновит данные, после чего все настройки плагина успешно завершены.
На этом этапе плагин успешно настроен. Перейдите на сайт, чтобы протестировать его работу.

Локализация

До этого мы настраивали отображение текстов только для одного языка. Функционал плагина позволяет более гибко настроить отображение текстов для нужных вам языков (если их больше 1-го). В данной секции мы покажем два варианта настройки переводов: используя платный языковый плагин (и немного кода php) и полную настройку переводов с помощью php кода. Стоит заметить что от вас потребуется немного навыков программирования или хотя бы понимания иерархии файлов темы Wordpress. Все примеры кода в данной документации вы сможете скопировать прямо на ваш рабочий сайт используя ftp или редактор темы Wordpress.

Локализация с помощью WPML Pro

Если у вас на сайте куплен и установлен плагин WPML Multilingual CMS, а также дополнение к нему под названием WPML String Translation, вы можете перевести все тексты плагина WC Nova Poshta Shipping используя функционал перевода строк, предоставленный данными дополнениями.
В админ-панели перейдите в меню WPML -> Перевод строк. Вы перейдете на страницу настроек переводов строк. Выберите домен wc-ukr-shipping, WPML просканирует файлы плагина и выведет вам список всех строк, доступных для перевода.
Выберите нужную вам строку и нажмите кнопку Переводы. Вам откроется блок, где вы можете написать переводы для всех языков, используемых на сайте. После изменения переводов выберите галочку "Перевод закончен" и нажмите "Сохранить".
На данном этапе вам понадобится немного кода php. С помощью кода ниже вы укажите плагину WC Nova Poshta Shipping, какой язык он должен использовать для областей, городов и отделений во front-end. Вы можете поместить данный код в файл functions.php вашей темы Wordpress.
add_filter('wc_ukr_shipping_language', function ($lang) {
    if (wpml_get_current_language() === 'uk') {
        return 'ua';
    }

    return 'ru';
});
Плагин WC Nova Poshta Shipping поддерживает два языковых кода переводов: ru - для русского и ua - для украинского. Как вы можете заметить из кода, в WPML для украинского языка установлен код uk и проверка в коде происходит по данной локали. Если украинский язык на вашем сайте имеет код ua, вы можете заменить проверку uk на ua в данном коде.

С помощью PHP

Данный способ отличается от предыдущего лишь тем, что тут не будет визуальной части перевода, все будет выполняться посредством кода PHP. Я покажу локализацию плагина на примере плагина Polylang бесплатной версии.
Я установил плагин Polylang и добавил два языка: русский и украинский, с кодами ru и uk соответственно.
В файле functions.php поместите следующий код для переопределения переводов плагина.
add_filter('wc_ukr_shipping_get_nova_poshta_translates', function ($translates) {
    $currentLanguage = wp_doing_ajax() ? $_COOKIE['pll_language'] : pll_current_language();
  
    if ($currentLanguage === 'uk') {
        // Возвращаем украинские переводы
        return [
            'method_title' => 'Нова Пошта',
            'block_title' => 'Вкажіть відділення доставки',
            'placeholder_area' => 'Оберіть область',
            'placeholder_city' => 'Оберіть місто',
            'placeholder_warehouse' => 'Оберіть відділення',
            'address_title' => 'Доставка кур\'ером',
            'address_placeholder' => 'Введіть адресу доставки'
        ];
    }
  
    // Возвращаем русские переводы
    return [
        'method_title' => 'Новая почта',
        'block_title' => 'Укажите отделение доставки',
        'placeholder_area' => 'Выберите область',
        'placeholder_city' => 'Выберите город',
        'placeholder_warehouse' => 'Выберите отделение',
        'address_title' => 'Доставка курьером',
        'address_placeholder' => 'Введите адрес доставки'
    ];
});
Фильтр, описанный выше, передает массив ключ-значение текстов плагина. Рассмотрим подробнее какой ключ за что отвечает:
Последним шагом будет добавление кода для указания нужного языка отделений Новой Почты.
add_filter('wc_ukr_shipping_language', function ($lang) {
    if (pll_current_language() === 'uk') {
        return 'ua';
    }

    return 'ru';
});
Используя данный пример, вы можете локализовать плагин WC Nova Poshta Shipping под любой удобный вам плагин переводов.
Если вам понравился плагин, оставьте отзыв о нем на официальной странице Wordpress. Всего 5 минут Вашего времени дадут нам понимание того, что мы делаем действительно нужную вещь!

Вы также можете преобрести Premium версию WC Nova Poshta Shipping, в которой вам будет доступен функционал автоматического просчета стоимости доставки, создание и печать экспресс-накладных, а также просчет стоимости в зависимости от суммы заказа.