class-wc-shipping-zone-data-store-interface.php 1.72 KB
Newer Older
imac's avatar
imac committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * WC Shipping Zone Data Store Interface.
 *
 * Functions that must be defined by shipping zone store classes.
 *
 * @version  3.0.0
 * @category Interface
 * @author   WooCommerce
 */
interface WC_Shipping_Zone_Data_Store_Interface {
	/**
	 * Get a list of shipping methods for a specific zone.
	 * @param  int   $zone_id      Zone ID
	 * @param  bool  $enabled_only True to request enabled methods only.
	 * @return array               Array of objects containing method_id, method_order, instance_id, is_enabled
	 */
	public function get_methods( $zone_id, $enabled_only );

	/**
	 * Get count of methods for a zone.
	 * @param  int $zone_id Zone ID
	 * @return int Method Count
	 */
	public function get_method_count( $zone_id );

	/**
	 * Add a shipping method to a zone.
	 * @param  int    $zone_id Zone ID
	 * @param  string $type    Method Type/ID
	 * @param  int    $order   Method Order
	 * @return int             Instance ID
	 */
	public function add_method( $zone_id, $type, $order );

	/**
	 * Delete a method instance.
	 * @param int $instance_id
	 */
	public function delete_method( $instance_id );

	/**
	 * Get a shipping zone method instance.
	 * @param  int
	 * @return object
	 */
	public function get_method( $instance_id );

	/**
	 * Find a matching zone ID for a given package.
	 * @param  object $package
	 * @return int
	 */
	public function get_zone_id_from_package( $package );

	/**
	 * Return an ordered list of zones.
	 * @return array An array of objects containing a zone_id, zone_name, and zone_order.
	 */
	public function get_zones();

	/**
	 * Return a zone ID from an instance ID.
	 * @param  int
	 * @return int
	 */
	public function get_zone_id_by_instance_id( $id );
}