File "woocommerce.class.php"
Full Path: /home/arielcor/public_html/wp-content/plugins/revslider/includes/woocommerce.class.php
File size: 3.6 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link https://www.themepunch.com/
* @copyright 2019 ThemePunch
*/
if(!defined('ABSPATH')) exit();
class RevSliderWooCommerce extends RevSliderFunctions {
const META_SKU = '_sku'; //can be 'instock' or 'outofstock'
const META_STOCK = '_stock'; //can be 'instock' or 'outofstock'
/**
* return true / false if the woo commerce exists
* @before RevSliderWooCommerce::isWooCommerceExists();
*/
public static function woo_exists(){
return (class_exists('Woocommerce')) ? true : false;
}
/**
* compare wc current version to given version
*/
public static function version_check($version = '1.0') {
if(self::woo_exists()){
global $woocommerce;
if(version_compare($woocommerce->version, $version, '>=')){
return true;
}
}
return false;
}
/**
* get wc post types
*/
public static function getCustomPostTypes(){
$arr = array(
'product' => __('Product', 'revslider'),
'product_variation' => __('Product Variation', 'revslider')
);
return $arr;
}
/**
* get price query
* @before: RevSliderWooCommerce::getPriceQuery()
*/
private static function get_price_query($from, $to, $meta_tag){
$from = (empty($from)) ? 0 : $from;
$to = (empty($to)) ? 9999999999 : $to;
$query = array(
'key' => $meta_tag,
'value' => array($from, $to),
'type' => 'numeric',
'compare' => 'BETWEEN'
);
return $query;
}
/**
* get meta query for filtering woocommerce posts.
* before: RevSliderWooCommerce::getMetaQuery();
*/
public static function get_meta_query($args){
$f = new RevSliderFunctions();
$reg_price_from = $f->get_val($args, array('source', 'woo', 'regPriceFrom'));
$reg_price_to = $f->get_val($args, array('source', 'woo', 'regPriceTo'));
$sale_price_from = $f->get_val($args, array('source', 'woo', 'salePriceFrom'));
$sale_price_to = $f->get_val($args, array('source', 'woo', 'salePriceTo'));
$query = array();
$meta_query = array();
$tax_query = array();
//get regular price array
if(!empty($reg_price_from) || !empty($reg_price_to)){
$meta_query[] = self::get_price_query($reg_price_from, $reg_price_to, '_regular_price');
}
//get sale price array
if(!empty($sale_price_from) || !empty($sale_price_to)){
$meta_query[] = self::get_price_query($sale_price_from, $sale_price_to, '_sale_price');
}
if($f->get_val($args, array('source', 'woo', 'inStockOnly')) == true){
$meta_query[] = array(
'key' => '_stock_status',
'value' => 'instock',
'compare' => '='
);
}
if($f->get_val($args, array('source', 'woo', 'featuredOnly')) == true){
$tax_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
);
}
if(!empty($meta_query)){
$query['meta_query'] = $meta_query;
}
if(!empty($tax_query)){
$query['tax_query'] = $tax_query;
}
return $query;
}
/**
* get sortby function including standart wp sortby array
*/
public static function getArrSortBy(){
$sort_by = array(
'meta_num__regular_price' => __('Regular Price', 'revslider'),
'meta_num__sale_price' => __('Sale Price', 'revslider'),
'meta_num_total_sales' => __('Number Of Sales', 'revslider'),
//'meta__featured' => __('Featured Products', 'revslider'),
'meta__sku' => __('SKU', 'revslider'),
'meta_num_stock' => __('Stock Quantity', 'revslider')
);
return $sort_by;
}
} //end of the class
?>