Opened 4 years ago
Last modified 3 years ago
#3454 new defect (bug)
Unsubscription action does not work when used with BuddyPress
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Extend - BuddyPress | Keywords: | needs-patch |
| Cc: |
Description
On the susbcriptions page, the tables of subscribed topics and forums contain "x" links to unsubscribe. These appear not to work when Buddypress is installed. On click the subscription reloads with no action having been taken.
The class BBP_BuddyPress_Members contains this code:
// Move handler to 'bp_actions' - BuddyPress bypasses template_loader
remove_action( 'bbp_get_request', 'bbp_subscriptions_handler', 1 );
add_action( 'bp_actions', 'bbp_subscriptions_handler', 1 );
The method bbp_subscriptions_handler takes a single argument $action. However, this is not set in a buddypress context as the bp_actions action is called as do_action( 'bp_actions' ); without arguments.
An easy fix would be to read the $_GET directly in bbp_subscriptions_handler.
Change History (2)
#2
@
3 years ago
I did a rather quick test of this code on my test site:
<?php
// BuddyPress -> Profile -> Forums -> Subscriptions
// [x] does not work to unsubscribe. Bug in bbPress code.
// bbpress.trac.wordpress.org/ticket/3454
// Fix originally suggested by Brajesh at BuddyDev.com
// buddydev.com/support/forums/topic/x-icon-to-delete-subscriptions/
add_action( 'bp_actions', function () {
if ( empty( $_GET['action'] )
|| ! is_string( $_GET['action'] )
|| ! function_exists( 'bbp_subscriptions_handler' ) ) {
return;
}
// Sanitize the GET action
$action = sanitize_key( $_GET['action'] );
// Bail if action was totally invalid
if ( empty( $action ) ) {
return;
}
bbp_subscriptions_handler( $action );
}, 1 );
and it appeared to work. I am neither a bbPress nor a BuddyPress developer and it would be good if someone with more experience could vet this.
see https://buddydev.com/support/forums/topic/x-icon-to-delete-subscriptions/
Fix BbPress 2.6 bug not allowing handling of subscription actions from profile.
add_action( 'bp_actions', function () {
}, 1 );