Automattic\WooCommerce\Admin\Features\Fulfillments
FulfillmentsRenderer::filter_legacy_orders_by_shipping_provider
Filter legacy orders by shipping provider.
Method of the class: FulfillmentsRenderer{}
No Hooks.
Returns
null. Nothing (null).
Usage
$FulfillmentsRenderer = new FulfillmentsRenderer(); $FulfillmentsRenderer->filter_legacy_orders_by_shipping_provider( $query ): void;
- $query(WP_Query) (required)
- The WP_Query object.
Changelog
| Since 10.7.0 | Introduced. |
FulfillmentsRenderer::filter_legacy_orders_by_shipping_provider() FulfillmentsRenderer::filter legacy orders by shipping provider code WC 11.0.1
public function filter_legacy_orders_by_shipping_provider( $query ): void {
if (
! is_admin()
|| ! $query->is_main_query()
|| 'shop_order' !== $query->get( 'post_type' )
// This is a read-only filter on the admin orders table, so nonce verification is not required.
// phpcs:ignore WordPress.Security.NonceVerification
|| ! isset( $_GET['shipping_provider'] )
// phpcs:ignore WordPress.Security.NonceVerification
|| empty( $_GET['shipping_provider'] )
) {
return;
}
// phpcs:ignore WordPress.Security.NonceVerification
$shipping_provider = sanitize_text_field( wp_unslash( $_GET['shipping_provider'] ) );
$order_ids = $this->get_order_ids_by_shipping_provider( $shipping_provider );
if ( empty( $order_ids ) ) {
$query->set( 'post__in', array( 0 ) );
} else {
$existing = $query->get( 'post__in' );
if ( ! empty( $existing ) && is_array( $existing ) ) {
$order_ids = array_intersect( $existing, $order_ids );
if ( empty( $order_ids ) ) {
$order_ids = array( 0 );
}
}
$query->set( 'post__in', $order_ids );
}
}