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 …