Added woocommerce_get_featured_product_ids() to retrieve featured products IDs within an array

This commit is contained in:
Remi Corson 2013-09-04 11:17:13 +02:00
parent 5e51ef1fce
commit 3499e6fd73
1 changed files with 43 additions and 0 deletions

View File

@ -172,6 +172,49 @@ function woocommerce_get_product_ids_on_sale() {
return $product_ids_on_sale; return $product_ids_on_sale;
} }
/**
* Function that returns an array containing the IDs of the featured products.
*
* @since 2.1
* @access public
* @return array
*/
function woocommerce_get_featured_product_ids() {
// Load from cache
$featured_product_ids = get_transient( 'wc_featured_products' );
// Valid cache found
if ( false !== $featured_product_ids )
return $featured_product_ids;
$featured = get_posts( array(
'post_type' => array( 'product', 'product_variation' ),
'posts_per_page' => -1,
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_visibility',
'value' => array('catalog', 'visible'),
'compare' => 'IN'
),
array(
'key' => '_featured',
'value' => 'yes'
)
),
'fields' => 'id=>parent'
) );
$product_ids = array_keys( $featured );
$parent_ids = array_values( $featured );
$featured_product_ids = array_unique( array_merge( $product_ids, $parent_ids ) );
set_transient( 'wc_featured_products', $featured_product_ids );
return $featured_product_ids;
}
/** /**
* woocommerce_get_product_terms function. * woocommerce_get_product_terms function.
* *