WC_Order_Item_Product::get_formatted_meta_datapublicWC 1.0

Get formatted meta data for the item.

This overrides the parent method to conditionally remove backorder meta data when the order is marked as completed.

Method of the class: WC_Order_Item_Product{}

Returns

Array.

Usage

$WC_Order_Item_Product = new WC_Order_Item_Product();
$WC_Order_Item_Product->get_formatted_meta_data( $hideprefix, $include_all );
$hideprefix(string)
Meta data prefix, .
Default: _)
$include_all(true|false)
Include all meta data, this stop skip items with values already in the product name.
Default: false

WC_Order_Item_Product::get_formatted_meta_data() code WC 10.8.1

public function get_formatted_meta_data( $hideprefix = '_', $include_all = false ) {
	$formatted_meta = parent::get_formatted_meta_data( $hideprefix, $include_all );

	$order = $this->get_order();

	if ( $order && $order->has_status( OrderStatus::COMPLETED ) ) {
		/**
		 * Filter the backorder meta key.
		 * Make sure to use the same filter as used in set_backorder_meta().
		 *
		 * @param string $backorder_meta_key The backorder meta key.
		 * @param WC_Order_Item_Product $item The order item product.
		 * @since 9.9.0
		 * @return string
		 */
		$backorder_meta_key = apply_filters( 'woocommerce_backordered_item_meta_name', __( 'Backordered', 'woocommerce' ), $this );

		foreach ( $formatted_meta as $meta_id => $meta ) {
			if ( isset( $meta->key ) && $meta->key === $backorder_meta_key ) {
				unset( $formatted_meta[ $meta_id ] );
			}
		}
	}

	return $formatted_meta;
}