好友按下更改URL中的用户Slug名称

Im trying to change the display user slug in buddypress using filter bp_core_get_user_domain the reference to that filter is under wp-content\plugins\buddypress\bp-members\bp-members-functions.php along line number 172

the content of that function is:

function bp_core_get_user_domain( $user_id = 0, $user_nicename = false, $user_login = false ) {

    if ( empty( $user_id ) ) {
        return;
    }

    $username = bp_core_get_username( $user_id, $user_nicename, $user_login );

    if ( bp_is_username_compatibility_mode() ) {
        $username = rawurlencode( $username );
    }

    $after_domain = bp_core_enable_root_profiles() ? $username : bp_get_members_root_slug() . '/' . $username;
    $domain       = trailingslashit( bp_get_root_domain() . '/' . $after_domain );

    // Don't use this filter.  Subject to removal in a future release.
    // Use the 'bp_core_get_user_domain' filter instead.
    $domain       = apply_filters( 'bp_core_get_user_domain_pre_cache', $domain, $user_id, $user_nicename, $user_login );

    /**
     * Filters the domain for the passed user.
     *
     * @since 1.0.1
     *
     * @param string $domain        Domain for the passed user.
     * @param int    $user_id       ID of the passed user.
     * @param string $user_nicename User nicename of the passed user.
     * @param string $user_login    User login of the passed user.
     */
    return apply_filters( 'bp_core_get_user_domain', $domain, $user_id, $user_nicename, $user_login );
}

I am trying to use it like this:

function my_custom_filter($domain, $user_id) {

    $oldSlug= get_user_slug_by_user_id($user_id);
    if ($oldSlug==='foo') {
          $domain = trailingslashit(bp_get_root_domain() . '/' . 'members/' . 'bar'); 
    }
    return $domain;
}
add_filter('bp_core_get_user_domain', 'my_custom_filter', 10, 2);

This filter changes that whenever example.com/members/foo is accessed, it will go to example.com/members/bar

THE PROBLEM

this is working as expected but my issue here is all ajax of example.com/members/bar are 404. If i disable the filter and it went to example.com/members/foo all ajax are okay 200.