WC_Shipping_Zone_Data_Store::delete()publicWC 3.0.0

Deletes a shipping zone from the database.

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

Хуки из метода

Возвращает

null. Ничего (null).

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

$WC_Shipping_Zone_Data_Store = new WC_Shipping_Zone_Data_Store();
$WC_Shipping_Zone_Data_Store->delete( $zone, $args );
$zone(WC_Shipping_Zone) (обязательный) (передается по ссылке — &)
Shipping zone object.
$args(массив)
Array of args to pass to the delete method.
По умолчанию: array()

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

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

Код WC_Shipping_Zone_Data_Store::delete() WC 8.7.0

public function delete( &$zone, $args = array() ) {
	$zone_id = $zone->get_id();

	if ( $zone_id ) {
		global $wpdb;

		// Delete methods and their settings.
		$methods = $this->get_methods( $zone_id, false );

		if ( $methods ) {
			foreach ( $methods as $method ) {
				$this->delete_method( $method->instance_id );
			}
		}

		// Delete zone.
		$wpdb->delete( $wpdb->prefix . 'woocommerce_shipping_zone_locations', array( 'zone_id' => $zone_id ) );
		$wpdb->delete( $wpdb->prefix . 'woocommerce_shipping_zones', array( 'zone_id' => $zone_id ) );

		$zone->set_id( null );

		WC_Cache_Helper::invalidate_cache_group( 'shipping_zones' );
		WC_Cache_Helper::get_transient_version( 'shipping', true );

		do_action( 'woocommerce_delete_shipping_zone', $zone_id );
	}
}