From ad0d37369ea9b4a3a2e7765acba0b02d75f91efa Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Fri, 7 Apr 2017 17:42:26 -0400 Subject: [PATCH] Update the query for the custom fields use get_var in some places to simplify the queries. --- models/front/fields/detail.php | 3 +-- models/front/fields/list.php | 47 +++++++++++++++++----------------- setup/frontHooks.php | 10 +++++++- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/models/front/fields/detail.php b/models/front/fields/detail.php index e0e5c96..f808426 100644 --- a/models/front/fields/detail.php +++ b/models/front/fields/detail.php @@ -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']; diff --git a/models/front/fields/list.php b/models/front/fields/list.php index 646a3e3..8e3f872 100644 --- a/models/front/fields/list.php +++ b/models/front/fields/list.php @@ -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, diff --git a/setup/frontHooks.php b/setup/frontHooks.php index b081882..b8f8f22 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -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 '
$query: ' . print_r( $query, true ) . '
'; + //$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; +}); -- 2.17.1