WC_Shipping_Zone_Data_Store::save_locations()privateWC 3.0.0

Save locations to the DB. This function clears old locations, then re-inserts new if any changes are found.

Метод класса: WC_Shipping_Zone_Data_Store{}

Хуков нет.

Возвращает

true|false|null.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->save_locations( $zone );
$zone(WC_Shipping_Zone) (обязательный) (передается по ссылке — &)
Shipping zone object.

Список изменений

С версии 3.0.0 Введена.

Код WC_Shipping_Zone_Data_Store::save_locations() WC 8.7.0

private function save_locations( &$zone ) {
	$changed_props = array_keys( $zone->get_changes() );
	if ( ! in_array( 'zone_locations', $changed_props, true ) ) {
		return false;
	}

	global $wpdb;
	$wpdb->delete( $wpdb->prefix . 'woocommerce_shipping_zone_locations', array( 'zone_id' => $zone->get_id() ) );

	foreach ( $zone->get_zone_locations( 'edit' ) as $location ) {
		$wpdb->insert(
			$wpdb->prefix . 'woocommerce_shipping_zone_locations',
			array(
				'zone_id'       => $zone->get_id(),
				'location_code' => $location->code,
				'location_type' => $location->type,
			)
		);
	}
}