woocommerce/includes/interfaces/class-wc-shipping-zone-data...

73 lines
1.7 KiB
PHP

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* WC Shipping Zone Data Store Interface.
*
* Functions that must be defined by shipping zone store classes.
*
* @version 2.7.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
* @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 );
}