[], 'headers' => [ 'Content-Type' => 'application/json' ] ]; $response = wp_remote_post($endpoint_url, $options); if (!is_wp_error($response)) { $response_body = wp_remote_retrieve_body($response); $response_body = json_decode($response_body); if (isset($response_body->data) && !empty($response_body->data)) { return $response_body->data; } return []; } return []; } function cptb_get_filtered_products($cursor = '', $search = '', $collection = 'premium-wordpress-templates') { $endpoint_url = CPTB_MAIN_URL . 'getFilteredProducts'; $remote_post_data = array( 'collectionHandle' => $collection, 'productHandle' => $search, 'paginationParams' => array( "first" => 12, "afterCursor" => $cursor, "beforeCursor" => "", "reverse" => true ) ); $body = wp_json_encode($remote_post_data); $options = [ 'body' => $body, 'headers' => [ 'Content-Type' => 'application/json' ] ]; $response = wp_remote_post($endpoint_url, $options); if (!is_wp_error($response)) { $response_body = wp_remote_retrieve_body($response); $response_body = json_decode($response_body); if (isset($response_body->data) && !empty($response_body->data)) { if (isset($response_body->data->products) && !empty($response_body->data->products)) { return array( 'products' => $response_body->data->products, 'pagination' => $response_body->data->pageInfo ); } } return []; } return []; } function cptb_get_filtered_products_ajax() { $cursor = isset($_POST['cursor']) ? sanitize_text_field(wp_unslash($_POST['cursor'])) : ''; $search = isset($_POST['search']) ? sanitize_text_field(wp_unslash($_POST['search'])) : ''; $collection = isset($_POST['collection']) ? sanitize_text_field(wp_unslash($_POST['collection'])) : 'premium-wordpress-templates'; check_ajax_referer('cptb_create_pagination_nonce_action', 'cptb_pagination_nonce'); $get_filtered_products = cptb_get_filtered_products($cursor, $search, $collection); ob_start(); if (isset($get_filtered_products['products']) && !empty($get_filtered_products['products'])) { foreach ($get_filtered_products['products'] as $product) { $product_obj = $product->node; if (isset($product_obj->inCollection) && !$product_obj->inCollection) { continue; } if ('Test Product' == $product_obj->title) { continue; } $product_obj = $product->node; $demo_url = isset($product->node->metafield->value) ? $product->node->metafield->value : ''; $product_url = isset($product->node->onlineStoreUrl) ? $product->node->onlineStoreUrl : ''; $image_src = isset($product->node->images->edges[0]->node->src) ? $product->node->images->edges[0]->node->src : ''; ?>