Поиск в реальном времени Ajax Woocommerce

#ajax #wordpress #woocommerce

Вопрос:

Необходимо мгновенно перейти к поисковым записям, но почему я могу вызвать такую ошибку?

Эта ошибка : СООБЩЕНИЕ https://localhost/theme/wp-admin/admin-ajax.php 500 (Внутренняя ошибка Сервера)

Следуя моему коду: HTML

 <input type="text" name="keyword" id="keyword" onkeyup="fetch()"></input>
 <div id="datafetch">Search results will appear here</div>
 

functions.php

 add_action( 'wp_footer', 'ajax_fetch' );
function ajax_fetch() {
    ?>
    <script type="text/javascript">
        function fetch(){

            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 );
                    console.log(data);
                }
            });
        }
    </script>

    <?php  }

add_action('wp_ajax_data_fetch' , 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch','data_fetch');
function data_fetch(){
    $tax_query[] = array(
        'taxonomy' => 'product_visibility',
        'field'    => 'name',
        'operator' => 'NOT'
    );
    $query = new WC_Product_Query(
        array(
            'tax_query' => $tax_query,
            'posts_per_page' => -1,
            's' => esc_attr( $_POST['keyword'] ),
            'post_type' => 'post'
        )
    );
    $products = $query->get_products();
    if($products) {
        foreach( $products as $product) {
            echo '
      <a href=" '. get_permalink($product->id) .' "> '. $product->get_name() .' </a>';
        }
    }
    wp_reset_postdata();
    die();
}

 

я получаю такую ошибку

debug.log

 Stack trace:
#0 C:xampphtdocsthemewp-includesclass-wp-hook.php(303): data_fetch('')
#1 C:xampphtdocsthemewp-includesclass-wp-hook.php(327): WP_Hook->apply_filters('', Array)
#2 C:xampphtdocsthemewp-includesplugin.php(470): WP_Hook->do_action(Array)
#3 C:xampphtdocsthemewp-adminadmin-ajax.php(187): do_action('wp_ajax_data_fe...')
#4 {main}
 

Заранее благодарю вас

Комментарии:

1. Попробуйте использовать для постановки в очередь и локализации сценария.

2. деталь я пропустил $product ->get_name() Я написал именно этот $product >>get_name() . Решение найдено. Спасибо