Как добавить дополнительную колонку в список методов доставки в панели управления WooCommerce?
Есть вот такой код,
add_action('woocommerce_init', 'woocommerce_shipping_instances_form_fields_filters'); function woocommerce_shipping_instances_form_fields_filters(){ foreach( WC()->shipping->get_shipping_methods() as $shipping_method ) { add_filter('woocommerce_shipping_instance_form_fields_' . $shipping_method->id, 'shipping_methods_additional_custom_field'); } } function shipping_methods_additional_custom_field( $settings ) { $settings['shipping_comment'] = array( 'title' => __('Shipping Comment', 'woocommerce'), 'type' => 'textarea', 'placeholder' => __( 'Enter any additional comments for this shipping method.', 'woocommerce' ), ); return $settings; } |
add_action('woocommerce_init', 'woocommerce_shipping_instances_form_fields_filters'); function woocommerce_shipping_instances_form_fields_filters(){ foreach( WC()->shipping->get_shipping_methods() as $shipping_method ) { add_filter('woocommerce_shipping_instance_form_fields_' . $shipping_method->id, 'shipping_methods_additional_custom_field'); } } function shipping_methods_additional_custom_field( $settings ) { $settings['shipping_comment'] = array( 'title' => __('Shipping Comment', 'woocommerce'), 'type' => 'textarea', 'placeholder' => __( 'Enter any additional comments for this shipping method.', 'woocommerce' ), ); return $settings; }
который добавляет дополнительное поле для комментария, при редактировании метода доставки в настройках Woocommerce
Как мне добавить дополнительную колонку в списке методов доставки в настройках Woocommerce и чтобы в ней отображались эти комментарии?
Вот здесь
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Поле в настройках метода доставки Вы уже добавили правильно через фильтр
woocommerce_shipping_instance_form_fields_.... Чтобы показать это значение в списке методов доставки, нужно понимать ограничение: стандартный экран зон доставки WooCommerce не даёт удобного публичного хука для добавления произвольной колонки в таблицу методов так же просто, как в списке записей.Самый безопасный вариант — добавить комментарий прямо в title/description метода или вывести его рядом с названием через фильтры отображения настроек. Если нужна именно отдельная колонка в админке, чаще всего делают небольшой JS в админке, который после загрузки таблицы подтягивает сохранённые значения и вставляет колонку.
Сохранённое значение instance-поля лежит в option вида:
woocommerce_flat_rate_12_settings
где
flat_rate— ID метода, а12— instance_id. Получить его можно так:$instance_id = 12; $method_id = 'flat_rate'; $settings = get_option("woocommerce_{$method_id}_{$instance_id}_settings", []); $comment = $settings['shipping_comment'] ?? '';
Если задача внутренняя и достаточно видеть комментарий при редактировании метода, оставьте поле там. Если менеджеру нужно видеть его в общем списке зон, лучше сделать отдельную страницу отчёта: зона, метод, instance ID, комментарий. Это надёжнее, чем ломать административную таблицу WooCommerce, которую WooCommerce может изменить обновлением.
Если всё-таки добавлять колонку в существующий экран, делайте это отдельным админским JS только на странице
wc-settings&tab=shipping, без правки файлов WooCommerce. Значения комментариев можно передать в JS черезwp_localize_script(), собрав их из всех зон доставки.