Automattic\WooCommerce\Admin\Features\Fulfillments

FulfillmentsController::delete_hpos_order_fulfillment_meta │ private │ WC 1.0

Delete fulfillment status meta from HPOS meta table.

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

Хуков нет.

Возвращает

null. Ничего (null).

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

// private - только в коде основоного (родительского) класса
$result = $this->delete_hpos_order_fulfillment_meta( $order_ids ): void;
$order_ids(array)
Array of order IDs to delete fulfillment status meta for.
По умолчанию: array()

Код FulfillmentsController::delete_hpos_order_fulfillment_meta() WC 11.2.2

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'
			)
		);
	}
}