The user version works perfectly. The group version correctly removes the existing tab and adds a new one, but the new tab leads to a 404 page when clicked. I was able to replicate on a fresh Docker install of WordPress 6.5.4 and BuddyPress 12.5.0 with no other plugins (besides the one below, which is one file) and the Twenty Twenty-Four theme. Thanks in advance for any help.
<code>
<?php
/*
Plugin Name: BuddyPress Group Test
Plugin URI: n/a
Description: Test adding group tab
Version: 0.0.1
Author: n/a
Author URI: n/a
License: AGPLv3
*/
add_action('bp_actions', function()
{
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
bp_core_remove_subnav_item("{$group_slug}_manage", 'group-avatar', 'groups');
}
else
{
bp_core_remove_subnav_item('profile', 'change-avatar', 'members');
}
});
add_action('bp_setup_nav', function()
{
$bp = buddypress();
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Group Photo',
'slug' => 'change-group-photo',
'parent_url' => trailingslashit(bp_get_group_permalink($group_slug)) . 'admin/',
'parent_slug' => "{$group_slug}_manage",
'position' => 30,
'screen_function' => function() use($group_slug)
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'groups/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>GROUP</h1>';
});
},
]);
}
else
{
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Profile Photo',
'slug' => 'change-profile-photo',
'parent_url' => trailingslashit($bp->loggedin_user->domain . $bp->profile->slug),
'parent_slug' => $bp->profile->slug,
'position' => 30,
'screen_function' => function()
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'members/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>USER</h1>';
});
},
]);
}
}, 10);
</code>
<code>
<?php
/*
Plugin Name: BuddyPress Group Test
Plugin URI: n/a
Description: Test adding group tab
Version: 0.0.1
Author: n/a
Author URI: n/a
License: AGPLv3
*/
add_action('bp_actions', function()
{
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
bp_core_remove_subnav_item("{$group_slug}_manage", 'group-avatar', 'groups');
}
else
{
bp_core_remove_subnav_item('profile', 'change-avatar', 'members');
}
});
add_action('bp_setup_nav', function()
{
$bp = buddypress();
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Group Photo',
'slug' => 'change-group-photo',
'parent_url' => trailingslashit(bp_get_group_permalink($group_slug)) . 'admin/',
'parent_slug' => "{$group_slug}_manage",
'position' => 30,
'screen_function' => function() use($group_slug)
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'groups/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>GROUP</h1>';
});
},
]);
}
else
{
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Profile Photo',
'slug' => 'change-profile-photo',
'parent_url' => trailingslashit($bp->loggedin_user->domain . $bp->profile->slug),
'parent_slug' => $bp->profile->slug,
'position' => 30,
'screen_function' => function()
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'members/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>USER</h1>';
});
},
]);
}
}, 10);
</code>
<?php
/*
Plugin Name: BuddyPress Group Test
Plugin URI: n/a
Description: Test adding group tab
Version: 0.0.1
Author: n/a
Author URI: n/a
License: AGPLv3
*/
add_action('bp_actions', function()
{
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
bp_core_remove_subnav_item("{$group_slug}_manage", 'group-avatar', 'groups');
}
else
{
bp_core_remove_subnav_item('profile', 'change-avatar', 'members');
}
});
add_action('bp_setup_nav', function()
{
$bp = buddypress();
if(bp_is_group())
{
$group_slug = bp_get_current_group_slug();
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Group Photo',
'slug' => 'change-group-photo',
'parent_url' => trailingslashit(bp_get_group_permalink($group_slug)) . 'admin/',
'parent_slug' => "{$group_slug}_manage",
'position' => 30,
'screen_function' => function() use($group_slug)
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'groups/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>GROUP</h1>';
});
},
]);
}
else
{
$tab = bp_core_new_subnav_item(
[
'name' => 'Change Profile Photo',
'slug' => 'change-profile-photo',
'parent_url' => trailingslashit($bp->loggedin_user->domain . $bp->profile->slug),
'parent_slug' => $bp->profile->slug,
'position' => 30,
'screen_function' => function()
{
bp_core_load_template(apply_filters('bp_core_template_plugin', 'members/single/plugins'));
add_action('bp_template_content', function()
{
echo '<h1>USER</h1>';
});
},
]);
}
}, 10);
New contributor
user25453371 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.