| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <?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
-
- ?>
|