Automattic\WooCommerce\Internal\Fulfillments

FulfillmentsController::delete_hpos_order_fulfillment_metaprivateWC 1.0

Delete fulfillment status meta from HPOS meta table.

Method of the class: FulfillmentsController{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->delete_hpos_order_fulfillment_meta( $order_ids ): void;
$order_ids(array)
Array of order IDs to delete fulfillment status meta for.
Default: array()

FulfillmentsController::delete_hpos_order_fulfillment_meta() code WC 10.3.3

private function delete_hpos_order_fulfillment_meta( $order_ids = array() ): void {
	global $wpdb;

	// Check if HPOS meta table exists.
	$table_name = $wpdb->prefix . 'wc_orders_meta';
	if ( $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $table_name ) ) !== $table_name ) {
		return;
	}

	if ( ! empty( $order_ids ) ) {
		$order_params = array_merge( array( '_fulfillment_status' ), $order_ids );
		$wpdb->query(
			$wpdb->prepare(
				"DELETE FROM {$wpdb->prefix}wc_orders_meta
				WHERE meta_key = %s
				AND order_id IN (" . implode( ',', array_fill( 0, count( $order_ids ), '%d' ) ) . ')',
				...$order_params
			)
		);
	} else {
		$wpdb->query(
			$wpdb->prepare(
				"DELETE FROM {$wpdb->prefix}wc_orders_meta
				WHERE meta_key = %s",
				'_fulfillment_status'
			)
		);
	}
}