<?php
namespace DgoraWcas\Integrations\Plugins\WooCommerceWholeSalePricesIntegration;
use DgoraWcas\Helpers;
use DgoraWcas\Multilingual;
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) {
exit;
}
/**
* Integration with WooCommerce Wholesale Prices
*
* Plugin URL: https://wholesalesuiteplugin.com
* Author: Rymera Web Co
*/
class WooCommerceWholeSalePricesIntegration {
public function init() {
if ( !class_exists( 'WooCommerceWholeSalePricesPremium' ) ) {
return;
}
if ( version_compare( \WooCommerceWholeSalePricesPremium::VERSION, '1.24.4' ) < 0 ) {
return;
}
add_filter( 'dgwt/wcas/search_query/args', array($this, 'filterSearchQueryArgs') );
add_filter( 'dgwt/wcas/search/product_cat/args', array($this, 'filterProductCatArgs') );
add_filter( 'dgwt/wcas/troubleshooting/renamed_plugins', array($this, 'getFolderRenameInfo') );
}
/**
* Exclude hidden products from search results (native engine)
*
* @param array $args
*
* @return array
*/
public function filterSearchQueryArgs( $args ) {
global $wc_wholesale_prices_premium;
if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_woocommerce' ) ) {
return $args;
}
return $wc_wholesale_prices_premium->wwpp_query->pre_get_posts_arg( $args );
}
/**
* Exclude hidden categories from search results (native engine)
*
* @param array $args
*
* @return array
*/
public function filterProductCatArgs( $args ) {
global $wc_wholesale_prices_premium;
if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_woocommerce' ) ) {
return $args;
}
$postsArgs = array(
'tax_query' => array(),
);
$postsArgs = $wc_wholesale_prices_premium->wwpp_query->pre_get_posts_arg( $postsArgs );
if ( !isset( $args['exclude'] ) ) {
$args['exclude'] = array();
}
$args['exclude'] = array_merge( $args['exclude'], $this->getExcludedCategoryIds( $postsArgs ) );
return $args;
}
/**
* Get info about renamed plugin folder
*
* @param array $plugins
*
* @return array
*/
public function getFolderRenameInfo( $plugins ) {
$filters = new Filters();
$result = Helpers::getFolderRenameInfo__premium_only( 'WooCommerce Wholesale Prices Premium', $filters->plugin_names );
if ( $result ) {
$plugins[] = $result;
}
return $plugins;
}
private function getExcludedCategoryIds( $postsArgs ) {
$categoryIds = array();
if ( !empty( $postsArgs['tax_query'] ) ) {
foreach ( $postsArgs['tax_query'] as $taxQuery ) {
if ( isset( $taxQuery['taxonomy'] ) && $taxQuery['taxonomy'] === 'product_cat' && isset( $taxQuery['operator'] ) && $taxQuery['operator'] === 'NOT IN' ) {
$categoryIds = $taxQuery['terms'];
}
}
}
return $categoryIds;
}
}