As WC_Order_Query
is used to query orders for HPOS, the following filters should still work:
woocommerce_order_query_args
filter hook (replaces pre_get_posts
),
woocommerce_order_query
filter hook (replaces pre_get_posts
),
- and may be try
woocommerce_order_data_store_cpt_get_orders_query
filter hook.
For restrict_manage_posts
hook now you will use:
woocommerce_order_list_table_restrict_manage_orders
Some others replacements hooks with HPOS:
To edit existing columns or add custom columns to admin Orders list:
manage_woocommerce_page_wc-orders_columns
replaces the hook:
manage_edit-shop_order_columns
manage_woocommerce_page_wc-orders_custom_column
replaces the hook:
manage_shop_order_posts_custom_column
To make custom columns sortable in admin Order list use:
woocommerce_shop_order_list_table_sortable_columns
replacing the hook:
manage_edit-shop_order_sortable_columns
To make custom order metadata searchable in admin Order list use:
woocommerce_order_table_search_query_meta_keys
replacing the hook:
woocommerce_shop_order_search_fields
For Bulk actions in admin Orders list:
bulk_actions-woocommerce_page_wc-orders
replaces the hook:
bulk_actions-edit-shop_order
handle_bulk_actions-woocommerce_page_wc-orders
has 2 arguments $column
and $order
and replaces the hook
handle_bulk_actions-edit-shop_order
On High-Performance Order Storage documentation, there is a link to High Performance Order Storage Upgrade Recipe Book where you will find the path(s) to related core files you are looking for.
In this documentation, you have:
use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;
that points to woocommerce/src/Internal/DataStores/Orders
, where OrdersTableQuery.php
file is the right location to look at.
Inside the method maybe_override_query()
you have at line 233:
$pre_query = apply_filters( 'woocommerce_hpos_pre_query', null, $this, $this->sql );
Inside the method build_query()
you have at line 877:
$clauses = (array) apply_filters_ref_array( 'woocommerce_orders_table_query_clauses', array( $pieces, &$this, $this->args ) );
And so on…
woocommerce_order_query_args
did the trick – thanks! – Fission