Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Only list active MemberPress members in the members directory.
- * sources:
- * https://buddydev.com/hiding-users-on-buddypress-based-site
- * https://buddypress.org/support/topic/member-loop-only-memberpress-members/
- * @param array $args args.
- *
- * @return array
- */
- function tmp_only_show_members_in_directory( $args ) {
- // do not exclude in admin.
- if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
- return $args;
- }
- $args['exclude'] = tmp_get_users_to_exclude_from_directory();
- return $args;
- }
- add_filter( 'bp_after_has_members_parse_args', 'tmp_only_show_members_in_directory' );
- /**
- * Returns an array of IDs to exclude, runs the queries if empty
- * @return false|mixed|void
- */
- function tmp_get_users_to_exclude_from_directory() {
- $ids_to_exclude = get_option('tmp_update_members_to_exclude_from_directory');
- if (empty($ids_to_exclude) || !is_array($ids_to_exclude) || count($ids_to_exclude) < 1) {
- tmp_update_members_to_exclude_from_directory();
- }
- return get_option('tmp_update_members_to_exclude_from_directory');
- }
- // Scheduled Action Hook
- function tmp_update_members_to_exclude_from_directory() {
- global $wpdb;
- $member_ids = $wpdb->get_col("SELECT DISTINCT user_id FROM ".$wpdb->prefix."mepr_transactions WHERE status IN('confirmed','complete') AND (expires_at >= NOW() OR expires_at = '0000-00-00 00:00:00')");
- $user_ids = get_users(['fields'=>'ID']);
- $user_ids_to_exclude = array_diff($user_ids, $member_ids);
- return update_option('tmp_update_members_to_exclude_from_directory',$user_ids_to_exclude);
- }
- add_action( 'hook_name', 'tmp_update_members_to_exclude_from_directory' );
- // Schedule Cron Job Event
- function tmp_update_members_to_exclude_from_directory_job() {
- if ( ! wp_next_scheduled( 'tmp_update_members_to_exclude_from_directory' ) ) {
- wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'tmp_update_members_to_exclude_from_directory' );
- }
- }
- add_action( 'wp', 'tmp_update_members_to_exclude_from_directory_job' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement