load($data['filter']['segment']); if (self::shouldSkip($dynamicSegment)) { return $query->whereRaw('0=1'); } foreach ($dynamicSegment->getFilters() as $filter) { $query = $filter->toSql($query); } if (isset($data['group'])) { $query->filter('groupBy', $data['group']); } if (isset($data['search']) && $data['search']) { $query->filter('search', $data['search']); } return $query; } private static function shouldSkip($dynamicSegment) { $requirementsChecker = new RequirementsChecker(new WooCommerceHelper()); return $requirementsChecker->shouldSkipSegment($dynamicSegment); } }