Automattic\WooCommerce\Internal\Fulfillments
FulfillmentsRenderer::filter_legacy_orders_list_query
Filter the legacy orders list query to include fulfillment status.
Method of the class: FulfillmentsRenderer{}
No Hooks.
Returns
null. Nothing (null).
Usage
$FulfillmentsRenderer = new FulfillmentsRenderer(); $FulfillmentsRenderer->filter_legacy_orders_list_query( $query );
- $query(WP_Query) (required)
- The WP_Query object.
FulfillmentsRenderer::filter_legacy_orders_list_query() FulfillmentsRenderer::filter legacy orders list query code WC 10.3.3
public function filter_legacy_orders_list_query( $query ) {
if (
is_admin()
&& $query->is_main_query()
&& $query->get( 'post_type' ) === 'shop_order'
&& isset( $_GET['fulfillment_status'] ) && ! empty( $_GET['fulfillment_status'] ) // phpcs:ignore WordPress.Security.NonceVerification
) {
$status = sanitize_text_field( wp_unslash( $_GET['fulfillment_status'] ) ); // phpcs:ignore WordPress.Security.NonceVerification
// Ensure the fulfillment status is one of the allowed values.
if ( FulfillmentUtils::is_valid_order_fulfillment_status( $status ) ) {
$query->set(
'meta_query',
'no_fulfillments' === $status ?
array(
'relation' => 'OR',
array(
'key' => '_fulfillment_status',
'compare' => 'NOT EXISTS',
),
) :
array(
array(
'key' => '_fulfillment_status',
'value' => $status,
'compare' => '=',
),
)
);
}
}
}