diff --git a/algolia-woo-indexer.php b/algolia-woo-indexer.php index 5284d30..8c3349e 100644 --- a/algolia-woo-indexer.php +++ b/algolia-woo-indexer.php @@ -7,9 +7,9 @@ * Requires at least: 5.5 * Tested up to: 5.5 * Requires PHP: 7.3 - * WC requires at least: 4.6.1 - * WC tested up to: 4.6.1 - * Version: 1.0.45 + * WC requires at least: 5.0.0 + * WC tested up to: 5.0.0 + * Version: 1.0.46 * * @package algolia-woo-indexer * @license GNU version 3 diff --git a/classes/class-send-products.php b/classes/class-send-products.php index 54e82d3..7afb667 100644 --- a/classes/class-send-products.php +++ b/classes/class-send-products.php @@ -1,4 +1,5 @@ 'publish', - 'include' => array( $id ), + 'include' => array($id), 'paginate' => false, ); } @@ -155,7 +156,9 @@ public static function send_products_to_algolia($id = '') * * @see https://docs.woocommerce.com/wc-apidocs/function-wc_get_products.html */ - $products = /** @scrutinizer ignore-call */ wc_get_products($arguments); + $products = + /** @scrutinizer ignore-call */ + wc_get_products($arguments); if (empty($products)) { return; @@ -164,6 +167,17 @@ public static function send_products_to_algolia($id = '') $record = array(); foreach ($products as $product) { + /** + * Set sale price or regular price based on product type + */ + if ($product->is_type('simple')) { + $sale_price = $product->get_sale_price(); + $regular_price = $product->get_regular_price(); + } elseif ($product->is_type('variable')) { + $sale_price = $product->get_variation_sale_price('min', true); + $regular_price = $product->get_variation_regular_price('max', true); + } + /** * Extract image from $product->get_image() */ @@ -172,14 +186,13 @@ public static function send_products_to_algolia($id = '') /** * Build the record array using the information from the WooCommerce product */ - $record['objectID'] = $product->get_id(); - $record['product_name'] = $product->get_name(); - $record['product_image'] = $product_image; - $record['short_description'] = $product->get_short_description(); - $record['regular_price'] = $product->get_regular_price(); - $record['sale_price'] = $product->get_sale_price(); - $record['on_sale'] = $product->is_on_sale(); - + $record['objectID'] = $product->get_id(); + $record['product_name'] = $product->get_name(); + $record['product_image'] = $product_image; + $record['short_description'] = $product->get_short_description(); + $record['regular_price'] = $regular_price; + $record['sale_price'] = $sale_price; + $record['on_sale'] = $product->is_on_sale(); $records[] = $record; } wp_reset_postdata(); @@ -202,4 +215,4 @@ public static function send_products_to_algolia($id = '') '; } } -} \ No newline at end of file +}