<?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 ); }