class-wc-shipping-zone-data-store-interface.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Shipping Zone Data Store Interface
  4. *
  5. * @version 3.0.0
  6. * @package WooCommerce/Interface
  7. */
  8. if ( ! defined( 'ABSPATH' ) ) {
  9. exit;
  10. }
  11. /**
  12. * WC Shipping Zone Data Store Interface.
  13. *
  14. * Functions that must be defined by shipping zone store classes.
  15. *
  16. * @version 3.0.0
  17. */
  18. interface WC_Shipping_Zone_Data_Store_Interface {
  19. /**
  20. * Get a list of shipping methods for a specific zone.
  21. *
  22. * @param int $zone_id Zone ID.
  23. * @param bool $enabled_only True to request enabled methods only.
  24. * @return array Array of objects containing method_id, method_order, instance_id, is_enabled
  25. */
  26. public function get_methods( $zone_id, $enabled_only );
  27. /**
  28. * Get count of methods for a zone.
  29. *
  30. * @param int $zone_id Zone ID.
  31. * @return int Method Count
  32. */
  33. public function get_method_count( $zone_id );
  34. /**
  35. * Add a shipping method to a zone.
  36. *
  37. * @param int $zone_id Zone ID.
  38. * @param string $type Method Type/ID.
  39. * @param int $order Method Order ID.
  40. * @return int Instance ID
  41. */
  42. public function add_method( $zone_id, $type, $order );
  43. /**
  44. * Delete a method instance.
  45. *
  46. * @param int $instance_id Intance ID.
  47. */
  48. public function delete_method( $instance_id );
  49. /**
  50. * Get a shipping zone method instance.
  51. *
  52. * @param int $instance_id Instance ID.
  53. * @return object
  54. */
  55. public function get_method( $instance_id );
  56. /**
  57. * Find a matching zone ID for a given package.
  58. *
  59. * @param object $package Zone package object.
  60. * @return int
  61. */
  62. public function get_zone_id_from_package( $package );
  63. /**
  64. * Return an ordered list of zones.
  65. *
  66. * @return array An array of objects containing a zone_id, zone_name, and zone_order.
  67. */
  68. public function get_zones();
  69. /**
  70. * Return a zone ID from an instance ID.
  71. *
  72. * @param int $id Instance ID.
  73. * @return int
  74. */
  75. public function get_zone_id_by_instance_id( $id );
  76. }