Содержание
Редактирование платежных полей в деталях заказа
Задача. Нужно заменить название поля с дополнительным адресом. Используется плагин Saphali Woocommerce Lite, в нем и заменили название. Но проблема в том, что это название изменяется только на странице оформления заказа, а в админке при просмотре заказа — выводится старое название по умолчанию. Нужно его изменить.
Решение. Для замены названий полей используем хук-фильтр 'woocommerce_admin_billing_fields'
— Код №1. Результат в Изображении №1.
Частая проблема при попытках изменить названия полей в заказе в админке — использовать названия полей, которые мы видим на странице оформления заказа. Например, для дополнительного адреса там это
'billing_address_2'
. Но в 'woocommerce_admin_billing_fields'
используются 'address_2'
. Вот список фильтруемого массива хука.
1 2 3 4 5 6 7 8 9 |
## Заменить стандартное название поля в заказе (админка) Дополнения к адресу add_filter( 'woocommerce_admin_billing_fields', 'qfurs_woo_billing_address_2_label', 10 ); function qfurs_woo_billing_address_2_label( $fields ) { $fields['address_2']['label'] = 'Дополнения к адресу (пункт выдачи ТК СДЭК)'; return $fields; } |
Вывод отчества в деталях заказа WooCommerce
Задача. В админпанели в деталях заказа по-умолчанию в блоках «Платеж» и «Доставка» выводятся имя и фамилия покупателя. Необходимо добавить ещё отчество покупателя.
Решение. Для добавления отчества в детали заказа, можно вставить Код №2 в functions.php
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
/** Вывод отчества в деталях заказа **/ /* Отчество в метабоксе информации о заказе */ add_filter('woocommerce_admin_billing_fields', function ($fields) { $names = array( 'last_name' => array( 'label' => __('Фамилия'), 'show' => false, ), 'first_name' => array( 'label' => __('Имя'), 'show' => false, ), 'middle_name' => array( 'label' => __('Отчество'), 'show' => false, ), ); unset($fields['first_name']); unset($fields['last_name']); return $names + $fields; }, 10, 1); /* Отчество в функции форматирования адреса get_formatted_billing_address */ add_filter('woocommerce_order_formatted_billing_address', function ($address, $order) { $address['middle_name'] = $order->get_meta('_billing_middle_name'); return $address; }, 10, 2); /* Отчество в функции форматирования адреса get_formatted_shipping_address */ add_filter('woocommerce_order_formatted_shipping_address', function ($address, $order) { $address['middle_name'] = $order->get_meta('_billing_middle_name'); return $address; }, 10, 2); /* Отчество в функции форматирования адреса get_formatted_address */ add_filter('woocommerce_formatted_address_replacements', function ($replacements, $args) { if (isset($args['middle_name'])) { $replacements['{name}'] = $args['last_name'] . ' ' . $args['first_name'] . ' ' . $args['middle_name']; } else { $replacements['{name}'] = $args['last_name'] . ' ' . $args['first_name']; } return $replacements; }, 10, 2); /** end Вывод отчества в деталях заказа **/ |