WC_Admin_List_Table_Orders::get_order_preview_item_html()public staticWC 1.0

Get items to display in the preview as HTML.

Метод класса: WC_Admin_List_Table_Orders{}

Возвращает

Строку.

Использование

$result = WC_Admin_List_Table_Orders::get_order_preview_item_html( $order );
$order(WC_Order) (обязательный)
Order object.

Код WC_Admin_List_Table_Orders::get_order_preview_item_html() WC 8.7.0

public static function get_order_preview_item_html( $order ) {
	$hidden_order_itemmeta = apply_filters(
		'woocommerce_hidden_order_itemmeta',
		array(
			'_qty',
			'_tax_class',
			'_product_id',
			'_variation_id',
			'_line_subtotal',
			'_line_subtotal_tax',
			'_line_total',
			'_line_tax',
			'method_id',
			'cost',
			'_reduced_stock',
			'_restock_refunded_items',
		)
	);

	$line_items = apply_filters( 'woocommerce_admin_order_preview_line_items', $order->get_items(), $order );
	$columns    = apply_filters(
		'woocommerce_admin_order_preview_line_item_columns',
		array(
			'product'  => __( 'Product', 'woocommerce' ),
			'quantity' => __( 'Quantity', 'woocommerce' ),
			'tax'      => __( 'Tax', 'woocommerce' ),
			'total'    => __( 'Total', 'woocommerce' ),
		),
		$order
	);

	if ( ! wc_tax_enabled() ) {
		unset( $columns['tax'] );
	}

	$html = '
	<div class="wc-order-preview-table-wrapper">
		<table cellspacing="0" class="wc-order-preview-table">
			<thead>
				<tr>';

	foreach ( $columns as $column => $label ) {
		$html .= '<th class="wc-order-preview-table__column--' . esc_attr( $column ) . '">' . esc_html( $label ) . '</th>';
	}

	$html .= '
				</tr>
			</thead>
			<tbody>';

	foreach ( $line_items as $item_id => $item ) {

		$product_object = is_callable( array( $item, 'get_product' ) ) ? $item->get_product() : null;
		$row_class      = apply_filters( 'woocommerce_admin_html_order_preview_item_class', '', $item, $order );

		$html .= '<tr class="wc-order-preview-table__item wc-order-preview-table__item--' . esc_attr( $item_id ) . ( $row_class ? ' ' . esc_attr( $row_class ) : '' ) . '">';

		foreach ( $columns as $column => $label ) {
			$html .= '<td class="wc-order-preview-table__column--' . esc_attr( $column ) . '">';
			switch ( $column ) {
				case 'product':
					$html .= wp_kses_post( $item->get_name() );

					if ( $product_object ) {
						$html .= '<div class="wc-order-item-sku">' . esc_html( $product_object->get_sku() ) . '</div>';
					}

					$meta_data = $item->get_all_formatted_meta_data( '' );

					if ( $meta_data ) {
						$html .= '<table cellspacing="0" class="wc-order-item-meta">';

						foreach ( $meta_data as $meta_id => $meta ) {
							if ( in_array( $meta->key, $hidden_order_itemmeta, true ) ) {
								continue;
							}
							$html .= '<tr><th>' . wp_kses_post( $meta->display_key ) . ':</th><td>' . wp_kses_post( force_balance_tags( $meta->display_value ) ) . '</td></tr>';
						}
						$html .= '</table>';
					}
					break;
				case 'quantity':
					$html .= esc_html( $item->get_quantity() );
					break;
				case 'tax':
					$html .= wc_price( $item->get_total_tax(), array( 'currency' => $order->get_currency() ) );
					break;
				case 'total':
					$html .= wc_price( $item->get_total(), array( 'currency' => $order->get_currency() ) );
					break;
				default:
					$html .= apply_filters( 'woocommerce_admin_order_preview_line_item_column_' . sanitize_key( $column ), '', $item, $item_id, $order );
					break;
			}
			$html .= '</td>';
		}

		$html .= '</tr>';
	}

	$html .= '
			</tbody>
		</table>
	</div>';

	return $html;
}