WordPress.org

Ready to get started?Download WordPress

Forums

BuddyPress Group Email Subscription
broken link error (4 posts)

  1. sergeyzimin
    Member
    Posted 2 years ago #

    When i change the email options and hit the save button i get a broken link error

    http://wordpress.org/extend/plugins/buddypress-group-email-subscription/

  2. surajitray
    Member
    Posted 2 years ago #

    Yeah having the same problem...

    I get a page not found on saving the settings

    whats more after the error , if you just press enter on the same URL the confirmation appears saying that the settings were saved.

    This is really weird. It seems after changing the setting the script dies somewhere.

  3. surajitray
    Member
    Posted 2 years ago #

    Could this be related to the last buddypress upgrade ?

  4. surajitray
    Member
    Posted 2 years ago #

    ok found the problem

    it is in the function (file : bp-activity-subscription-functions.php)
    function ass_update_group_subscribe_settings()

    has a line at the end of the function which goes
    bp_core_redirect( wp_get_referer() );

    now the form for the settings is posted to the same url
    BUT !!! as per docs of wp_get_referer()

    Return Values
    (string|boolean)
    False on failure. Referer URL on success. If page "refered" (form posted) to itself, returns false (because $_SERVER['HTTP_REFERER'] == $_REQUEST['_wp_http_referer'])

    so the wp_get_referer() returns false !
    which means it results in a page not found error

    solution ?

    put this in your functions.php
    (dont have one ? find how to get one in your theme ...)

    // update the users' notification settings
    function pain_in_the_ass_update_group_subscribe_settings() {
            global $bp;
    
            if ( bp_is_groups_component() && bp_is_current_action( 'notifications' ) ) {
    
                    // If the edit form has been submitted, save the edited details
                    if ( isset( $_POST['ass-save'] ) ) {
    
                            //if ( !wp_verify_nonce( $nonce, 'ass_subscribe' ) ) die( 'A Security check failed' );
    
                            $user_id = bp_loggedin_user_id();
                            $group_id = $_POST[ 'ass_group_id' ];
                            $action = $_POST[ 'ass_group_subscribe' ];
    
                            if ( !groups_is_user_member( $user_id, $group_id ) )
                                    return;
    
                            ass_group_subscription( $action, $user_id, $group_id ); // save the settings
    
                            bp_core_add_message( sprintf( __( 'Your email notifications are set to %s for this group.', 'bp-ass' ), ass_subscribe_translate( $action ) ) );
                            bp_core_redirect( $_SERVER['HTTP_REFERER'] );
                    }
            }
    }
    remove_action( 'bp_actions', 'ass_update_group_subscribe_settings' );
    add_action( 'bp_actions', 'pain_in_the_ass_update_group_subscribe_settings' );

    Voila ... the pain is gone ...

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic