WC_Order_Item_Product::get_formatted_meta_data
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{}
Hooks from the method
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() 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;
}