WC_Order_Item_Data_Store

WC Order Item Data Store: Misc Order Item Data functions.

Defined (1)

The class is defined in the following location(s).

/includes/data-stores/class-wc-order-item-data-store.php  
  1. class WC_Order_Item_Data_Store implements WC_Order_Item_Data_Store_Interface { 
  2.  
  3. /** 
  4. * Add an order item to an order. 
  5. * @since 3.0.0 
  6. * @param int $order_id 
  7. * @param array $item order_item_name and order_item_type. 
  8. * @return int Order Item ID 
  9. */ 
  10. public function add_order_item( $order_id, $item ) { 
  11. global $wpdb; 
  12. $wpdb->insert( 
  13. $wpdb->prefix . "woocommerce_order_items",  
  14. array( 
  15. 'order_item_name' => $item['order_item_name'],  
  16. 'order_item_type' => $item['order_item_type'],  
  17. 'order_id' => $order_id,  
  18. ),  
  19. array( 
  20. '%s',  
  21. '%s',  
  22. '%d',  
  23. ); 
  24.  
  25. return absint( $wpdb->insert_id ); 
  26.  
  27. /** 
  28. * Update an order item. 
  29. * @since 3.0.0 
  30. * @param int $item_id 
  31. * @param array $item order_item_name or order_item_type. 
  32. * @return boolean 
  33. */ 
  34. public function update_order_item( $item_id, $item ) { 
  35. global $wpdb; 
  36. return $wpdb->update( $wpdb->prefix . 'woocommerce_order_items', $item, array( 'order_item_id' => $item_id ) ); 
  37.  
  38. /** 
  39. * Delete an order item. 
  40. * @since 3.0.0 
  41. * @param int $item_id 
  42. */ 
  43. public function delete_order_item( $item_id ) { 
  44. global $wpdb; 
  45. $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id = %d", $item_id ) ); 
  46. $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_order_itemmeta WHERE order_item_id = %d", $item_id ) ); 
  47.  
  48. /** 
  49. * Update term meta. 
  50. * @since 3.0.0 
  51. * @param int $item_id 
  52. * @param string $meta_key 
  53. * @param mixed $meta_value 
  54. * @param string $prev_value (default: '') 
  55. * @return bool 
  56. */ 
  57. public function update_metadata( $item_id, $meta_key, $meta_value, $prev_value = '' ) { 
  58. return update_metadata( 'order_item', $item_id, $meta_key, $meta_value, $prev_value ); 
  59.  
  60. /** 
  61. * Add term meta. 
  62. * @since 3.0.0 
  63. * @param int $item_id 
  64. * @param string $meta_key 
  65. * @param mixed $meta_value 
  66. * @param bool $unique (default: false) 
  67. * @return int New row ID or 0 
  68. */ 
  69. public function add_metadata( $item_id, $meta_key, $meta_value, $unique = false ) { 
  70. return add_metadata( 'order_item', $item_id, $meta_key, $meta_value, $unique ); 
  71.  
  72. /** 
  73. * Delete term meta. 
  74. * @since 3.0.0 
  75. * @param int $item_id 
  76. * @param string $meta_key 
  77. * @param string $meta_value (default: '') 
  78. * @param bool $delete_all (default: false) 
  79. * @return bool 
  80. */ 
  81. public function delete_metadata( $item_id, $meta_key, $meta_value = '', $delete_all = false ) { 
  82. return delete_metadata( 'order_item', $item_id, $meta_key, $meta_value, $delete_all ); 
  83.  
  84. /** 
  85. * Get term meta. 
  86. * @since 3.0.0 
  87. * @param int $item_id 
  88. * @param string $key 
  89. * @param bool $single (default: true) 
  90. * @return mixed 
  91. */ 
  92. public function get_metadata( $item_id, $key, $single = true ) { 
  93. return get_metadata( 'order_item', $item_id, $key, $single ); 
  94.  
  95. /** 
  96. * Get order ID by order item ID. 
  97. * @since 3.0.0 
  98. * @param int $item_id 
  99. * @return int 
  100. */ 
  101. function get_order_id_by_order_item_id( $item_id ) { 
  102. global $wpdb; 
  103. return (int) $wpdb->get_var( $wpdb->prepare( 
  104. "SELECT order_id FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id = %d",  
  105. $item_id 
  106. ) ); 
  107.  
  108. /** 
  109. * Get the order item type based on Item ID. 
  110. * @since 3.0.0 
  111. * @param int $item_id 
  112. * @return string 
  113. */ 
  114. public function get_order_item_type( $item_id ) { 
  115. global $wpdb; 
  116. $item_data = $wpdb->get_row( $wpdb->prepare( "SELECT order_item_type FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id = %d LIMIT 1;", $item_id ) ); 
  117. return $item_data->order_item_type;