Sco*_*t L 4 php wordpress orders woocommerce hook-woocommerce
我正在将开源插件转换为 HPOS 兼容。其功能之一是管理中订单列表上的附加过滤器(与订单状态一致),例如:

我似乎无法实际执行查询的修改。pre_get_posts以前,当不再使用 WP_Post 时,我正在挂钩显然不再相关。
然后对于过滤器字段也是如此,我将其挂接到 找到了等效的钩子:restrict_manage_posts. woocommerce_order_list_table_restrict_manage_orders
有人知道要使用哪个钩子吗?
在高性能订单存储文档中,有一个指向高性能订单存储升级食谱书的链接,您可以在其中找到您正在查找的相关核心文件的路径。
\n在本文档中,您拥有:
\nuse Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\CustomOrdersTableController;\nRun Code Online (Sandbox Code Playgroud)\n指向woocommerce/src/Internal/DataStores/Orders,其中OrdersTableQuery.phpfile是要查看的正确位置。
maybe_override_query()在第 233 行的方法中:
$pre_query = apply_filters( \'woocommerce_hpos_pre_query\', null, $this, $this->sql );\nRun Code Online (Sandbox Code Playgroud)\nbuild_query()在第 877 行的方法中:
$clauses = (array) apply_filters_ref_array( \'woocommerce_orders_table_query_clauses\', array( $pieces, &$this, $this->args ) );\nRun Code Online (Sandbox Code Playgroud)\n依此类推\xe2\x80\xa6
\n当WC_Order_Query用于查询 HPOS 订单时,以下过滤器应该仍然有效:
woocommerce_order_query_args过滤钩(替换pre_get_posts),woocommerce_order_query过滤钩(替换pre_get_posts),woocommerce_order_data_store_cpt_get_orders_query过滤钩。对于restrict_manage_posts现在的钩子,您将使用:
\nwoocommerce_order_list_table_restrict_manage_orders
要编辑现有列或将自定义列添加到管理订单列表:
\nmanage_woocommerce_page_wc-orders_columns替换钩子:manage_edit-shop_order_columnsmanage_woocommerce_page_wc-orders_custom_column替换钩子:manage_shop_order_posts_custom_column要使自定义订单元数据可在管理订单列表中搜索,请使用:
\nwoocommerce_order_table_search_query_meta_keys更换钩子:woocommerce_shop_order_search_fields对于管理订单列表中的批量操作:
\nbulk_actions-woocommerce_page_wc-orders替换钩子:bulk_actions-edit-shop_orderhandle_bulk_actions-woocommerce_page_wc-orders有 2 个参数$column并且$orderand 替换钩子\nhandle_bulk_actions-edit-shop_order我最初评论了一个问题,但删除了它,因为我对删除线的理解不正确。我虽然你写的woocommerce_order_list_table_restrict_manage_orders是 的替代钩子pre_get_posts。
对于具有类似低阅读理解能力的其他人,管理订单页面的更新挂钩是:
| 老的 | 新的 |
|---|---|
pre_get_posts |
woocommerce_order_query_args |
restrict_manage_posts |
woocommerce_order_list_table_restrict_manage_orders |
manage_edit-shop_order_columns |
manage_woocommerce_page_wc-orders_columns |
manage_shop_order_posts_custom_column |
manage_woocommerce_page_wc-orders_custom_column |
bulk_actions-edit-shop_order |
bulk_actions-woocommerce_page_wc-orders |
handle_bulk_actions-edit-shop_order |
handle_bulk_actions-woocommerce_page_wc-orders |
我还包括了其他一些我很难找到的内容,主要是因为get_current_screen()->id管理订单表已更改。