File "woocommerce.class.php"
Full Path: /home/vantageo/public_html/cache/.wp-cli/wp-content/plugins/revslider/includes/framework/woocommerce.class.php
File size: 4.35 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link http://www.themepunch.com/
* @copyright 2015 ThemePunch
*/
if( !defined( 'ABSPATH') ) exit();
class RevSliderWooCommerce{
const ARG_REGULAR_PRICE_FROM = "reg_price_from";
const ARG_REGULAR_PRICE_TO = "reg_price_to";
const ARG_SALE_PRICE_FROM = "sale_price_from";
const ARG_SALE_PRICE_TO = "sale_price_to";
const ARG_IN_STOCK_ONLY = "instock_only";
const ARG_FEATURED_ONLY = "featured_only";
const META_REGULAR_PRICE = "_regular_price";
const META_SALE_PRICE = "_sale_price";
const META_SKU = "_sku"; //can be 'instock' or 'outofstock'
const META_STOCK = "_stock"; //can be 'instock' or 'outofstock'
const SORTBY_NUMSALES = "meta_num_total_sales";
const SORTBY_REGULAR_PRICE = "meta_num__regular_price";
const SORTBY_SALE_PRICE = "meta_num__sale_price";
const SORTBY_FEATURED = "meta__featured";
const SORTBY_SKU = "meta__sku";
const SORTBY_STOCK = "meta_num_stock";
/**
*
* return true / false if the woo commerce exists
*/
public static function isWooCommerceExists(){
if(class_exists( 'Woocommerce' ))
return(true);
return(false);
}
/**
* compare wc current version to given version
*/
public static function version_check( $version = '1.0' ) {
if(self::isWooCommerceExists()){
global $woocommerce;
if(version_compare($woocommerce->version, $version, '>=')){
return true;
}
}
return false;
}
/**
*
* get wc post types
*/
public static function getCustomPostTypes(){
$arr = array();
$arr["product"] = __("Product", 'revslider');
$arr["product_variation"] = __("Product Variation", 'revslider');
return($arr);
}
/**
*
* get price query
*/
private static function getPriceQuery($priceFrom, $priceTo, $metaTag){
if(empty($priceFrom))
$priceFrom = 0;
if(empty($priceTo))
$priceTo = 9999999999;
$query = array( 'key' => $metaTag,
'value' => array( $priceFrom, $priceTo),
'type' => 'numeric',
'compare' => 'BETWEEN');
return($query);
}
/**
*
* get meta query for filtering woocommerce posts.
*/
public static function getMetaQuery($args){
$regPriceFrom = RevSliderFunctions::getVal($args, self::ARG_REGULAR_PRICE_FROM);
$regPriceTo = RevSliderFunctions::getVal($args, self::ARG_REGULAR_PRICE_TO);
$salePriceFrom = RevSliderFunctions::getVal($args, self::ARG_SALE_PRICE_FROM);
$salePriceTo = RevSliderFunctions::getVal($args, self::ARG_SALE_PRICE_TO);
$inStockOnly = RevSliderFunctions::getVal($args, self::ARG_IN_STOCK_ONLY);
$featuredOnly = RevSliderFunctions::getVal($args, self::ARG_FEATURED_ONLY);
$arrQueries = array();
$tax_query = array();
//get regular price array
if(!empty($regPriceFrom) || !empty($regPriceTo)){
$arrQueries[] = self::getPriceQuery($regPriceFrom, $regPriceTo, self::META_REGULAR_PRICE);
}
//get sale price array
if(!empty($salePriceFrom) || !empty($salePriceTo)){
$arrQueries[] = self::getPriceQuery($salePriceFrom, $salePriceTo, self::META_SALE_PRICE);
}
if($inStockOnly == "on"){
$tax_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'outofstock',
'operator' => 'NOT IN',
);
}
if($featuredOnly == "on"){
$tax_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
);
}
$query = array();
if(!empty($arrQueries)){
$query = array("meta_query"=>$arrQueries);
}
if(!empty($tax_query)){
$query['tax_query'] = $tax_query;
}
return($query);
}
/**
*
* get sortby function including standart wp sortby array
*/
public static function getArrSortBy(){
$arrSortBy = array();
$arrSortBy[self::SORTBY_REGULAR_PRICE] = __("Regular Price", 'revslider');
$arrSortBy[self::SORTBY_SALE_PRICE] = __("Sale Price", 'revslider');
$arrSortBy[self::SORTBY_NUMSALES] = __("Number Of Sales", 'revslider');
$arrSortBy[self::SORTBY_FEATURED] = __("Featured Products", 'revslider');
$arrSortBy[self::SORTBY_SKU] = __("SKU", 'revslider');
$arrSortBy[self::SORTBY_STOCK] = __("Stock Quantity", 'revslider');
return($arrSortBy);
}
} //end of the class
?>