WC_Order_Factory::get_order_item PHP Method

get_order_item() public static method

Get order item.
public static get_order_item ( $item_id ) : WC_Order_Item | false
return WC_Order_Item | false if not found
    public static function get_order_item($item_id = 0)
    {
        global $wpdb;
        if (is_numeric($item_id)) {
            $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));
            $item_type = $item_data->order_item_type;
            $id = $item_id;
        } elseif ($item_id instanceof WC_Order_Item) {
            $item_type = $item_id->get_type();
            $id = $item_id->get_id();
        } elseif (is_object($item_id) && !empty($item_id->order_item_type)) {
            $id = $item_id->order_item_id;
            $item_type = $item_id->order_item_type;
        } else {
            $item_data = false;
            $item_type = false;
            $id = false;
        }
        if ($id && $item_type) {
            $classname = false;
            switch ($item_type) {
                case 'line_item':
                case 'product':
                    $classname = 'WC_Order_Item_Product';
                    break;
                case 'coupon':
                    $classname = 'WC_Order_Item_Coupon';
                    break;
                case 'fee':
                    $classname = 'WC_Order_Item_Fee';
                    break;
                case 'shipping':
                    $classname = 'WC_Order_Item_Shipping';
                    break;
                case 'tax':
                    $classname = 'WC_Order_Item_Tax';
                    break;
            }
            if ($classname) {
                try {
                    return new $classname($id);
                } catch (Exception $e) {
                    return false;
                }
            }
        }
        return false;
    }

Usage Example

 /**
  * Get an order item object, based on it's type.
  * @since  2.7.0
  * @param  int $item_id
  * @return WC_Order_Item
  */
 public function get_item($item_id)
 {
     return WC_Order_Factory::get_order_item($item_id);
 }