Sorgumda WooCommerce ürünlerini 3’lü satırlara nasıl görüntülerim?

Forumlar WordPress Geliştirme Sorgumda WooCommerce ürünlerini 3’lü satırlara nasıl görüntülerim?

  • Post
    admin
    Anahtar yönetici

    Bir WooCommerce arama eklentisi oluşturdum. Ürünleri getirir, ancak ürünleri yalnızca satır başına bir olarak görüntüler.

    Sorgumu satır başına 3 ürün gösterecek şekilde nasıl değiştirebilirim? İşte işlev:

     function realtime_product_search_enqueue_scripts() {
        wp_enqueue_script('realtime-product-search', plugin_dir_url(__FILE__) . 'realtime-product-search.js', array('jquery'), '1.0', true);
        wp_localize_script('realtime-product-search', 'realtime_product_search_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
    }
    add_action('wp_enqueue_scripts', 'realtime_product_search_enqueue_scripts');
    
    function perform_product_search() {
        $searchQuery = isset($_POST['search_query']) ? sanitize_text_field($_POST['search_query']) : '';
        $categoryFilter = isset($_POST['category_filter']) ? $_POST['category_filter'] : array();
    
        $args = array(
            'post_type' => 'product',
            'post_status' => 'publish',
            's' => $searchQuery,
        );
    
        if (!empty($categoryFilter)) {
            $args['tax_query'] = array(
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'term_id',
                    'terms' => $categoryFilter,
                    'operator' => 'IN',
                ),
            );
        }
    
        $loop = new WP_Query($args);
        $count = 0;
    
        if ($loop->have_posts()) {
            echo '
    '; // Start the product row while ($loop->have_posts()) : $loop->the_post(); if ($count % 3 === 0 && $count > 0) { echo '
    '; // Close previous row and start a new row after every 3 products } wc_get_template_part('content', 'product'); $count++; endwhile; echo '
    '; // Close the last product row } else { echo __('No products found'); } wp_reset_postdata(); die(); }

  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.