Как настроить виджет Почты России, чтоб можно было выбрать отеделение или Почтамат на карте?
Привет!
Кто уже настраивал себе на сайт виджет Почты России? Поделитесь нормальной инструкцией, пожалуйста. Почта РФ не планирует создавать плагин для woocommerce, но мы проанализировали поведение пользователей, из-за всех этих заполнений полей бесконечных и ошибок в городах и адресах многие сливаются, хотя хотят сделать заказ.
Проще было бы, чтоб покупатель мог нажать на кнопку выбрать отделение и открылась карта, где выбирает отделение почты и все. Но что-то не получается так настроить.
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для WooCommerce лучше решать выбор отделения Почты России не простым HTML-виджетом, а интеграцией с доставкой на checkout: покупатель выбирает отделение/почтомат на карте, а выбранный адрес, индекс и ID отделения сохраняются в заказ. Иначе карта будет «сама по себе», а менеджеру всё равно придётся вручную уточнять доставку.
Практический путь такой:
В WooCommerce hidden-поля можно добавить через хук:
add_action( 'woocommerce_after_order_notes', function () { echo '<input type="hidden" name="post_office_id" id="post_office_id">'; echo '<input type="hidden" name="post_office_address" id="post_office_address">'; } );
Сохранение в заказ:
add_action( 'woocommerce_checkout_create_order', function ( $order ) { if ( isset( $_POST['post_office_id'] ) ) { $order->update_meta_data( '_post_office_id', sanitize_text_field( wp_unslash( $_POST['post_office_id'] ) ) ); } if ( isset( $_POST['post_office_address'] ) ) { $order->update_meta_data( '_post_office_address', sanitize_text_field( wp_unslash( $_POST['post_office_address'] ) ) ); } } );
На фронте JS-виджет после выбора отделения должен заполнить эти поля:
function onPostOfficeSelected(point) { document.querySelector('#post_office_id').value = point.id; document.querySelector('#post_office_address').value = point.address; }function onPostOfficeSelected(point) { document.querySelector('#post_office_id').value = point.id; document.querySelector('#post_office_address').value = point.address; }
Если нет готового официального WooCommerce-плагина, проверьте агрегаторы доставки: СДЭК/Boxberry/Почта через единый модуль, eDost, Яндекс Доставка, ApiShip и аналоги. Часто быстрее и надёжнее подключить готовый модуль, чем писать карту, тарифы, валидацию индекса и передачу заказа в Почту России вручную.
Главное — не ограничиваться визуальным выбором на карте. Нужно, чтобы выбранное отделение сохранялось в заказе и попадало в письма/админку, иначе конверсия улучшится слабо, а ручной работы станет больше.