启用HPOS后扩展WooCommerce后台订单列表的元数据搜索
扩展WooCommerce订单搜索范围至自定义订单元字段
问题背景
我们创建了客户必填的自定义字段,用于填写订单的第三方收件人信息。但当收件人咨询订单进度时,客服虽知晓收件人信息,却无法通过WooCommerce后台的订单搜索功能找到对应订单——因为WooCommerce默认不搜索订单元数据(Order_meta),仅搜索默认订单字段。
解决方案代码
通过woocommerce_shop_order_search_fields过滤器,可将自定义订单元字段纳入搜索范围,具体代码如下:
/** * 扩展WooCommerce订单搜索范围,包含自定义订单元字段 */ add_filter( 'woocommerce_shop_order_search_fields', 'add_custom_order_meta_to_search' ); function add_custom_order_meta_to_search( $search_fields ) { // 替换为你的自定义订单元字段键名,多字段可通过数组添加 $custom_meta_fields = array( '_custom_recipient_name', // 收件人姓名字段键 '_custom_recipient_phone' // 收件人电话字段键 ); // 合并自定义字段与原有搜索字段数组 $search_fields = array_merge( $search_fields, $custom_meta_fields ); return $search_fields; }
使用说明
- 将代码添加至主题
functions.php文件或自定义插件中 - 把代码里的
_custom_recipient_name和_custom_recipient_phone替换为你实际使用的订单元字段键名 - 保存后,WooCommerce后台订单搜索框即可支持搜索这些自定义字段的值
补充说明
- 该过滤器会让WooCommerce搜索订单时,同时查询你添加的订单元字段内容
- 若有多个自定义字段,直接在
$custom_meta_fields数组中追加对应键名即可 - 字段键名需与Order_meta中存储的完全一致,注意大小写区分
内容的提问来源于stack exchange,提问作者davidgleibs
相关产品推荐
相关产品推荐

