Shape the future of Social networking with WordPress: Join Project Midnight Sun! The next generation platform for community building with WordPress!

BuddyDev

Search

Replies

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Hi Frank,
    There was an issue with my fix for Nouveau. I missed to check for logged in user.

    Here it is updated.

    
    
    /**
     * Fix for nouveau.
     */
    add_filter( 'bp_nouveau_get_members_buttons', function ( $buttons ) {
    	if ( is_user_logged_in() || ! isset( $buttons['private_message'] ) ) {
    		return $buttons;
    	}
    
    	$buttons['private_message']['button_attr']['href'] = wp_login_url( site_url( '?message-redirect=' . bp_displayed_user_id() ) );
    
    	return $buttons;
    } );
    
    /**
     * Redirect to the send message when the user logs in
     **/
    function buddydev_redirect_to_send_message_on_login() {
    
    //make sure it is our url set in previous step
    	if ( ! is_user_logged_in() || empty( $_GET['message-redirect'] ) ) {
    		return;
    	}
    
    //redirect to PM
    	$user_id = absint( $_GET['message-redirect'] );
    //let us make sure that user exists
    	$user = get_user_by( 'id', $user_id );
    //can not PM to invalid user
    //also you should not send message to yourself
    	if ( ! $user || $user->ID == bp_loggedin_user_id() ) {
    		return;
    	}
    
    	$url = bp_loggedin_user_domain() . bp_get_messages_slug() . '/compose/?r=' . $user->user_login;
    
    	bp_core_redirect( $url );
    }
    
    add_action( 'bp_template_redirect', 'buddydev_redirect_to_send_message_on_login' );
    

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    You are welcome.

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    You are welcome.

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Hi Jan,
    Thank you for the question.

    No, The plugin is not capable of recording non logged users. We store user id to relate and show later.

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 25494
    Brajesh Singh on in reply to: Recent visitors – charts #28037

    Hi Jan,
    Thank you for the question.

    Currently, It does not provide the option for showing chart.

    Since the data is present in database tables, you might hire a developer to develop this as a custom solution.

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 25494
  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Hi Plutus,
    That is the correct way to override.

    If it is not working, Please contact the theme author and seek their advice. They may be able to help better.

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Thank you. I am looking forward to it 🙂

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Hi Frank,
    Thank you for posting here.

    There is a bug in BP Nouveau template that cases it.

    I have updated the code with the fix. Please use the following code

    
    function buddydev_filter_private_message_button_args( $args ) {
    
    	//if the user is logged in, we don't need to do anything
    	//Also, I am only handling it for profile buttons here
    	if ( is_user_logged_in() || ! bp_is_user() ) {
    		return $args;
    	}
    
    	$user_id = bp_displayed_user_id();
    
    	$args['must_be_logged_in'] = false; //show for non logged in too
    	//and redirect to our custom url containing the user id
    	$args['link_href'] = wp_login_url( site_url( '?message-redirect=' . $user_id ) );
    
    	return $args;
    }
    
    add_filter( 'bp_get_send_message_button_args', 'buddydev_filter_private_message_button_args' );
    
    /**
     * Fix for nouveau.
     */
    add_filter( 'bp_nouveau_get_members_buttons', function ( $buttons ) {
    	if ( ! isset( $buttons['private_message'] ) ) {
    		return $buttons;
    	}
    
    	$buttons['private_message']['button_attr']['href'] = wp_login_url( site_url( '?message-redirect=' . bp_displayed_user_id() ) );
    
    	return $buttons;
    } );
    
    /**
     * Redirect to the send message when the user logs in
     **/
    function buddydev_redirect_to_send_message_on_login() {
    
    //make sure it is our url set in previous step
    	if ( ! is_user_logged_in() || empty( $_GET['message-redirect'] ) ) {
    		return;
    	}
    
    //redirect to PM
    	$user_id = absint( $_GET['message-redirect'] );
    //let us make sure that user exists
    	$user = get_user_by( 'id', $user_id );
    //can not PM to invalid user
    //also you should not send message to yourself
    	if ( ! $user || $user->ID == bp_loggedin_user_id() ) {
    		return;
    	}
    
    	$url = bp_loggedin_user_domain() . bp_get_messages_slug() . '/compose/?r=' . $user->user_login;
    
    	bp_core_redirect( $url );
    }
    
    add_action( 'bp_template_redirect', 'buddydev_redirect_to_send_message_on_login' );
    

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 25494

    Thank you, both of you.

    I see now.

    You mean the links to other sites shout open in new tab? I will add an update to make it that way. I will post back after the update.

    Regards
    Brajesh