Products filter and pagination in Woocommerce Wordpress?

Viewed 14

I'm new in Wordpress and I'm doing a project in my university,

I would like to know if there's a way to prevent Wordpress or Woocommerce displaying the products automatically in the category, store and search pages?

Have been reading a lot of threads about Ajax filters and pagination, but can't really get it.

Let me show you the way I'm trying to achieve it.

I created a file called ajax.php in root directory, this is the code:

function filterAjax(){

$args = array(
    'post_type'      => 'product',
    'posts_per_page' => 12,
    'tax_query' => array(
    'relation' => 'AND',
    array(
        'taxonomy' => 'pa_rin',
        'field' => 'slug',
        'terms' => 'R16',
        'operator' => 'IN'
    ),

)
);

$loop = new wp_query( $args );

while ( $loop->have_posts() ) : $loop->the_post();
    global $product;
    $products[0]= [
        "id" => $product->get_id(),
        "link" => $product->get_permalink(),
        "title" => $product->get_title(),
        "type" => $product->get_type(),
        "status" => $product->get_status(),
        "visibility" => $product->get_catalog_visibility(),
        "price" => $product->get_price(),
        "categories" => $product->get_categories(),
        "image" => $product->get_image()
    ];

endwhile;


$products[1] = [
    "products quantity" => $loop->found_posts()

];

wp_reset_query();

echo json_encode($products);}

Don't pay atention to $products[0] in the loop, just needed 1 product to know if it works and it does.

Also I got the quantity of products, but can't make work the $paged work, example if I add the following

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
'paged' => $paged,
$current_page = max( 1, get_query_var('paged') );

Always returns current page = 1, it's because this file isn't in the products page?

What's exactly var 'paged'? something like get_query_var('/page/3/')?

I would like to control everything with javascript and that ajax.php file, since I don't know how to exactly work with wordpress.

For example, an user press number 3 in pagination and I catch it with js, then I send/tell to ajax.php get page 3, how could I do a query to get the products of the 3rd page?

By the way, I'm not a native english speaker.

0 Answers
Related