/** * Always filters Systematics in search results & feeds. * * optimizeMember respects the query var: `suppress_filters`. * If you need to make a query without it being Filtered, use ``$wp_query->set ("suppress_filters", true);``. * * @package optimizeMember\Queries * @since 3.5 * * @param obj $wp_query Expects ``$wp_query`` by reference. * @return null */ public static function _query_level_access_sys(&$wp_query = FALSE) { global $wpdb; /* Need this global DB object reference here. */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("_ws_plugin__optimizemember_before_query_level_access_sys", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if (is_object($wpdb) && is_object($wp_query) && !($suppressing_filters = $wp_query->get("suppress_filters"))) { if (!is_admin() && ($wp_query->is_search() || $wp_query->is_feed()) || c_ws_plugin__optimizemember_querys::_is_admin_ajax_search($wp_query)) { $s = $systematics = array($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"], $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"], $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"]); $s = $systematics = c_ws_plugin__optimizemember_utils_arrays::force_integers($s); /**/ $wp_query->set("post__not_in", array_unique(array_merge(c_ws_plugin__optimizemember_utils_arrays::force_integers((array) $wp_query->get("post__not_in")), $s))); $wp_query->set("post__in", array_unique(array_diff(c_ws_plugin__optimizemember_utils_arrays::force_integers((array) $wp_query->get("post__in")), $s))); /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("_ws_plugin__optimizemember_during_query_level_access_sys", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("_ws_plugin__optimizemember_after_query_level_access_sys", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ return; /* For uniformity. */ }
/** * optimizeMember's Security Gate ( protects WordPress queries ). * * @package optimizeMember\Security * @since 3.5 * * @attaches-to ``add_action("pre_get_posts");`` * * @param obj $wp_query Global ``$wp_query``, by reference. * @return null May filter WordPress queries, by hiding protected content which is NOT available to the current User/Member. */ public static function security_gate_query(&$wp_query = FALSE) { do_action("ws_plugin__optimizemember_before_security_gate_query", get_defined_vars()); /**/ c_ws_plugin__optimizemember_querys::query_level_access($wp_query); /* By reference. */ /**/ do_action("ws_plugin__optimizemember_after_security_gate_query", get_defined_vars()); /**/ return; /* Return for uniformity. */ }