* @return array Array of categories
* @access public
*/
-add_filter('glm_getListForSearch', function( $field,$cat_parent = false, $forActiveMembers = true ){
-
+add_filter('glm_getListForSearch',
+ function( $field, $cat_parent = false, $forActiveMembers = true ){
+ static $searched = array();
+ if ( isset( $searched[$field] ) && isset( $searched[$field][$cat_parent] ) ) {
+ return $searched[$field][$cat_parent];
+ }
$where = '';
$member_category = false;
$parent_id = 'null';
}
if($cat_parent !== false){
- $sql = 'SELECT id FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX."categories WHERE name = '$cat_parent';";
+ $sql = 'SELECT id FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX."categories WHERE name = '$cat_parent'";
$parent_id = $this->wpdb->get_var($sql);
}
// If we only want fields for active and visible members
AND M.id = MI.member AND T.$field = C.id AND C.parent = '$parent_id' GROUP BY T.$field, C.name
";
}
+ // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
// Get a list of all fields (optionally for active members only)
$search_fields = $this->wpdb->get_results($where, ARRAY_A);
+ $searched[$field][$cat_parent] = $search_fields;
return $search_fields;