Automattic\WooCommerce\Internal\Fulfillments
FulfillmentsController::delete_legacy_order_fulfillment_meta
Delete fulfillment status meta from legacy postmeta table.
Method of the class: FulfillmentsController{}
No Hooks.
Returns
null. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->delete_legacy_order_fulfillment_meta( $order_ids );
- $order_ids(array
) - Array of order IDs to delete fulfillment status meta for.
Default: array()
FulfillmentsController::delete_legacy_order_fulfillment_meta() FulfillmentsController::delete legacy order fulfillment meta code WC 10.3.3
private function delete_legacy_order_fulfillment_meta( $order_ids = array() ) {
global $wpdb;
if ( ! empty( $order_ids ) ) {
$order_params = array_merge( array( '_fulfillment_status' ), $order_ids );
$wpdb->query(
$wpdb->prepare(
"DELETE pm FROM {$wpdb->postmeta} pm
INNER JOIN {$wpdb->posts} p ON pm.post_id = p.ID
WHERE p.post_type = 'shop_order'
AND pm.meta_key = %s
AND pm.post_id IN (" . implode( ',', array_fill( 0, count( $order_ids ), '%d' ) ) . ')',
...$order_params
)
);
} else {
$wpdb->query(
$wpdb->prepare(
"DELETE pm FROM {$wpdb->postmeta} pm
INNER JOIN {$wpdb->posts} p ON pm.post_id = p.ID
WHERE p.post_type = 'shop_order'
AND pm.meta_key = %s",
'_fulfillment_status'
)
);
}
}