Php — Удалить Запятые Из Полей Адресов Оформления Заказа Woocommerce

  • Автор темы Anyared
  • Обновлено
  • 20, Oct 2024
  • #1

Магазин WooCommerce моего клиента экспортирует заказы в виде файлов, разделенных запятыми, для создания упаковочных этикеток и учета в C5.

Когда пользователи вводят адрес через запятую при оформлении заказа, это портит экспорт CSV. Пример: «Брикьярд-роуд, 60, Лапир». Запятая после «Дороги» сбивает с толку C5 при импорте.

Как я могу отфильтровать запятые перед сохранением значения адреса в заказе?

#php #woocommerce-offtopic #jquery

Anyared


Рег
29 Oct, 2011

Тем
78

Постов
191

Баллов
601
  • 25, Oct 2024
  • #2

После отправки заказа вы можете удалить/заменить запятые в полях выставления счетов и доставки адрес_1 и адрес_2 следующими значениями: (перед сохранением данных):

 
 add_action( 'wp_footer', 'checkout_field_name_validator_script');
function checkout_field_name_validator_script() {

// Only on checkout page

if( ! ( is_checkout() && ! is_wc_endpoint_url() ) ) return;

?>

<script>

jQuery(function($){

var b = '#billing_',    s = '#shipping_',

a = 'address_1',     c = ',';

// Address fields

$(b+a+c+s+a).bind('keyup blur',function(){

$(this).val($(this).val().replace(/,/g,''));

});

});

</script>

<?php
}
 

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Протестировано и работает.

При желании вы также можете одновременно сохранить свой код ответа. Таким образом, все будет защищено в случае манипуляций.

 

Dims79


Рег
29 May, 2006

Тем
60

Постов
186

Баллов
496
  • 25, Oct 2024
  • #3

Мне удалось запретить использование запятых в обоих полях адреса с помощью следующего кода. Добавьте его в свой файл function.php.

// Checkout/Order: Remove/replace comas from adresses fields add_action('woocommerce_checkout_create_order', 'remove_comas_from_address_fields', 10, 2 ); function remove_comas_from_address_fields( $order, $data ) { $replacement = ''; if ( $billing_address_1 = $order->get_billing_address_1() ) { $order->set_billing_address_1( str_replace( ',', $replacement, $billing_address_1 ) ); } if ( $billing_address_2 = $order->get_billing_address_2() ) { $order->set_billing_address_2( str_replace( ',', $replacement, $billing_address_2 ) ); } if ( $shipping_address_1 = $order->get_shipping_address_1() ) { $order->set_shipping_address_1( str_replace( ',', $replacement, $shipping_address_1 ) ); } if ( $shipping_address_2 = $order->get_shipping_address_2() ) { $order->set_shipping_address_2( str_replace( ',', $replacement, $shipping_address_2 ) ); } }

Спасибо и уважение пользователю "ЛойкАцтек" в этот пост.

Важный - Это работает только для интерфейса. Чтобы проверить и отфильтровать ввод, см. принятый ответ.

 

Wu165886


Рег
19 Dec, 2013

Тем
69

Постов
199

Баллов
574
Похожие темы Дата
Похожие темы
Sql-Запрос Для Проверки Того, Установлен Ли Метаключ Для Сообщения В Таблице Post_Meta.
Пользовательские Типы Сообщений — Визуализируйте Входные Значения Метабокса В Формате Html.
Ошибка 404 Во Всех Сообщениях И Страницах, Кроме Главной.
Wp Query — Получить Автора, Если У Сообщения Несколько Авторов
Плагины — Для Save_Post Необходимо Использовать Wp_Insert_Post И Сохранить Идентификатор Родительского Сообщения В Дочернем Сообщении И Идентификатор Дочернего Сообщения В Родительском Сообщении.
Массив — Добавить Столбец Таксономии С Содержимым Метаполя (Acf).
Плагины. Видеоконтент Заполняет Страницу Из Подкаталога Загрузки?
Я Только Что Обновился До Https С Http. Должен Ли Я Изменить Адрес Wordpress (Url) И Адрес Сайта На Панели Управления Wordpress?
Перезапись Url-Адресов — Создание Структуры Папок
Wp Enqueue Style — В Чем Разница Между Разными Способами Связывания Таблиц Стилей
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно