| @@ 132-196 (lines=65) @@ | ||
| 129 | ); |
|
| 130 | ||
| 131 | // Add line items. |
|
| 132 | foreach ( $refund->get_items() as $item_id => $item ) { |
|
| 133 | $product = $refund->get_product_from_item( $item ); |
|
| 134 | $product_id = 0; |
|
| 135 | $variation_id = 0; |
|
| 136 | $product_sku = null; |
|
| 137 | ||
| 138 | // Check if the product exists. |
|
| 139 | if ( is_object( $product ) ) { |
|
| 140 | $product_id = $product->id; |
|
| 141 | $variation_id = $product->variation_id; |
|
| 142 | $product_sku = $product->get_sku(); |
|
| 143 | } |
|
| 144 | ||
| 145 | $meta = new WC_Order_Item_Meta( $item, $product ); |
|
| 146 | ||
| 147 | $item_meta = array(); |
|
| 148 | ||
| 149 | $hideprefix = 'true' === $request['all_item_meta'] ? null : '_'; |
|
| 150 | ||
| 151 | foreach ( $meta->get_formatted( $hideprefix ) as $meta_key => $formatted_meta ) { |
|
| 152 | $item_meta[] = array( |
|
| 153 | 'key' => $formatted_meta['key'], |
|
| 154 | 'label' => $formatted_meta['label'], |
|
| 155 | 'value' => $formatted_meta['value'], |
|
| 156 | ); |
|
| 157 | } |
|
| 158 | ||
| 159 | $line_item = array( |
|
| 160 | 'id' => $item_id, |
|
| 161 | 'name' => $item['name'], |
|
| 162 | 'sku' => $product_sku, |
|
| 163 | 'product_id' => (int) $product_id, |
|
| 164 | 'variation_id' => (int) $variation_id, |
|
| 165 | 'quantity' => wc_stock_amount( $item['qty'] ), |
|
| 166 | 'tax_class' => ! empty( $item['tax_class'] ) ? $item['tax_class'] : '', |
|
| 167 | 'price' => wc_format_decimal( $refund->get_item_total( $item, false, false ), $dp ), |
|
| 168 | 'subtotal' => wc_format_decimal( $refund->get_line_subtotal( $item, false, false ), $dp ), |
|
| 169 | 'subtotal_tax' => wc_format_decimal( $item['line_subtotal_tax'], $dp ), |
|
| 170 | 'total' => wc_format_decimal( $refund->get_line_total( $item, false, false ), $dp ), |
|
| 171 | 'total_tax' => wc_format_decimal( $item['line_tax'], $dp ), |
|
| 172 | 'taxes' => array(), |
|
| 173 | 'meta' => $item_meta, |
|
| 174 | ); |
|
| 175 | ||
| 176 | $item_line_taxes = maybe_unserialize( $item['line_tax_data'] ); |
|
| 177 | if ( isset( $item_line_taxes['total'] ) ) { |
|
| 178 | $line_tax = array(); |
|
| 179 | ||
| 180 | foreach ( $item_line_taxes['total'] as $tax_rate_id => $tax ) { |
|
| 181 | $line_tax[ $tax_rate_id ] = array( |
|
| 182 | 'id' => $tax_rate_id, |
|
| 183 | 'total' => $tax, |
|
| 184 | 'subtotal' => '', |
|
| 185 | ); |
|
| 186 | } |
|
| 187 | ||
| 188 | foreach ( $item_line_taxes['subtotal'] as $tax_rate_id => $tax ) { |
|
| 189 | $line_tax[ $tax_rate_id ]['subtotal'] = $tax; |
|
| 190 | } |
|
| 191 | ||
| 192 | $line_item['taxes'] = array_values( $line_tax ); |
|
| 193 | } |
|
| 194 | ||
| 195 | $data['line_items'][] = $line_item; |
|
| 196 | } |
|
| 197 | ||
| 198 | $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; |
|
| 199 | $data = $this->add_additional_fields_to_object( $data, $request ); |
|
| @@ 170-234 (lines=65) @@ | ||
| 167 | $data['shipping'] = $order->get_address( 'shipping' ); |
|
| 168 | ||
| 169 | // Add line items. |
|
| 170 | foreach ( $order->get_items() as $item_id => $item ) { |
|
| 171 | $product = $order->get_product_from_item( $item ); |
|
| 172 | $product_id = 0; |
|
| 173 | $variation_id = 0; |
|
| 174 | $product_sku = null; |
|
| 175 | ||
| 176 | // Check if the product exists. |
|
| 177 | if ( is_object( $product ) ) { |
|
| 178 | $product_id = $product->id; |
|
| 179 | $variation_id = $product->variation_id; |
|
| 180 | $product_sku = $product->get_sku(); |
|
| 181 | } |
|
| 182 | ||
| 183 | $meta = new WC_Order_Item_Meta( $item, $product ); |
|
| 184 | ||
| 185 | $item_meta = array(); |
|
| 186 | ||
| 187 | $hideprefix = 'true' === $request['all_item_meta'] ? null : '_'; |
|
| 188 | ||
| 189 | foreach ( $meta->get_formatted( $hideprefix ) as $meta_key => $formatted_meta ) { |
|
| 190 | $item_meta[] = array( |
|
| 191 | 'key' => $formatted_meta['key'], |
|
| 192 | 'label' => $formatted_meta['label'], |
|
| 193 | 'value' => $formatted_meta['value'], |
|
| 194 | ); |
|
| 195 | } |
|
| 196 | ||
| 197 | $line_item = array( |
|
| 198 | 'id' => $item_id, |
|
| 199 | 'name' => $item['name'], |
|
| 200 | 'sku' => $product_sku, |
|
| 201 | 'product_id' => (int) $product_id, |
|
| 202 | 'variation_id' => (int) $variation_id, |
|
| 203 | 'quantity' => wc_stock_amount( $item['qty'] ), |
|
| 204 | 'tax_class' => ! empty( $item['tax_class'] ) ? $item['tax_class'] : '', |
|
| 205 | 'price' => wc_format_decimal( $order->get_item_total( $item, false, false ), $dp ), |
|
| 206 | 'subtotal' => wc_format_decimal( $order->get_line_subtotal( $item, false, false ), $dp ), |
|
| 207 | 'subtotal_tax' => wc_format_decimal( $item['line_subtotal_tax'], $dp ), |
|
| 208 | 'total' => wc_format_decimal( $order->get_line_total( $item, false, false ), $dp ), |
|
| 209 | 'total_tax' => wc_format_decimal( $item['line_tax'], $dp ), |
|
| 210 | 'taxes' => array(), |
|
| 211 | 'meta' => $item_meta, |
|
| 212 | ); |
|
| 213 | ||
| 214 | $item_line_taxes = maybe_unserialize( $item['line_tax_data'] ); |
|
| 215 | if ( isset( $item_line_taxes['total'] ) ) { |
|
| 216 | $line_tax = array(); |
|
| 217 | ||
| 218 | foreach ( $item_line_taxes['total'] as $tax_rate_id => $tax ) { |
|
| 219 | $line_tax[ $tax_rate_id ] = array( |
|
| 220 | 'id' => $tax_rate_id, |
|
| 221 | 'total' => $tax, |
|
| 222 | 'subtotal' => '', |
|
| 223 | ); |
|
| 224 | } |
|
| 225 | ||
| 226 | foreach ( $item_line_taxes['subtotal'] as $tax_rate_id => $tax ) { |
|
| 227 | $line_tax[ $tax_rate_id ]['subtotal'] = $tax; |
|
| 228 | } |
|
| 229 | ||
| 230 | $line_item['taxes'] = array_values( $line_tax ); |
|
| 231 | } |
|
| 232 | ||
| 233 | $data['line_items'][] = $line_item; |
|
| 234 | } |
|
| 235 | ||
| 236 | // Add taxes. |
|
| 237 | foreach ( $order->get_items( 'tax' ) as $key => $tax ) { |
|