Update the query for the custom fields
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 7 Apr 2017 21:42:26 +0000 (17:42 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 7 Apr 2017 21:42:26 +0000 (17:42 -0400)
use get_var in some places to simplify the queries.

models/front/fields/detail.php
models/front/fields/list.php
setup/frontHooks.php

index e0e5c96..f808426 100644 (file)
@@ -67,8 +67,7 @@ class GlmMembersFront_fields_detail extends GlmDataFieldsCustomFields
             $field_values   = $fields_data->getList($where);
 
             $sql            = "SELECT mt.name FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_type mt, " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members m WHERE m.id = $member_id AND mt.id = m.member_type";
-            $member_type    = $wpdb->get_results($sql);
-            $member_type    = $member_type[0]->name;
+            $member_type    = $wpdb->get_var($sql);
 
             foreach($field_values as $key=>$value){
                 $field_id       = $value['field_id'];
index 646a3e3..8e3f872 100644 (file)
@@ -44,52 +44,53 @@ class GlmMembersFront_fields_list extends GlmDataFieldsCustomFields
      * @access public
      */
     public $config;
-    
+
     public function modelAction( $actionData = false )
     {
         $member_id      = null;
         $where          = '';
         $order          = '';
         $field_vals     = '';
-        $slash_price    = false;  
+        $slash_price    = false;
 
         global $wpdb;
-        $assets_dir  = get_stylesheet_directory_uri() .'/assets'; 
+        $assets_dir  = get_stylesheet_directory_uri() .'/assets';
 
         // get the member id to pass to getList, set the where clause
         if ( isset( $actionData['request']['member'] ) ) {
             $member_id          = $actionData['request']['member'] - 0;
             $member_info        = new GlmDataMemberInfo($this->wpdb, $this->config);
             $member_info_id     = $member_info->getActiveInfoIdForMember($member_id);
+
             $where = "ref_dest = $member_info_id";
-            
+
             $fields_data        = new GlmDataFieldsCustomFieldsData($this->wpdb, $this->config);
             $field_values       = $fields_data->getList($where);
-            
+
             $sql            = "SELECT mt.name FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_type mt, " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members m WHERE m.id = $member_id AND mt.id = m.member_type";
-            $member_type    = $wpdb->get_results($sql);
-            $member_type    = $member_type[0]->name;
-            
-            foreach( $field_values as $key=>$value ){
-                $field_id       = $value['field_id'];
-                $field_value    = $value['field_data']; 
-                
-                $sql            = "SELECT field_name FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields WHERE id = $field_id;";
-                $field_name     = $wpdb->get_results($sql);
-                $field_name     = $field_name[0]->field_name;
-                $slug           = sanitize_title($field_name);
+            $member_type    = $wpdb->get_var($sql);
+
+            if ( isset( $field_values ) &&  is_array( $field_values ) ) {
+                foreach( $field_values as $key=>$value ){
+                    $field_id       = $value['field_id'];
+                    $field_value    = $value['field_data'];
+
+                    $sql            = "SELECT field_name FROM " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX . "custom_fields WHERE id = $field_id;";
+                    $field_name     = $wpdb->get_var($sql);
+                    $slug           = sanitize_title($field_name);
+
+                    if( $field_value ){
+                        if( $slug === 'msrp-sale' && $field_value === 'Yes'){
+                            $fields[$slug] = array('nice' => $field_name,'data' => $field_value, 'type' => $member_type, 'slash' => true);
+                        } else {
+                            $fields[$slug] = array('nice' => $field_name,'data' => $field_value, 'type' => $member_type, 'slash' => false);
+                        }
 
-                if( $field_value ){
-                    if( $slug === 'msrp-sale' && $field_value === 'Yes'){
-                        $fields[$slug] = array('nice' => $field_name,'data' => $field_value, 'type' => $member_type, 'slash' => true);
-                    } else {
-                        $fields[$slug] = array('nice' => $field_name,'data' => $field_value, 'type' => $member_type, 'slash' => false);
                     }
-                    
                 }
             }
         }
-        
+
         // Compile template data
         $templateData = array(
             'field_values'  => $fields,
index b081882..b8f8f22 100644 (file)
@@ -40,4 +40,12 @@ add_filter('glm-member-db-front-members-detail-sidebar', function($content, $id)
     },
     10,
     2
-);
\ No newline at end of file
+);
+add_filter('glm-member-db-front-search-query', function($query) {
+    // Look for the member type
+
+    //echo '<pre>$query: ' . print_r( $query, true ) . '</pre>';
+    //$query .= " AND T.member IN (SELECT id from " . GLM_MEMBERS_PLUGIN_DB_PREFIX. "members WHERE member_type = 3 ) ";
+    //$query .= " AND T.member IN (SELECT id from " . GLM_MEMBERS_PLUGIN_DB_PREFIX. "members WHERE member_type = 2 ) ";
+    return $query;
+});