return false;
});
+/*
+* Find the active member info record ID for a specific member slug
+* Very similar to the above function for finding the member info id by the member id - can probably be combined
+*
+* @param integer $member slug of the member name
+* @param string $where Optional WHERE clause for query
+*
+* @return integer Member info record ID or false if not found
+*/
+add_filter('getActiveInfoIdForMemberSlug', function($memberSlug, $where = 'true') {
+
+ $sql = "
+ SELECT T.id
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "member_info T
+ WHERE $where
+ AND member = (
+ SELECT id
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE member_slug LIKE '$memberSlug'
+ )
+ AND status = ".$this->config['status_numb']['Active']."
+ AND (
+ SELECT access
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE id = T.member
+ ) IN (
+ ".$this->config['access_numb']['NoAccess'].",
+ ".$this->config['access_numb']['Moderated'].",
+ ".$this->config['access_numb']['Full']."
+ )
+ ";
+ $memberInfo = $this->wpdb->get_var($sql);
+
+ if ($memberInfo) {
+ return $memberInfo;
+ }
+
+ return false;
+});
+
/*
* Add a filter to correct rel_canonical header entries
*
2
);
+// Get a single field from the member info record of the current detail page
+// Can only be used on a page where the glmDetailSlug is set, and requires a $field parameter
+// This can probably be combined with the glm-get-memberinfo-data filter above, though will return
+// e.g. a region's ID instead of a region's name.
+add_filter( "get-current-memberinfo-field",
+ function($field = false ) {
+ if ( $field ) {
+ echo "field is now $field";
+ global $wpdb;
+ if ( !isset($GLOBALS['glmDetailSlug']) || !$GLOBALS['glmDetailSlug'] ) {
+ return false;
+ } else {
+ $memberSlug = $GLOBALS['glmDetailSlug'];
+ echo "memberslug is now $memberSlug";
+ }
+ // echo '<pre>$member: ' . print_r( $member, true ) . '</pre>';
+ // Get the member info id using the current member detail slug
+ $member_info_id = apply_filters( 'getActiveInfoIdForMemberSlug', $memberSlug );
+ echo "The member info: $member_info_id";
+ echo '<pre>$member_info_id: ' . print_r( $member_info_id, true ) . '</pre>';
+ if ( $member_info_id ) {
+ $sql = "
+ SELECT $field
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info MI
+ WHERE MI.id = $member_info_id";
+ return $this->wpdb->get_var( $sql );
+ }
+ }
+ return false;
+ },
+ 10,
+ 2
+);
+
// If no session then start one.
add_action( 'init', function(){
if ( !session_id() ) {