/ Плагины / Настройка адресов Woocommerce

Настройка адресов Woocommerce

HIT

14.11.2021

2458

В woocommerce существует 2 типа адресов: billing (адрес плательщика) и shipping (адрес доставки). Поля в обоих типах адресов дублируются. Для нашей страны более характерно использовать billing для данных клиента (без указания адреса), а shipping для адреса доставки (без указания имени и фамилии). Так легче настроить оформление заказа, а именно отключение полей доставки если выбран, например, самовывоз.

Изменяем набор полей

Отключаем лишние поля в каждом из адресов:

// Удаляем поля из адресов Плательщика и Доставки

add_filter( 'woocommerce_billing_fields' , 'custom_override_billing_fields' );

function custom_override_billing_fields( $fields ) {
	//unset($fields['billing_country']); //нельзя отключать ибо не сработает сохранение
	unset($fields['billing_address_1']);
	unset($fields['billing_address_2']);	
	unset($fields['billing_city']);
	unset($fields['billing_state']);
	unset($fields['billing_postcode']);
	return $fields;
}


add_filter( 'woocommerce_shipping_fields' , 'custom_override_shipping_fields' );

function custom_override_shipping_fields( $fields ) {
	unset($fields['shipping_first_name']);
	unset($fields['shipping_last_name']);
	unset($fields['shipping_company']);
	//unset($fields['shipping_country']); //нельзя отключать ибо не сработает сохранение
	unset($fields['shipping_state']);
	unset($fields['shipping_postcode']);
	unset($fields['shipping_address_2']);
	
	//$fields['shipping_city']['data-priority'] = '10';
	
	$fields['shipping_city']   = array(
		'label'        => 'Населённый пункт',
		'required'     => true,
		'class'        => array( 'form-row-wide', '' ),
		'placeholder'  => 'Населённый пункт',
		'priority'     => 20,
	);
	
	return $fields;
}

Данными хуками мы отключаем поля только во вкладке Адреса личного кабинета. Хук woocommerce_default_address_fields отключает поле глобально, при этом даже не нужно указывать префикс billing_ или shipping_. Хук woocommerce_checkout_fields отключает поля только в оформлении.

Изменяем заголовки адресов в ЛК

add_filter( 'woocommerce_my_account_get_addresses', 'er45d_woo_change_title_account' );
function er45d_woo_change_title_account( $account_title ) {
	$account_title = array(
		'billing' => __( 'Данные плательщика', 'text-domain' ),
		'shipping' => __( 'Адрес доставки', 'text-domain' ),
	);
	
	return $account_title;
}

Добавить в вывод информации о плательщике телефон и email

if( is_wc_endpoint_url( 'edit-address' ) ) {

	add_filter( 'woocommerce_my_account_my_address_formatted_address', 'er34d_formatted_address',10, 3 );
	function er34d_formatted_address( $args, $customer_id, $name ){
		$args['phone'] = get_user_meta( $customer_id, $name . '_phone', true );
		$args['email'] = get_user_meta( $customer_id, $name . '_email', true );
		return $args;
	} 


	add_filter( 'woocommerce_localisation_address_formats', 'fe45_localisation_address_formats');
	function fe45_localisation_address_formats( $formats ){
		foreach ( $formats as $key => &$format ) {
			$format .= "\n{phone}";
			$format .= "\n{email}";
		}
		return $formats;
	}


	add_filter( 'woocommerce_formatted_address_replacements', 'er45_formatted_address_replacements', 10, 2 );
	function er45_formatted_address_replacements( $replacements, $args ){

		$replacements['{phone}'] = $args['phone'];
		$replacements['{email}'] = $args['email'];

		return $replacements;
	}

}
[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Отключить кнопку Купить (чекбокс)

Отключить кнопку Купить (чекбокс)

Сделаем возможность у некоторых товаров отключать кнопку купить. Добавляем поле (чекбокс) Скрываем кнопку Добавить в корзину в карточке товара Изменяем кнопку В корзину в категориях Тут не получится отключить хуком, Читать далее »

Общая библиотека мультисети

Общая библиотека мультисети

При создании сети (multisite) сайтов возникла проблема с медиабиблиотекой. Проблема состояла в том что главный сайт уже долгое время функционирует, на нем более 500 товаров с несколькими изображениями в каждом. Читать далее »

Плагин по доставке Почтой России

Плагин по доставке Почтой России

Рассмотрим особенности работы и настройки плагина Russian Post and EMS for WooCommerce (2,000+). Бесплатная версия Бесплатный версия определяет возможные варианты доставки только по введенному индексу. Можно сделать поле индекса невидимым Читать далее »

/

Добавить комментарий

Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6170

Пока нет комментариев. Будь первым!

Настройка адресов Woocommerce
Галерея изображений в виде карусели
Рекомендации для васГалерея изображений в виде каруселиOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.