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

Woocommerce实时Ajax搜索调用admin-ajax.php返回500错误如何解决

问题解决方法

你遇到的500错误是代码存在多处PHP语法/规范错误、WooCommerce调用规则错误导致的,修改方案如下:

错误点说明

  • 变量未初始化:直接给$tax_query[]赋值前未定义数组变量,PHP会抛出错误
  • WC_Product_Query参数错误:不需要指定post_type,posts_per_page参数不适用于该查询类,产品可见性的过滤规则不完整
  • 产品ID调用不符合WooCommerce规范:3.0+版本不能直接访问产品对象的id属性,必须调用get_id()方法,该问题是触发500错误的核心原因
  • 前端函数名冲突:自定义的fetch()函数和浏览器原生Fetch API重名,会导致请求异常

修改后的完整代码

HTML代码

<input type="text" name="keyword" id="keyword" onkeyup="fetch_search_results()">
<div id="datafetch">搜索结果将展示在此处</div>

主题functions.php代码

add_action( 'wp_footer', 'ajax_fetch' );
function ajax_fetch() {
?>
<script type="text/javascript">
function fetch_search_results(){
    jQuery.ajax({
        url: '<?php echo admin_url('admin-ajax.php'); ?>',
        type: 'post',
        data: { action: 'data_fetch', keyword: jQuery('#keyword').val() },
        success: function(data) {
            jQuery('#datafetch').html( data );
        }
    });
}
</script>
<?php
}

add_action('wp_ajax_data_fetch' , 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch','data_fetch');
function data_fetch(){
    // 关键词非空才执行查询
    if( empty($_POST['keyword']) ) {
        echo '';
        die();
    }
    // 初始化查询数组
    $tax_query = array(
        array(
            'taxonomy' => 'product_visibility',
            'field'    => 'name',
            'terms'    => 'exclude-from-search',
            'operator' => 'NOT IN'
        )
    );
    $query = new WC_Product_Query(
        array(
            'tax_query' => $tax_query,
            'limit' => -1,
            's' => sanitize_text_field( $_POST['keyword'] ),
            'status' => 'publish'
        )
    );
    $products = $query->get_products();
    if( !empty($products) ) {
        foreach( $products as $product ) {
            echo '<a href="'. get_permalink($product->get_id()) .'">'. $product->get_name() .'</a><br>';
        }
    } else {
        echo '未找到匹配产品';
    }
    die();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:39:03