You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

优化WooCommerce后台添加商品模态框搜索:仅匹配商品标题

WooCommerce后台订单创建时商品搜索仅匹配标题的实现方案

不需要直接重写woocommerce_json_search_products_and_variations核心函数,通过WooCommerce提供的钩子就能修改搜索逻辑,让后台创建订单时的商品搜索只匹配标题,忽略描述内容。

实现代码

将以下代码添加到当前主题的functions.php文件或自定义插件中:

add_filter( 'woocommerce_product_search_query', 'restrict_product_search_to_title_only', 10, 2 );
function restrict_product_search_to_title_only( $search_query, $query_vars ) {
    // 仅针对后台创建订单的目标AJAX请求生效
    if ( ! is_admin() || ! isset( $_POST['action'] ) || $_POST['action'] !== 'woocommerce_json_search_products_and_variations' ) {
        return $search_query;
    }

    $search_term = isset( $query_vars['s'] ) ? $query_vars['s'] : '';
    if ( empty( $search_term ) ) {
        return $search_query;
    }

    global $wpdb;
    $like_term = '%' . $wpdb->esc_like( $search_term ) . '%';

    // 重写搜索条件,仅匹配商品标题
    $search_query = $wpdb->prepare(
        "AND {$wpdb->posts}.post_title LIKE %s",
        $like_term
    );

    return $search_query;
}

代码说明

  • 请求校验:只对后台的woocommerce_json_search_products_and_variations AJAX请求生效,不会影响前台或其他后台搜索场景
  • 逻辑替换:默认搜索会同时匹配商品标题、描述、摘要,这里直接将查询条件改为仅匹配post_title字段
  • 变体兼容:因为产品变体的标题关联父产品,所以该逻辑会自动覆盖变体的匹配规则

注意事项

  • 修改代码前备份好主题或插件文件
  • 添加代码后,进入后台创建订单页面测试搜索功能,确认只有标题包含关键词的商品才会出现在结果中

内容的提问来源于stack exchange,提问作者basicwp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:01:01