Skip to content

Instantly share code, notes, and snippets.

@messica
Created May 31, 2019 19:03
Show Gist options
  • Save messica/3ebb77154504ecab8f5796593ccb9a13 to your computer and use it in GitHub Desktop.
Save messica/3ebb77154504ecab8f5796593ccb9a13 to your computer and use it in GitHub Desktop.
Search member directory for custom user meta passed in via query parameters.
<?php
/*
* Search member directory for custom user meta passed in via query parameters.
*
* (e.g. www.example.com/directory?company=abc+company)
*/
function my_pmpro_member_directory_sql( $sqlQuery ) {
// usermeta key to search.
$meta_key = 'company';
// Only continue if a value was passed.
if ( empty( $_REQUEST[ $meta_key ] ) ) {
return $sqlQuery;
}
$meta_value = sanitize_text_field( $_REQUEST[ $meta_key ] );
global $wpdb;
$sqlQuery = str_replace( 'WHERE', "LEFT JOIN $wpdb->usermeta umc ON umc.user_id = u.ID AND umc.meta_key = '{$meta_key}' WHERE", $sqlQuery );
$sqlQuery = str_replace( 'ORDER BY', "AND umc.meta_key = '{$meta_key}' AND umc.meta_value = '{$meta_value}' ORDER BY", $sqlQuery );
return $sqlQuery;
}
add_filter( 'pmpro_member_directory_sql', 'my_pmpro_member_directory_sql' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment