Устаналиваем страну и город по умолчанию на странице оформления заказа

Сегодня я хочу познакомить вас с тремя фильтр-хуками, которые позволят вам установить значение страны, области и города по умолчанию на странице оформления заказа WooCommerce.

Кстати говоря, про страницу оформления заказа у меня на сайте есть видеоурок.

Вот эти фильтр-хуки:

  • default_checkout_billing_country – страна,
  • default_checkout_billing_state – область / штат,
  • default_checkout_billing_city – город, населённый пункт.

Ну и сразу попробуем это в действии – устанавливаем Хельсинки, как город по умолчанию и страну по умолчанию – 🇫🇮

add_filter( 'default_checkout_billing_country', 'truemisha_default_checkout_country' );
add_filter( 'default_checkout_billing_state', 'truemisha_default_checkout_city' );
 
function truemisha_default_checkout_country( $country ) {
	return 'FI'; // двухбуквенный ISO код страны
}
 
function truemisha_default_checkout_city( $city ) {
	return 'Helsinki';
}

Также обратите внимание, что эти хуки работают как для зарегистрованных, так и для незарегистрированных пользователей. Вполне возможно, что вы бы не хотели изменять страну / город для зарегистрированного пользователя, у которого уже всё это указано, верно?

Вероятно вам сразу вспоминается WordPress-функция is_user_logged_in(), но давайте сделаем это в стиле WooCommerce.

add_filter( 'default_checkout_billing_country', 'truemisha_default_checkout_country' );
add_filter( 'default_checkout_billing_state', 'truemisha_default_checkout_city' );
 
function truemisha_default_checkout_country( $country ) {
 
	if ( WC()->customer->get_is_paying_customer() ) {
		return $country;
	}
 
	return 'FI';
}
 
function truemisha_default_checkout_city( $city ) {
 
	if ( WC()->customer->get_is_paying_customer() ) {
		return $city;
	}
 
	return 'Helsinki';
}

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.