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

86 lines
1.8 KiB
PHP

<?php
/**
* Shipping Zone Data Store Interface
*
* @version 3.0.0
* @package WooCommerce\Interface
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* WC Shipping Zone Data Store Interface.
*
* Functions that must be defined by shipping zone store classes.
*
* @version 3.0.0
*/
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 ID.
* @return int Instance ID
*/
public function add_method( $zone_id, $type, $order );
/**
* Delete a method instance.
*
* @param int $instance_id Intance ID.
*/
public function delete_method( $instance_id );
/**
* Get a shipping zone method instance.
*
* @param int $instance_id Instance ID.
* @return object
*/
public function get_method( $instance_id );
/**
* Find a matching zone ID for a given package.
*
* @param object $package Zone package object.
* @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 $id Instance ID.
* @return int
*/
public function get_zone_id_by_instance_id( $id );
}