Updating the city and region list for members.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 12 Dec 2018 18:18:20 +0000 (13:18 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 12 Dec 2018 18:18:20 +0000 (13:18 -0500)
Passing in actionData so it can properly retrieve only the needed cities
for the shortcode categories.

classes/data/dataCities.php
classes/data/dataRegions.php
models/front/members/list.php

index 89347d1..53d4c18 100644 (file)
@@ -198,7 +198,7 @@ class GlmDataCities extends GlmDataAbstract
      * @access public
      */
 
-    public function getListForSearch($forActiveMembers = false) {
+    public function getListForSearch( $forActiveMembers = false, $actionData = false ) {
 
         $where = '';
 
@@ -214,8 +214,17 @@ class GlmDataCities extends GlmDataAbstract
                           ".$this->config['access_numb']['NoAccess'].",
                           ".$this->config['access_numb']['Moderated'].",
                           ".$this->config['access_numb']['Full']."
-                       )
-                )
+                       )";
+            if ( $actionData ) {
+                if ( isset( $actionData['request']['category'] ) && $actionData['request']['category'] ) {
+                    $where .= " AND MI.id IN (
+                        SELECT member_info
+                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "category_member_info
+                         WHERE category IN (" .  $actionData['request']['category'] .")
+                    ) ";
+                }
+            }
+            $where .=    ")
             ";
         }
 
index 6e64547..cb3c246 100644 (file)
@@ -153,7 +153,7 @@ class GlmDataRegions extends GlmDataAbstract
      * @access public
      */
 
-    public function getListForSearch($forActiveMembers = false) {
+    public function getListForSearch( $forActiveMembers = false, $actionData = false ) {
 
         $where = '';
 
@@ -169,8 +169,17 @@ class GlmDataRegions extends GlmDataAbstract
                           ".$this->config['access_numb']['NoAccess'].",
                           ".$this->config['access_numb']['Moderated'].",
                           ".$this->config['access_numb']['Full']."
-                       )
-                )
+                       )";
+            if ( $actionData ) {
+                if ( isset( $actionData['request']['category'] ) && $actionData['request']['category'] ) {
+                    $where .= " AND MI.id IN (
+                        SELECT member_info
+                          FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "category_member_info
+                         WHERE category IN (" .  $actionData['request']['category'] .")
+                    ) ";
+                }
+            }
+            $where .= ")
             ";
         }
 
@@ -184,4 +193,4 @@ class GlmDataRegions extends GlmDataAbstract
 
 }
 
-?>
\ No newline at end of file
+?>
index 5d6a0d6..2208add 100755 (executable)
@@ -323,12 +323,12 @@ class GlmMembersFront_members_list extends GlmDataMemberInfo
         // Get regions for possible use in search pick list for regions used in active member info records.
         require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataRegions.php';
         $Regions = new GlmDataRegions($this->wpdb, $this->config);
-        $regionData = $Regions->getListForSearch(true);
+        $regionData = $Regions->getListForSearch(true, $actionData);
 
         // Get cities for possible use in search pick list for cities used in active member info records.
         require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataCities.php';
         $cities = new GlmDataCities($this->wpdb, $this->config);
-        $cityData = $cities->getListForSearch(true);      // Get only categories that are used in active member data
+        $cityData = $cities->getListForSearch(true, $actionData);      // Get only categories that are used in active member data
 
 
         // If we have a region set in shortcode or via URL.