class-wc-object-data-store-interface.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Object Data Store Interface
  4. *
  5. * @version 3.0.0
  6. * @package WooCommerce/Interface
  7. */
  8. if ( ! defined( 'ABSPATH' ) ) {
  9. exit;
  10. }
  11. /**
  12. * WC Data Store Interface
  13. *
  14. * @version 3.0.0
  15. */
  16. interface WC_Object_Data_Store_Interface {
  17. /**
  18. * Method to create a new record of a WC_Data based object.
  19. *
  20. * @param WC_Data $data Data object.
  21. */
  22. public function create( &$data );
  23. /**
  24. * Method to read a record. Creates a new WC_Data based object.
  25. *
  26. * @param WC_Data $data Data object.
  27. */
  28. public function read( &$data );
  29. /**
  30. * Updates a record in the database.
  31. *
  32. * @param WC_Data $data Data object.
  33. */
  34. public function update( &$data );
  35. /**
  36. * Deletes a record from the database.
  37. *
  38. * @param WC_Data $data Data object.
  39. * @param array $args Array of args to pass to the delete method.
  40. * @return bool result
  41. */
  42. public function delete( &$data, $args = array() );
  43. /**
  44. * Returns an array of meta for an object.
  45. *
  46. * @param WC_Data $data Data object.
  47. * @return array
  48. */
  49. public function read_meta( &$data );
  50. /**
  51. * Deletes meta based on meta ID.
  52. *
  53. * @param WC_Data $data Data object.
  54. * @param object $meta Meta object (containing at least ->id).
  55. * @return array
  56. */
  57. public function delete_meta( &$data, $meta );
  58. /**
  59. * Add new piece of meta.
  60. *
  61. * @param WC_Data $data Data object.
  62. * @param object $meta Meta object (containing ->key and ->value).
  63. * @return int meta ID
  64. */
  65. public function add_meta( &$data, $meta );
  66. /**
  67. * Update meta.
  68. *
  69. * @param WC_Data $data Data object.
  70. * @param object $meta Meta object (containing ->id, ->key and ->value).
  71. */
  72. public function update_meta( &$data, $meta );
  73. }