Skip to:
Content

BuddyPress.org

Changeset 13433


Ignore:
Timestamp:
03/07/2023 04:28:08 AM (4 years ago)
Author:
imath
Message:

BP Rewrites: Introduce the bp_members_get_user_url() function

As many member URLs are built concatenating bp_core_get_user_domain()
with URL chunks, the safer way to make sure developers update the way they
build their member URLs in favor of using BP Rewrites is:

  1. to deprecate this function
  2. create a new function bp_members_get_user_url() which is a wrapper of

bp_rewrites_get_url()

  1. replace all bp_core_get_user_domain() occurrences by

bp_members_get_user_url()

This commit also deprecates bp_core_get_username() in favor of the new
bp_members_get_user_slug() function and updates PHPUnit tests.

Props r-a-y, johnjamesjacoby, boonebgorges

Closes ​https://github.com/buddypress/buddypress/pull/70
See #4954

Location:
trunk
Files:
60 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-activity/actions/feeds.php

    r12907 r13433  
    176176                'description'   => sprintf( __( "Activity feed mentioning %s.", 'buddypress' ), bp_get_displayed_user_fullname() ),
    177177                'activity_args' => array(
    178                         'search_terms' => '@' . bp_core_get_username( bp_displayed_user_id() )
     178                        'search_terms' => '@' . bp_members_get_user_slug( bp_displayed_user_id() )
    179179                )
    180180        ) );
  • trunk/src/bp-activity/bp-activity-filters.php

    r13108 r13433  
    265265        // Linkify the mentions with the username.
    266266        foreach ( (array) $usernames as $user_id => $username ) {
    267                 $content = preg_replace( '/(@' . $username . '\b)/', "<a class='bp-suggestions-mention' href='" . bp_core_get_user_domain( $user_id ) . "' rel='nofollow'>@$username</a>", $content );
     267                $content = preg_replace( '/(@' . $username . '\b)/', "<a class='bp-suggestions-mention' href='" . bp_members_get_user_url( $user_id ) . "' rel='nofollow'>@$username</a>", $content );
    268268        }
    269269
    … …  
    306306                // Replace @mention text with userlinks.
    307307                foreach( (array) $usernames as $user_id => $username ) {
    308                         $activity->content = preg_replace( '/(@' . $username . '\b)/', "<a class='bp-suggestions-mention' href='" . bp_core_get_user_domain( $user_id ) . "' rel='nofollow'>@$username</a>", $activity->content );
     308                        $activity->content = preg_replace( '/(@' . $username . '\b)/', "<a class='bp-suggestions-mention' href='" . bp_members_get_user_url( $user_id ) . "' rel='nofollow'>@$username</a>", $activity->content );
    309309                }
    310310
  • trunk/src/bp-activity/bp-activity-notifications.php

    r12893 r13433  
    412412                                                <?php
    413413                                                /* translators: %s: the displayed user username */
    414                                                 printf( __( 'A member mentions you in an update using "@%s"', 'buddypress' ), bp_core_get_username( bp_displayed_user_id() ) );
     414                                                printf( __( 'A member mentions you in an update using "@%s"', 'buddypress' ), bp_members_get_user_slug( bp_displayed_user_id() ) );
    415415                                                ?>
    416416                                        </td>
  • trunk/src/bp-activity/bp-activity-template.php

    r13409 r13433  
    10071007                        $link = $activities_template->activity->primary_link;
    10081008                } else {
    1009                         $link = bp_core_get_user_domain( $activities_template->activity->user_id, $activities_template->activity->user_nicename, $activities_template->activity->user_login );
     1009                        $link = bp_members_get_user_url( $activities_template->activity->user_id );
    10101010                }
    10111011
    … …  
    15401540                        if ( in_array( $activity_type, array( 'new_avatar', 'new_member', 'friendship_created', 'updated_profile' ), true ) ) {
    15411541                                $generated_content->user_url = array(
    1542                                         'value'             => bp_core_get_user_domain( $user_id ),
     1542                                        'value'             => bp_members_get_user_url( $user_id ),
    15431543                                        'sanitize_callback' => 'esc_url',
    15441544                                );
    … …  
    22552255         */
    22562256        function bp_get_activity_comment_user_link() {
    2257                 $user_link = bp_core_get_user_domain( bp_get_activity_comment_user_id() );
     2257                $user_link = bp_members_get_user_url( bp_get_activity_comment_user_id() );
    22582258
    22592259                /**
    … …  
    36533653
    36543654                        // Get profile link for this user.
    3655                         $profile_link = bp_core_get_user_domain( $user_id );
     3655                        $profile_link = bp_members_get_user_url( $user_id );
    36563656
    36573657                        // Get avatar for this user.
  • trunk/src/bp-activity/classes/class-bp-activity-oembed-extension.php

    r13241 r13433  
    138138                        'title'        => __( 'Activity', 'buddypress' ),
    139139                        'author_name'  => bp_core_get_user_displayname( $activity->user_id ),
    140                         'author_url'   => bp_core_get_user_domain( $activity->user_id ),
     140                        'author_url'   => bp_members_get_user_url( $activity->user_id ),
    141141
    142142                        // Custom identifier.
  • trunk/src/bp-activity/screens/permalink.php

    r12527 r13433  
    3636
    3737        // Do not redirect at default.
    38         $redirect = false;
     38        $redirect    = false;
     39        $path_chunks = array(
     40                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     41                'single_item_action'    => $activity->id,
     42        );
    3943
    4044        // Redirect based on the type of activity.
    … …  
    4347                // Activity is a user update.
    4448                if ( ! empty( $activity->user_id ) ) {
    45                         $redirect = bp_core_get_user_domain( $activity->user_id, $activity->user_nicename, $activity->user_login ) . bp_get_activity_slug() . '/' . $activity->id . '/';
     49                        $redirect = bp_members_get_user_url( $activity->user_id, $path_chunks );
    4650
    4751                // Activity is something else.
    … …  
    5660        // Set redirect to users' activity stream.
    5761        } elseif ( ! empty( $activity->user_id ) ) {
    58                 $redirect = bp_core_get_user_domain( $activity->user_id, $activity->user_nicename, $activity->user_login ) . bp_get_activity_slug() . '/' . $activity->id . '/';
     62                $redirect = bp_members_get_user_url( $activity->user_id, $path_chunks );
    5963        }
    6064
  • trunk/src/bp-blogs/bp-blogs-activity.php

    r13419 r13433  
    785785                'comment_author'       => bp_core_get_user_displayname( $params['user_id'] ),
    786786                'comment_author_email' => $user->user_email,
    787                 'comment_author_url'   => bp_core_get_user_domain( $params['user_id'], $user->user_nicename, $user->user_login ),
     787                'comment_author_url'   => bp_members_get_user_url( $params['user_id'] ),
    788788                'comment_content'      => $params['content'],
    789789                'comment_type'         => '', // Could be interesting to add 'BuddyPress' here...
  • trunk/src/bp-core/admin/bp-core-admin-functions.php

    r13431 r13433  
    13111311
    13121312        // Create a "View" link.
    1313         $url             = bp_core_get_user_domain( $user_id );
     1313        $url             = bp_members_get_user_url( $user_id );
    13141314        $actions['view'] = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $url ), esc_html__( 'View', 'buddypress' ) );
    13151315
  • trunk/src/bp-core/bp-core-catchuri.php

    r13162 r13433  
    591591        $user = wp_get_current_user();
    592592
    593         return bp_core_get_username( $user->ID, $user->user_nicename, $user->user_login );
     593        return bp_members_get_user_slug( $user->ID );
    594594}
    595595add_filter( 'bp_core_set_uri_globals_member_slug', 'bp_core_members_shortlink_redirector' );
  • trunk/src/bp-core/bp-core-filters.php

    r13395 r13433  
    292292
    293293        foreach( (array) $comments as $comment ) {
    294                 if ( $comment->user_id )
     294                if ( $comment->user_id ) {
    295295                        $user_ids[] = $comment->user_id;
    296         }
    297 
    298         if ( empty( $user_ids ) )
     296                }
     297        }
     298
     299        if ( empty( $user_ids ) ) {
    299300                return $comments;
     301        }
    300302
    301303        $user_ids = implode( ',', wp_parse_id_list( $user_ids ) );
    302304
    303         if ( !$userdata = $wpdb->get_results( "SELECT ID as user_id, user_login, user_nicename FROM {$wpdb->users} WHERE ID IN ({$user_ids})" ) )
     305        if ( ! $userdata = $wpdb->get_results( "SELECT ID as user_id, user_login, user_nicename FROM {$wpdb->users} WHERE ID IN ({$user_ids})" ) ) {
    304306                return $comments;
    305 
    306         foreach( (array) $userdata as $user )
    307                 $users[$user->user_id] = bp_core_get_user_domain( $user->user_id, $user->user_nicename, $user->user_login );
     307        }
     308
     309        foreach( (array) $userdata as $user ) {
     310                $users[$user->user_id] = bp_members_get_user_url( $user->user_id );
     311        }
    308312
    309313        foreach( (array) $comments as $i => $comment ) {
    310                 if ( !empty( $comment->user_id ) ) {
    311                         if ( !empty( $users[$comment->user_id] ) )
     314                if ( ! empty( $comment->user_id ) ) {
     315                        if ( ! empty( $users[$comment->user_id] ) ) {
    312316                                $comments[$i]->comment_author_url = $users[$comment->user_id];
     317                        }
    313318                }
    314319        }
    … …  
    12331238                                $tokens['unsubscribe'] = esc_url( sprintf(
    12341239                                        '%s%s/notifications/',
    1235                                         bp_core_get_user_domain( $user_obj->ID ),
     1240                                        bp_members_get_user_url( $user_obj->ID ),
    12361241                                        bp_get_settings_slug()
    12371242                                ) );
  • trunk/src/bp-core/bp-core-functions.php

    r13432 r13433  
    43364336
    43374337                if ( bp_is_active( 'settings' ) ) {
    4338                         $redirect_to = sprintf(
    4339                                 '%s%s/notifications/',
    4340                                 bp_core_get_user_domain( get_current_user_id() ),
    4341                                 bp_get_settings_slug()
     4338                        $redirect_to = bp_members_get_user_url(
     4339                                get_current_user_id(),
     4340                                array(
     4341                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_settings', bp_get_settings_slug() ),
     4342                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_settings_notifications', 'notifications' ),
     4343                                )
    43424344                        );
    43434345                } else {
    4344                         $redirect_to = bp_core_get_user_domain( get_current_user_id() );
     4346                        $redirect_to = bp_members_get_user_url( get_current_user_id() );
    43454347                }
    43464348
    … …  
    43684370                        $redirect_to = sprintf(
    43694371                                '%s%s/notifications/',
    4370                                 bp_core_get_user_domain( $raw_user_id ),
     4372                                bp_members_get_user_url( $raw_user_id ),
    43714373                                bp_get_settings_slug()
    43724374                        );
    43734375                } else {
    4374                         $redirect_to = bp_core_get_user_domain( $raw_user_id );
     4376                        $redirect_to = bp_members_get_user_url( $raw_user_id );
    43754377                }
    43764378
    … …  
    43934395                // Template notices are only displayed on BP pages.
    43944396                bp_core_add_message( $message );
    4395                 bp_core_redirect( bp_core_get_user_domain( $raw_user_id ) );
     4397                bp_core_redirect( bp_members_get_user_url( $raw_user_id ) );
    43964398
    43974399                exit;
  • trunk/src/bp-core/bp-core-rewrites.php

    r13432 r13433  
    7373 *
    7474 * @param string $component_id The BuddyPress component's ID.
    75  * @param string $rewrite_id   The view rewrite ID.
    76  * @param string $default_slug The view default slug.
     75 * @param string $rewrite_id   The view rewrite ID, used to find the custom slugs.
     76 *                             Eg: `member_profile_edit` will try to find the xProfile edit's slug.
     77 * @param string $default_slug The view default slug, used as a fallback.
    7778 * @return string The slug to use for the view belonging to the requested component.
    7879 */
    … …  
    8485                return $slug;
    8586        }
     87
     88        // Make sure a `bp_` prefix is used.
     89        $rewrite_id = 'bp_' . str_replace( 'bp_', '', sanitize_key( $rewrite_id ) );
    8690
    8791        $custom_slugs = (array) $directory_pages->{$component_id}->custom_slugs;
  • trunk/src/bp-core/classes/class-bp-core-user.php

    r12791 r13433  
    156156                        $full_name_field_name = bp_xprofile_fullname_field_name();
    157157
    158                         $this->user_url  = bp_core_get_user_domain( $this->id, $this->profile_data['user_nicename'], $this->profile_data['user_login'] );
     158                        $this->user_url  = bp_members_get_user_url( $this->id );
    159159                        $this->fullname  = esc_attr( $this->profile_data[$full_name_field_name]['field_data'] );
    160160                        $this->user_link = "<a href='{$this->user_url}'>{$this->fullname}</a>";
    161161                        $this->email     = esc_attr( $this->profile_data['user_email'] );
    162162                } else {
    163                         $this->user_url  = bp_core_get_user_domain( $this->id );
     163                        $this->user_url  = bp_members_get_user_url( $this->id );
    164164                        $this->user_link = bp_core_get_userlink( $this->id );
    165165                        $this->fullname  = esc_attr( bp_core_get_user_displayname( $this->id ) );
  • trunk/src/bp-core/classes/class-bp-optouts-list-table.php

    r13225 r13433  
    325325                        return;
    326326                }
    327                 $user_link = bp_core_get_user_domain( $optout->user_id );
     327                $user_link = bp_members_get_user_url( $optout->user_id );
    328328                echo $avatar . sprintf( '<strong><a href="%1$s" class="edit">%2$s</a></strong><br/>', esc_url( $user_link ), esc_html( $inviter->user_login ) );
    329329        }
  • trunk/src/bp-core/deprecated/12.0.php

    r13432 r13433  
    158158        _deprecated_function( __FUNCTION__, '12.0.0' );
    159159}
     160
     161/**
     162 * Return the username for a user based on their user id.
     163 *
     164 * This function is sensitive to the BP_ENABLE_USERNAME_COMPATIBILITY_MODE,
     165 * so it will return the user_login or user_nicename as appropriate.
     166 *
     167 * @since 1.0.0
     168 * @deprecated 12.0.0
     169 *
     170 * @param int         $user_id       User ID to check.
     171 * @param string|bool $user_nicename Optional. user_nicename of user being checked.
     172 * @param string|bool $user_login    Optional. user_login of user being checked.
     173 * @return string The username of the matched user or an empty string if no user is found.
     174 */
     175function bp_core_get_username( $user_id = 0, $user_nicename = false, $user_login = false ) {
     176        _deprecated_function( __FUNCTION__, '12.0.0', 'bp_members_get_user_slug()' );
     177
     178        if ( ! $user_id ) {
     179                $value = $user_nicename;
     180                $field = 'slug';
     181
     182                if ( ! $user_nicename ) {
     183                        $value = $user_login;
     184                        $field = 'login';
     185                }
     186
     187                $user = get_user_by( $field, $value );
     188
     189                if ( $user instanceof WP_User ) {
     190                        $user_id = (int) $user->ID;
     191                }
     192        }
     193
     194        $username = bp_members_get_user_slug( $user_id );
     195
     196        /**
     197         * Filters the username based on originally provided user ID.
     198         *
     199         * @since 1.0.1
     200         * @deprecated 12.0.0
     201         *
     202         * @param string $username Username determined by user ID.
     203         */
     204        return apply_filters_deprecated( 'bp_core_get_username', array( $username ), '12.0.0', 'bp_members_get_user_slug' );
     205}
     206
     207/**
     208 * Return the domain for the passed user: e.g. http://example.com/members/andy/.
     209 *
     210 * @since 1.0.0
     211 * @deprecated 12.0.0
     212 *
     213 * @param int         $user_id       The ID of the user.
     214 * @param string|bool $user_nicename Optional. user_nicename of the user.
     215 * @param string|bool $user_login    Optional. user_login of the user.
     216 * @return string
     217 */
     218function bp_core_get_user_domain( $user_id = 0, $user_nicename = false, $user_login = false ) {
     219        _deprecated_function( __FUNCTION__, '12.0.0', 'bp_members_get_user_url()' );
     220
     221        if ( empty( $user_id ) ) {
     222                return;
     223        }
     224
     225        $domain = bp_members_get_user_url( $user_id );
     226
     227        // Don't use this filter.  Subject to removal in a future release.
     228        // Use the 'bp_core_get_user_domain' filter instead.
     229        $domain = apply_filters_deprecated( 'bp_core_get_user_domain_pre_cache', array( $domain, $user_id, $user_nicename, $user_login), '12.0.0' );
     230
     231        /**
     232         * Filters the domain for the passed user.
     233         *
     234         * @since 1.0.1
     235         * @deprecated 12.0.0
     236         *
     237         * @param string $domain        Domain for the passed user.
     238         * @param int    $user_id       ID of the passed user.
     239         * @param string $user_nicename User nicename of the passed user.
     240         * @param string $user_login    User login of the passed user.
     241         */
     242        return apply_filters_deprecated( 'bp_core_get_user_domain', array( $domain, $user_id, $user_nicename, $user_login), '12.0.0', 'bp_members_get_user_url' );
     243}
  • trunk/src/bp-friends/bp-friends-blocks.php

    r13296 r13433  
    111111        $widget_id = uniqid( 'friends-list-' );
    112112
    113         $link = trailingslashit( bp_core_get_user_domain( $user_id ) . bp_get_friends_slug() );
     113        $link = bp_members_get_user_url(
     114                $user_id,
     115                array(
     116                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     117                )
     118        );
    114119
    115120        /* translators: %s: member name */
    … …  
    190195                                        'php',
    191196                                        array(
    192                                                 'data.link'              => bp_core_get_user_domain( $user->ID, $user->user_nicename, $user->user_login ),
     197                                                'data.link'              => bp_members_get_user_url( $user->ID ),
    193198                                                'data.name'              => $user->display_name,
    194199                                                'data.avatar_urls.thumb' => bp_core_fetch_avatar(
  • trunk/src/bp-friends/bp-friends-functions.php

    r13395 r13433  
    878878        $args = array(
    879879                'tokens' => array(
    880                         'friend-requests.url' => esc_url( bp_core_get_user_domain( $friend_id ) . bp_get_friends_slug() . '/requests/' ),
     880                        'friend-requests.url' => esc_url(
     881                                bp_members_get_user_url(
     882                                        $friend_id,
     883                                        array(
     884                                                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     885                                                'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_friends_requests', 'requests' ),
     886                                        )
     887                                )
     888                        ),
    881889                        'friend.id'           => $friend_id,
    882890                        'friendship.id'       => $friendship_id,
    883891                        'initiator.id'        => $initiator_id,
    884                         'initiator.url'       => esc_url( bp_core_get_user_domain( $initiator_id ) ),
     892                        'initiator.url'       => esc_url( bp_members_get_user_url( $initiator_id ) ),
    885893                        'initiator.name'      => bp_core_get_user_displayname( $initiator_id ),
    886894                        'unsubscribe'         => esc_url( bp_email_get_unsubscribe_link( $unsubscribe_args ) ),
    … …  
    916924                'tokens' => array(
    917925                        'friend.id'      => $friend_id,
    918                         'friendship.url' => esc_url( bp_core_get_user_domain( $friend_id ) ),
     926                        'friendship.url' => esc_url( bp_members_get_user_url( $friend_id ) ),
    919927                        'friend.name'    => bp_core_get_user_displayname( $friend_id ),
    920928                        'friendship.id'  => $friendship_id,
  • trunk/src/bp-friends/bp-friends-template.php

    r13409 r13433  
    102102
    103103                                <li>
    104                                         <a href="<?php echo bp_core_get_user_domain( $friend_ids[$i] ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $friend_ids[$i], 'type' => 'thumb' ) ) ?></a>
     104                                        <a href="<?php echo bp_members_get_user_url( $friend_ids[$i] ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $friend_ids[$i], 'type' => 'thumb' ) ) ?></a>
    105105                                        <h5><?php echo bp_core_get_userlink($friend_ids[$i]) ?></h5>
    106106                                </li>
    … …  
    154154
    155155                        <li>
    156                                 <a href="<?php echo bp_core_get_user_domain( $user_ids['users'][$i]->id ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $user_ids['users'][$i]->id, 'type' => 'thumb' ) ) ?></a>
     156                                <a href="<?php echo bp_members_get_user_url( $user_ids['users'][$i]->id ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $user_ids['users'][$i]->id, 'type' => 'thumb' ) ) ?></a>
    157157                                <h5><?php echo bp_core_get_userlink( $user_ids['users'][$i]->id ) ?></h5>
    158158
  • trunk/src/bp-groups/bp-groups-admin.php

    r13372 r13433  
    10341034
    10351035                                                <td class="uname-column">
    1036                                                         <a style="float: left;" href="<?php echo bp_core_get_user_domain( $type_user->ID ); ?>"><?php echo bp_core_fetch_avatar( array(
     1036                                                        <a style="float: left;" href="<?php echo bp_members_get_user_url( $type_user->ID ); ?>"><?php echo bp_core_fetch_avatar( array(
    10371037                                                                'item_id' => $type_user->ID,
    10381038                                                                'width'   => '32',
  • trunk/src/bp-groups/bp-groups-notifications.php

    r13293 r13433  
    169169                        'group.id'             => $group_id,
    170170                        'group-requests.url'   => esc_url( bp_get_group_permalink( $group ) . 'admin/membership-requests' ),
    171                         'profile.url'          => esc_url( bp_core_get_user_domain( $requesting_user_id ) ),
     171                        'profile.url'          => esc_url( bp_members_get_user_url( $requesting_user_id ) ),
    172172                        'requesting-user.id'   => $requesting_user_id,
    173173                        'requesting-user.name' => bp_core_get_user_displayname( $requesting_user_id ),
    … …  
    337337        }
    338338
    339         $invited_link = bp_core_get_user_domain( $invited_user_id ) . bp_get_groups_slug();
     339        $invited_link = bp_members_get_user_url(
     340                $invited_user_id,
     341                array(
     342                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_groups', bp_get_groups_slug() ),
     343                )
     344        );
    340345
    341346        $unsubscribe_args = array(
    … …  
    360365                        'group.name'     => $group->name,
    361366                        'inviter.name'   => bp_core_get_userlink( $inviter_user_id, true, false ),
    362                         'inviter.url'    => bp_core_get_user_domain( $inviter_user_id ),
     367                        'inviter.url'    => bp_members_get_user_url( $inviter_user_id ),
    363368                        'inviter.id'     => $inviter_user_id,
    364369                        'invites.url'    => esc_url( $invited_link . '/invites/' ),
    … …  
    12521257                        'group.name'      => $group->name,
    12531258                        'group.url'       => esc_url( bp_get_group_permalink( $group ) ),
    1254                         'leave-group.url' => esc_url( bp_core_get_user_domain( $user_id ) . bp_get_groups_slug() ),
     1259                        'leave-group.url' => esc_url(
     1260                                bp_members_get_user_url(
     1261                                        $user_id,
     1262                                        array(
     1263                                                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_groups', bp_get_groups_slug() ),
     1264                                        )
     1265                                )
     1266                        ),
    12551267                ),
    12561268        );
  • trunk/src/bp-groups/bp-groups-template.php

    r13409 r13433  
    16391639                 * @param BP_Groups_Group $group     The group object.
    16401640                 */
    1641                 return apply_filters( 'bp_get_group_creator_permalink', bp_core_get_user_domain( $group->creator_id ), $group );
     1641                return apply_filters( 'bp_get_group_creator_permalink', bp_members_get_user_url( $group->creator_id ), $group );
    16421642        }
    16431643
    … …  
    17971797                                <li>
    17981798                                        <a
    1799                                                 href="<?php echo esc_url( bp_core_get_user_domain( $admin->user_id, $admin->user_nicename, $admin->user_login ) ); ?>"
     1799                                                href="<?php echo esc_url( bp_members_get_user_url( $admin->user_id ) ); ?>"
    18001800                                                class="bp-tooltip"
    18011801                                                data-bp-tooltip="<?php printf( ( '%s' ), bp_core_get_user_displayname( $admin->user_id ) ); ?>"
    … …  
    18441844                                <li>
    18451845                                        <a
    1846                                                 href="<?php echo esc_url( bp_core_get_user_domain( $mod->user_id, $mod->user_nicename, $mod->user_login ) ); ?>"
     1846                                                href="<?php echo esc_url( bp_members_get_user_url( $mod->user_id ) ); ?>"
    18471847                                                class="bp-tooltip"
    18481848                                                data-bp-tooltip="<?php printf( ( '%s' ), bp_core_get_user_displayname( $mod->user_id ) ); ?>">
    … …  
    42734273                 * @param string $value URL for the current user.
    42744274                 */
    4275                 return apply_filters( 'bp_get_group_member_url', bp_core_get_user_domain( $members_template->member->user_id, $members_template->member->user_nicename, $members_template->member->user_login ) );
     4275                return apply_filters( 'bp_get_group_member_url', bp_members_get_user_url( $members_template->member->user_id ) );
    42764276        }
    42774277
    … …  
    42974297                 * @param string $value HTML link for the current user.
    42984298                 */
    4299                 return apply_filters( 'bp_get_group_member_link', '<a href="' . bp_core_get_user_domain( $members_template->member->user_id, $members_template->member->user_nicename, $members_template->member->user_login ) . '">' . $members_template->member->display_name . '</a>' );
     4299                return apply_filters( 'bp_get_group_member_link', '<a href="' . bp_members_get_user_url( $members_template->member->user_id ) . '">' . $members_template->member->display_name . '</a>' );
    43004300        }
    43014301
    … …  
    43214321                 * @param string $value Domain for the current user.
    43224322                 */
    4323                 return apply_filters( 'bp_get_group_member_domain', bp_core_get_user_domain( $members_template->member->user_id, $members_template->member->user_nicename, $members_template->member->user_login ) );
     4323                return apply_filters( 'bp_get_group_member_domain', bp_members_get_user_url( $members_template->member->user_id ) );
    43244324        }
    43254325
  • trunk/src/bp-groups/classes/class-bp-groups-invite-template.php

    r13399 r13433  
    293293
    294294                $this->invite->user->email     = $this->invite->user->user_email;
    295                 $this->invite->user->user_url  = bp_core_get_user_domain( $user_id, $this->invite->user->user_nicename, $this->invite->user->user_login );
     295                $this->invite->user->user_url  = bp_members_get_user_url( $user_id );
    296296                $this->invite->user->user_link = "<a href='{$this->invite->user->user_url}'>{$this->invite->user->fullname}</a>";
    297297
  • trunk/src/bp-members/actions/random.php

    r11927 r13433  
    1818
    1919        $user = bp_core_get_users( array( 'type' => 'random', 'per_page' => 1 ) );
    20         bp_core_redirect( bp_core_get_user_domain( $user['users'][0]->id ) );
     20        bp_core_redirect( bp_members_get_user_url( $user['users'][0]->id ) );
    2121}
    2222add_action( 'bp_actions', 'bp_core_get_random_member' );
  • trunk/src/bp-members/bp-members-blocks.php

    r13296 r13433  
    4444
    4545        // Mention variables.
    46         $username   = bp_core_get_username( $member_id );
     46        $username   = bp_members_get_user_slug( $member_id );
    4747        $at_mention = '';
    4848
    … …  
    5858        // Member name variables.
    5959        $display_name = bp_core_get_user_displayname( $member_id );
    60         $member_link  = bp_core_get_user_domain( $member_id );
     60        $member_link  = bp_members_get_user_url( $member_id );
    6161
    6262        // Member action button.
    … …  
    230230
    231231                // Get Member link.
    232                 $member_link = bp_core_get_user_domain( $member->ID );
     232                $member_link = bp_members_get_user_url( $member->ID );
    233233
    234234                // Set the Avatar output.
    … …  
    483483                                        'php',
    484484                                        array(
    485                                                 'data.link'              => bp_core_get_user_domain( $user->ID, $user->user_nicename, $user->user_login ),
     485                                                'data.link'              => bp_members_get_user_url( $user->ID ),
    486486                                                'data.name'              => $user->display_name,
    487487                                                'data.avatar_urls.thumb' => bp_core_fetch_avatar(
    … …  
    633633                                        </a>
    634634                                </div>',
    635                                 esc_url( bp_core_get_user_domain( $member->ID, $member->user_nicename, $member->user_login ) ),
     635                                esc_url( bp_members_get_user_url( $member->ID ) ),
    636636                                esc_html( $member->display_name ),
    637637                                bp_core_fetch_avatar(
  • trunk/src/bp-members/bp-members-filters.php

    r13105 r13433  
    109109        // If xprofile is active, use profile domain link.
    110110        if ( ! is_admin() && bp_is_active( 'xprofile' ) ) {
    111                 $profile_link = trailingslashit( bp_core_get_user_domain( $user_id ) . bp_get_profile_slug() . '/edit' );
     111                $profile_link = bp_members_get_user_url(
     112                        $user_id,
     113                        array(
     114                                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     115                                'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_profile_edit', 'edit' ),
     116                        )
     117                );
    112118
    113119        } else {
  • trunk/src/bp-members/bp-members-functions.php

    r13432 r13433  
    140140
    141141/**
    142  * Return the domain for the passed user: e.g. http://example.com/members/andy/.
    143  *
    144  * @since 1.0.0
    145  *
    146  * @param int         $user_id       The ID of the user.
    147  * @param string|bool $user_nicename Optional. user_nicename of the user.
    148  * @param string|bool $user_login    Optional. user_login of the user.
    149  * @return string
    150  */
    151 function bp_core_get_user_domain( $user_id = 0, $user_nicename = false, $user_login = false ) {
    152 
    153         if ( empty( $user_id ) ) {
    154                 return;
    155         }
    156 
    157         $username = bp_core_get_username( $user_id, $user_nicename, $user_login );
    158 
    159         if ( bp_is_username_compatibility_mode() ) {
    160                 $username = rawurlencode( $username );
    161         }
    162 
    163         $after_domain = bp_core_enable_root_profiles() ? $username : bp_get_members_root_slug() . '/' . $username;
    164         $domain       = trailingslashit( bp_get_root_domain() . '/' . $after_domain );
    165 
    166         // Don't use this filter.  Subject to removal in a future release.
    167         // Use the 'bp_core_get_user_domain' filter instead.
    168         $domain = apply_filters( 'bp_core_get_user_domain_pre_cache', $domain, $user_id, $user_nicename, $user_login );
     142 * Return the Mmbers single item's URL.
     143 *
     144 * @since 12.0.0
     145 *
     146 * @param integer $user_id  The user ID.
     147 * @param array   $action {
     148 *     An array of arguments. Optional.
     149 *
     150 *     @type string $single_item_component        The component slug the action is relative to.
     151 *     @type string $single_item_action           The slug of the action to perform.
     152 *     @type array  $single_item_action_variables An array of additional informations about the action to perform.
     153 * }
     154 * @return string The URL built for the BP Rewrites URL parser.
     155 */
     156function bp_members_get_user_url( $user_id = 0, $path_chunks = array() ) {
     157        $url  = '';
     158        $slug = bp_members_get_user_slug( $user_id );
     159
     160        if ( $slug ) {
     161                if ( bp_is_username_compatibility_mode() ) {
     162                        $slug = rawurlencode( $slug );
     163                }
     164
     165                $supported_chunks = array_fill_keys( array( 'single_item_component', 'single_item_action', 'single_item_action_variables' ), true );
     166                $path_chunks      = bp_parse_args(
     167                        array_intersect_key( $path_chunks, $supported_chunks ),
     168                        array(
     169                                'component_id' => 'members',
     170                                'single_item'  => $slug,
     171                        )
     172                );
     173
     174                $url = bp_rewrites_get_url( $path_chunks );
     175        }
    169176
    170177        /**
    … …  
    172179         *
    173180         * @since 1.0.1
     181         * @deprecated 12.0.0
    174182         *
    175183         * @param string $domain        Domain for the passed user.
    … …  
    178186         * @param string $user_login    User login of the passed user.
    179187         */
    180         return apply_filters( 'bp_core_get_user_domain', $domain, $user_id, $user_nicename, $user_login );
     188        $url = apply_filters_deprecated( 'bp_core_get_user_domain', array( $url, $user_id, false, false ), '12.0.0', 'bp_members_get_user_url' );
     189
     190        /**
     191         * Filters the domain for the passed user.
     192         *
     193         * @since 12.0.0
     194         *
     195         * @param string  $url      The user url.
     196         * @param integer $user_id  The user ID.
     197         * @param string  $slug     The user slug.
     198         * @param array   $path_chunks {
     199         *     An array of arguments. Optional.
     200         *
     201         *     @type string $single_item_component        The component slug the action is relative to.
     202         *     @type string $single_item_action           The slug of the action to perform.
     203         *     @type array  $single_item_action_variables An array of additional informations about the action to perform.
     204         * }
     205         */
     206        return apply_filters( 'bp_members_get_user_url', $url, $user_id, $slug, $path_chunks );
    181207}
    182208
    … …  
    274300
    275301/**
    276  * Return the username for a user based on their user id.
    277  *
    278  * This function is sensitive to the BP_ENABLE_USERNAME_COMPATIBILITY_MODE,
    279  * so it will return the user_login or user_nicename as appropriate.
    280  *
    281  * @since 1.0.0
    282  *
    283  * @param int         $user_id       User ID to check.
    284  * @param string|bool $user_nicename Optional. user_nicename of user being checked.
    285  * @param string|bool $user_login    Optional. user_login of user being checked.
    286  * @return string The username of the matched user or an empty string if no user is found.
    287  */
    288 function bp_core_get_username( $user_id = 0, $user_nicename = false, $user_login = false ) {
    289 
    290         if ( ! $user_nicename && ! $user_login ) {
    291                 // Pull an audible and maybe use the login over the nicename.
    292                 if ( bp_is_username_compatibility_mode() ) {
    293                         $username = get_the_author_meta( 'login', $user_id );
    294                 } else {
    295                         $username = get_the_author_meta( 'nicename', $user_id );
    296                 }
     302 * Returns the members single item (member) slug.
     303 *
     304 * @since 12.0.0
     305 *
     306 * @param integer $user_id The User ID.
     307 * @return string The member slug.
     308 */
     309function bp_members_get_user_slug( $user_id = 0 ) {
     310        $bp  = buddypress();
     311        $lug = '';
     312
     313        $prop = 'user_nicename';
     314        if ( bp_is_username_compatibility_mode() ) {
     315                $prop = 'user_login';
     316        }
     317
     318        if ( (int) bp_loggedin_user_id() === (int) $user_id ) {
     319                $slug = isset( $bp->loggedin_user->userdata->{$prop} ) ? $bp->loggedin_user->userdata->{$prop} : null;
     320        } elseif ( (int) bp_displayed_user_id() === (int) $user_id ) {
     321                $slug = isset( $bp->displayed_user->userdata->{$prop} ) ? $bp->displayed_user->userdata->{$prop} : null;
    297322        } else {
    298                 $username = bp_is_username_compatibility_mode() ? $user_login : $user_nicename;
     323                $user = get_user_by( 'id', $user_id );
     324
     325                if ( $user instanceof WP_User ) {
     326                        $slug = $user->{$prop};
     327                }
    299328        }
    300329
    … …  
    303332         *
    304333         * @since 1.0.1
    305          *
    306          * @param string $username Username determined by user ID.
    307          */
    308         return apply_filters( 'bp_core_get_username', $username );
     334         * @deprecated 12.0.0
     335         *
     336         * @param string $slug Username determined by user ID.
     337         */
     338        $slug = apply_filters_deprecated( 'bp_core_get_username', array( $slug ), '12.0.0', 'bp_members_get_user_slug' );
     339
     340        /**
     341         * Filter here to edit the user's slug.
     342         *
     343         * @since 12.0.0
     344         *
     345         * @param string $slug     The user's slug.
     346         * @param integer $user_id The user ID.
     347         */
     348        return apply_filters( 'bp_members_get_user_slug', $slug, $user_id );
    309349}
    310350
    … …  
    381421        }
    382422
    383         if ( !$url = bp_core_get_user_domain( $user_id ) ) {
     423        if ( !$url = bp_members_get_user_url( $user_id ) ) {
    384424                return false;
    385425        }
    … …  
    33163356        }
    33173357
    3318         $profile_url = bp_core_get_user_domain( $user_id );
     3358        $profile_url = bp_members_get_user_url( $user_id );
    33193359
    33203360        /**
  • trunk/src/bp-members/bp-members-notifications.php

    r13185 r13433  
    4848                                }
    4949                        } else {
    50                                 $link   = add_query_arg( 'welcome', 1, bp_core_get_user_domain( $item_id ) );
     50                                $link   = add_query_arg( 'welcome', 1, bp_members_get_user_url( $item_id ) );
    5151                                $amount = 'single';
    5252
  • trunk/src/bp-members/bp-members-template.php

    r13432 r13433  
    902902                global $members_template;
    903903
    904                 $permalink = bp_core_get_user_domain(
    905                         $members_template->member->id,
    906                         $members_template->member->user_nicename,
    907                         $members_template->member->user_login
    908                 );
     904                $permalink = bp_members_get_user_url( $members_template->member->id );
    909905
    910906                /**
    … …  
    20502046
    20512047                if ( bp_displayed_user_id() ) {
    2052                         $username = bp_core_get_username( bp_displayed_user_id(), $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login );
     2048                        $username = bp_members_get_user_slug( bp_displayed_user_id() );
    20532049                } else {
    20542050                        $username = '';
    … …  
    20842080
    20852081                if ( bp_loggedin_user_id() ) {
    2086                         $username = bp_core_get_username( bp_loggedin_user_id(), $bp->loggedin_user->userdata->user_nicename, $bp->loggedin_user->userdata->user_login );
     2082                        $username = bp_members_get_user_slug( bp_loggedin_user_id() );
    20872083                } else {
    20882084                        $username = '';
    … …  
    35723568                        $domain  = bp_loggedin_user_domain();
    35733569                } else {
    3574                         $domain = bp_core_get_user_domain( (int) $user_id );
     3570                        $domain = bp_members_get_user_url( (int) $user_id );
    35753571                }
    35763572
    … …  
    36113607                        $domain  = bp_loggedin_user_domain();
    36123608                } else {
    3613                         $domain = bp_core_get_user_domain( (int) $user_id );
     3609                        $domain = bp_members_get_user_url( (int) $user_id );
    36143610                }
    36153611
  • trunk/src/bp-members/classes/class-bp-members-admin.php

    r13404 r13433  
    13341334
    13351335                                <div id="publishing-action">
    1336                                         <a class="button bp-view-profile" href="<?php echo esc_url( bp_core_get_user_domain( $user->ID ) ); ?>" target="_blank"><?php esc_html_e( 'View Profile', 'buddypress' ); ?></a>
     1336                                        <a class="button bp-view-profile" href="<?php echo esc_url( bp_members_get_user_url( $user->ID ) ); ?>" target="_blank"><?php esc_html_e( 'View Profile', 'buddypress' ); ?></a>
    13371337                                        <?php submit_button( esc_html__( 'Update Profile', 'buddypress' ), 'primary', 'save', false ); ?>
    13381338                                </div>
  • trunk/src/bp-members/classes/class-bp-members-component.php

    r13432 r13433  
    229229
    230230                // The domain for the user currently logged in. eg: http://example.com/members/andy.
    231                 $bp->loggedin_user->domain = bp_core_get_user_domain( bp_loggedin_user_id() );
     231                $bp->loggedin_user->domain = bp_members_get_user_url( bp_loggedin_user_id() );
    232232
    233233                /** Displayed user ***************************************************
    … …  
    241241
    242242                // The domain for the user currently being displayed.
    243                 $bp->displayed_user->domain = bp_core_get_user_domain( bp_displayed_user_id() );
     243                $bp->displayed_user->domain = bp_members_get_user_url( bp_displayed_user_id() );
    244244
    245245                // If A user is displayed, check if there is a front template
  • trunk/src/bp-members/classes/class-bp-members-invitation-manager.php

    r13293 r13433  
    7474                                'tokens' => array(
    7575                                        'inviter.name'      => bp_core_get_userlink( $invitation->inviter_id, true, false ),
    76                                         'inviter.url'       => bp_core_get_user_domain( $invitation->inviter_id ),
     76                                        'inviter.url'       => bp_members_get_user_url( $invitation->inviter_id ),
    7777                                        'inviter.id'        => $invitation->inviter_id,
    7878                                        'invite.accept_url' => esc_url( $invite_url ),
  • trunk/src/bp-members/classes/class-bp-members-invitations-list-table.php

    r13225 r13433  
    426426                }
    427427
    428                 $user_link = bp_core_get_user_domain( $invite->inviter_id );
     428                $user_link = bp_members_get_user_url( $invite->inviter_id );
    429429
    430430                printf( '%1$s <strong><a href="%2$s" class="edit">%3$s</a></strong><br/>', $avatar, esc_url( $user_link ), esc_html( $inviter->user_login ) );
  • trunk/src/bp-messages/bp-messages-functions.php

    r13395 r13433  
    627627                        'tokens' => array(
    628628                                'usermessage' => wp_strip_all_tags( stripslashes( $message ) ),
    629                                 'message.url' => esc_url( bp_core_get_user_domain( $recipient->user_id ) . bp_get_messages_slug() . '/view/' . $thread_id . '/' ),
     629                                'message.url' => esc_url(
     630                                        bp_members_get_user_url(
     631                                                $recipient->user_id,
     632                                                array(
     633                                                        'single_item_component'        => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
     634                                                        'single_item_action'           => bp_rewrites_get_slug( 'members', 'member_messages_view', 'view' ),
     635                                                        'single_item_action_variables' => array( $thread_id ),
     636                                                )
     637                                        )
     638                                ),
    630639                                'sender.name' => $sender_name,
    631640                                'usersubject' => sanitize_text_field( stripslashes( $subject ) ),
  • trunk/src/bp-messages/bp-messages-star.php

    r13108 r13433  
    129129                        // Empty or other.
    130130                        default :
    131                                 $user_domain = bp_core_get_user_domain( $r['user_id'] );
     131                                $user_domain = bp_members_get_user_url( $r['user_id'] );
    132132                                break;
    133133                }
  • trunk/src/bp-messages/bp-messages-template.php

    r13409 r13433  
    338338                }
    339339
    340                 $domain = bp_core_get_user_domain( $user_id );
     340                $domain = bp_members_get_user_url( $user_id );
    341341
    342342                /**
    … …  
    383383                }
    384384
    385                 $domain = bp_core_get_user_domain( $user_id );
     385                $domain = bp_members_get_user_url( $user_id );
    386386
    387387                /**
    … …  
    435435                }
    436436
    437                 $domain = bp_core_get_user_domain( $user_id );
     437                $domain = bp_members_get_user_url( $user_id );
    438438
    439439                // Base unread URL.
    … …  
    497497                }
    498498
    499                 $domain = bp_core_get_user_domain( $user_id );
     499                $domain = bp_members_get_user_url( $user_id );
    500500
    501501                // Base read URL.
    … …  
    14841484                 * @param string $value URL for the Private Message link in member profile headers.
    14851485                 */
    1486                 return apply_filters( 'bp_get_send_private_message_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_messages_slug() . '/compose/?r=' . bp_core_get_username( bp_displayed_user_id() ) ) );
     1486                return apply_filters( 'bp_get_send_private_message_link', wp_nonce_url( bp_loggedin_user_domain() . bp_get_messages_slug() . '/compose/?r=' . bp_members_get_user_slug( bp_displayed_user_id() ) ) );
    14871487        }
    14881488
  • trunk/src/bp-notifications/bp-notifications-template.php

    r13147 r13433  
    6363                        $domain  = bp_loggedin_user_domain();
    6464                } else {
    65                         $domain = bp_core_get_user_domain( (int) $user_id );
     65                        $domain = bp_members_get_user_url( (int) $user_id );
    6666                }
    6767
    … …  
    104104                        $domain  = bp_loggedin_user_domain();
    105105                } else {
    106                         $domain = bp_core_get_user_domain( (int) $user_id );
     106                        $domain = bp_members_get_user_url( (int) $user_id );
    107107                }
    108108
    … …  
    144144                        $domain  = bp_loggedin_user_domain();
    145145                } else {
    146                         $domain = bp_core_get_user_domain( (int) $user_id );
     146                        $domain = bp_members_get_user_url( (int) $user_id );
    147147                }
    148148
  • trunk/src/bp-templates/bp-nouveau/includes/activity/ajax.php

    r13395 r13433  
    268268        // If on a single activity redirect to user's home.
    269269        if ( ! empty( $_POST['is_single'] ) ) {
    270                 $response['redirect'] = bp_core_get_user_domain( $activity->user_id );
     270                $response['redirect'] = bp_members_get_user_url( $activity->user_id );
    271271                bp_core_add_message( __( 'Activity deleted successfully', 'buddypress' ) );
    272272        }
    … …  
    666666        // If on a single activity redirect to user's home.
    667667        if ( ! empty( $_POST['is_single'] ) ) {
    668                 $response['redirect'] = bp_core_get_user_domain( $activity->user_id );
     668                $response['redirect'] = bp_members_get_user_url( $activity->user_id );
    669669                bp_core_add_message( __( 'This activity has been marked as spam and is no longer visible.', 'buddypress' ) );
    670670        }
  • trunk/src/bp-templates/bp-nouveau/includes/groups/functions.php

    r13302 r13433  
    254254                                ),
    255255                                'user_link' => bp_core_get_userlink( $inviter_id, false, true ),
    256                                 'user_name' => bp_core_get_username( $inviter_id ),
     256                                'user_name' => bp_members_get_user_slug( $inviter_id ),
    257257                        );
    258258                }
  • trunk/src/bp-templates/bp-nouveau/includes/messages/ajax.php

    r13288 r13433  
    368368                                        ) ) ),
    369369                                        'user_link' => bp_core_get_userlink( $recipient->user_id, false, true ),
    370                                         'user_name' => bp_core_get_username( $recipient->user_id ),
     370                                        'user_name' => bp_members_get_user_slug( $recipient->user_id ),
    371371                                );
    372372                        }
    … …  
    518518                                        ) ) ),
    519519                                        'user_link' => bp_core_get_userlink( $recipient->user_id, false, true ),
    520                                         'user_name' => bp_core_get_username( $recipient->user_id ),
     520                                        'user_name' => bp_members_get_user_slug( $recipient->user_id ),
    521521                                );
    522522                        }
  • trunk/src/bp-templates/bp-nouveau/includes/template-tags.php

    r13189 r13433  
    22682268        } elseif ( ! empty( $r['object'] ) && ! empty( $r['item_id'] ) ) {
    22692269                if ( 'user' === $r['object'] ) {
    2270                         $url = rawurlencode( bp_core_get_user_domain( $r['item_id'] ) );
     2270                        $url = rawurlencode( bp_members_get_user_url( $r['item_id'] ) );
    22712271
    22722272                } elseif ( 'group' === $r['object'] ) {
  • trunk/src/bp-xprofile/bp-xprofile-activity.php

    r13108 r13433  
    5050 */
    5151function bp_xprofile_format_activity_action_updated_profile( $action, $activity ) {
    52 
    53         // Note for translators: The natural phrasing in English, "Joe updated
    54         // his profile", requires that we know Joe's gender, which we don't. If
    55         // your language doesn't have this restriction, feel free to use a more
    56         // natural translation.
    57         $profile_link = trailingslashit( bp_core_get_user_domain( $activity->user_id ) . bp_get_profile_slug() );
     52        /*
     53         * Note for translators: The natural phrasing in English, "Joe updated
     54         * his profile", requires that we know Joe's gender, which we don't. If
     55         * your language doesn't have this restriction, feel free to use a more
     56         * natural translation.
     57         */
     58        $profile_link = bp_members_get_user_url(
     59                $activity->user_id,
     60                array(
     61                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     62                )
     63        );
    5864
    5965        /* translators: %s: user profile link */
    … …  
    247253
    248254        // If we've reached this point, assemble and post the activity item.
    249         $profile_link = trailingslashit( bp_core_get_user_domain( $user_id ) . bp_get_profile_slug() );
     255        $profile_link = bp_members_get_user_url(
     256                $user_id,
     257                array(
     258                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     259                )
     260        );
    250261
    251262        return (bool) xprofile_record_activity( array(
  • trunk/tests/phpunit/includes/testcase.php

    r13314 r13433  
    210210                $bp->loggedin_user->fullname       = bp_core_get_user_displayname( $user_id );
    211211                $bp->loggedin_user->is_super_admin = $bp->loggedin_user->is_site_admin = is_super_admin( $user_id );
    212                 $bp->loggedin_user->domain         = bp_core_get_user_domain( $user_id );
     212                $bp->loggedin_user->domain         = bp_members_get_user_url( $user_id );
    213213                $bp->loggedin_user->userdata       = bp_core_get_core_userdata( $user_id );
    214214
  • trunk/tests/phpunit/testcases/activity/filters.php

    r11737 r13433  
    2121
    2222                $u1_mention_name = bp_activity_get_user_mentionname( $u1 );
    23                 $u1_domain = bp_core_get_user_domain( $u1 );
     23                $u1_domain = bp_members_get_user_url( $u1 );
    2424                $u2_mention_name = bp_activity_get_user_mentionname( $u2 );
    25                 $u2_domain = bp_core_get_user_domain( $u2 );
     25                $u2_domain = bp_members_get_user_url( $u2 );
    2626
    2727                // mentions normal text should be replaced
  • trunk/tests/phpunit/testcases/activity/notifications.php

    r13414 r13433  
    77#[AllowDynamicProperties]
    88class BP_Tests_Activity_Notifications extends BP_UnitTestCase {
     9        protected $permalink_structure = '';
    910        protected $current_user;
    1011        protected $u1;
    … …  
    1516        public function set_up() {
    1617                parent::set_up();
     18                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1719                $this->current_user = get_current_user_id();
    1820                $this->u1 = self::factory()->user->create();
    … …  
    3133        public function tear_down() {
    3234                $this->set_current_user( $this->current_user );
     35                $this->set_permalink_structure( $this->permalink_structure );
     36
    3337                parent::tear_down();
    3438
    … …  
    4347        public function test_bp_activity_remove_screen_notifications_on_single_activity_permalink() {
    4448                $this->create_notifications();
     49                $this->set_permalink_structure( '/%postname%/' );
    4550
    4651                $notifications = BP_Notifications_Notification::get( array(
    … …  
    5257
    5358                // Go to the activity permalink page
    54                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . 'activity/' . $this->a1 );
     59                $this->go_to(
     60                        bp_members_get_user_url(
     61                                $this->u1,
     62                                array(
     63                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     64                                        'single_item_action'    => $this->a1,
     65                                )
     66                        )
     67                );
    5568
    5669                $notifications = BP_Notifications_Notification::get( array(
    … …  
    6881        public function test_bp_activity_remove_screen_notifications_on_single_activity_permalink_logged_out() {
    6982                $this->create_notifications();
     83                $this->set_permalink_structure( '/%postname%/' );
    7084
    7185                $notifications = BP_Notifications_Notification::get( array(
    … …  
    8094
    8195                // Go to the activity permalink page
    82                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . 'activity/' . $this->a1 );
     96                $this->go_to(
     97                        bp_members_get_user_url(
     98                                $this->u1,
     99                                array(
     100                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     101                                        'single_item_action'    => $this->a1,
     102                                )
     103                        )
     104                );
    83105
    84106                $notifications = BP_Notifications_Notification::get( array(
    … …  
    98120        public function test_bp_activity_remove_screen_notifications_on_single_activity_permalink_wrong_user() {
    99121                $this->create_notifications();
     122                $this->set_permalink_structure( '/%postname%/' );
    100123
    101124                $notifications = BP_Notifications_Notification::get( array(
    … …  
    110133
    111134                // Go to the activity permalink page
    112                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . 'activity/' . $this->a1 );
     135                $this->go_to(
     136                        bp_members_get_user_url(
     137                                $this->u1,
     138                                array(
     139                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     140                                        'single_item_action'    => $this->a1,
     141                                )
     142                        )
     143                );
    113144
    114145                $notifications = BP_Notifications_Notification::get( array(
    … …  
    128159        public function test_bp_activity_remove_screen_notifications_on_mentions() {
    129160                $this->create_notifications();
     161                $this->set_permalink_structure( '/%postname%/' );
    130162
    131163                $notifications = BP_Notifications_Notification::get( array(
    … …  
    137169
    138170                // Go to the My Activity page
    139                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . bp_get_activity_slug() . '/mentions/' );
     171                $this->go_to(
     172                        bp_members_get_user_url(
     173                                $this->u1,
     174                                array(
     175                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     176                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_mentions', 'mentions' ),
     177                                )
     178                        )
     179                );
    140180
    141181                $notifications = BP_Notifications_Notification::get( array(
    … …  
    153193        public function test_bp_activity_remove_screen_notifications_on_mentions_logged_out() {
    154194                $this->create_notifications();
     195                $this->set_permalink_structure( '/%postname%/' );
    155196
    156197                $notifications = BP_Notifications_Notification::get( array(
    … …  
    165206
    166207                // Go to the My Activity page
    167                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . bp_get_activity_slug() . '/mentions/' );
     208                $this->go_to(
     209                        bp_members_get_user_url(
     210                                $this->u1,
     211                                array(
     212                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     213                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_mentions', 'mentions' ),
     214                                )
     215                        )
     216                );
    168217
    169218                $notifications = BP_Notifications_Notification::get( array(
    … …  
    184233        public function test_bp_activity_remove_screen_notifications_on_mentions_wrong_user() {
    185234                $this->create_notifications();
     235                $this->set_permalink_structure( '/%postname%/' );
    186236
    187237                $notifications = BP_Notifications_Notification::get( array(
    … …  
    196246
    197247                // Go to the My Activity page
    198                 $this->go_to( bp_core_get_user_domain( $this->u1 ) . bp_get_activity_slug() . '/mentions/' );
     248                $this->go_to(
     249                        bp_members_get_user_url(
     250                                $this->u1,
     251                                array(
     252                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     253                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_mentions', 'mentions' ),
     254                                )
     255                        )
     256                );
    199257
    200258                $notifications = BP_Notifications_Notification::get( array(
    … …  
    215273        public function test_bp_activity_at_mention_delete_notification() {
    216274                $this->create_notifications();
     275                $this->set_permalink_structure( '/%postname%/' );
    217276
    218277                $notifications = BP_Notifications_Notification::get( array(
  • trunk/tests/phpunit/testcases/core/class-bp-button.php

    r13314 r13433  
    66 */
    77class BP_Tests_BP_Button extends BP_UnitTestCase {
     8        protected $permalink_structure = '';
     9
     10        public function set_up() {
     11                parent::set_up();
     12                $this->permalink_structure = get_option( 'permalink_structure', '' );
     13        }
     14
     15        public function tear_down() {
     16                $this->set_permalink_structure( $this->permalink_structure );
     17
     18                parent::tear_down();
     19        }
     20
    821        /**
    922         * @group block_self
    … …  
    1225                $u = self::factory()->user->create();
    1326                $this->set_current_user( $u );
    14 
    15                 $this->go_to( bp_core_get_user_domain( $u ) );
     27                $this->set_permalink_structure( '/%postname%/' );
     28
     29                $this->go_to( bp_members_get_user_url( $u ) );
    1630
    1731                $b = new BP_Button( array(
    … …  
    3044                $u1 = self::factory()->user->create();
    3145                $this->set_current_user( $u1 );
     46                $this->set_permalink_structure( '/%postname%/' );
    3247
    3348                $u2 = self::factory()->user->create();
    34                 $this->go_to( bp_core_get_user_domain( $u2 ) );
     49                $this->go_to( bp_members_get_user_url( $u2 ) );
    3550
    3651                $b = new BP_Button( array(
    … …  
    136151
    137152                $this->set_current_user( $u1 );
    138                 $this->go_to( bp_core_get_user_domain( $u1 ) );
     153                $this->set_permalink_structure( '/%postname%/' );
     154                $this->go_to( bp_members_get_user_url( $u1 ) );
    139155
    140156                $found = array();
  • trunk/tests/phpunit/testcases/core/nav/bpCoreMaybeHookNewSubnavScreenFunction.php

    r11737 r13433  
    55 */
    66class BP_Tests_Core_Nav_BpCoreMaybeHookNewSubnavScreenFunction extends BP_UnitTestCase {
     7        protected $permalink_structure = '';
     8
     9        public function set_up() {
     10                parent::set_up();
     11                $this->permalink_structure = get_option( 'permalink_structure', '' );
     12        }
     13
     14        public function tear_down() {
     15                $this->set_permalink_structure( $this->permalink_structure );
     16
     17                parent::tear_down();
     18        }
    719
    820        public function test_user_has_access_true_no_callable_function() {
    … …  
    5769                $old_current_user = get_current_user_id();
    5870                $this->set_current_user( $u );
    59 
    60                 $this->go_to( bp_core_get_user_domain( $u ) );
    61 
    62                 $subnav_item = array(
    63                         'user_has_access' => false,
    64                 );
    65 
    66                 // Just test relevant info
    67                 $found = bp_core_maybe_hook_new_subnav_screen_function( $subnav_item );
    68                 $this->assertSame( 'failure', $found['status'] );
    69                 $this->assertSame( bp_core_get_user_domain( $u ), $found['redirect_args']['root'] );
     71                $this->set_permalink_structure( '/%postname%/' );
     72
     73                $this->go_to( bp_members_get_user_url( $u ) );
     74
     75                $subnav_item = array(
     76                        'user_has_access' => false,
     77                );
     78
     79                // Just test relevant info
     80                $found = bp_core_maybe_hook_new_subnav_screen_function( $subnav_item );
     81                $this->assertSame( 'failure', $found['status'] );
     82                $this->assertSame( bp_members_get_user_url( $u ), $found['redirect_args']['root'] );
    7083
    7184                $this->set_current_user( $old_current_user );
    … …  
    7790                $old_current_user = get_current_user_id();
    7891                $this->set_current_user( $u1 );
    79 
    80                 $this->go_to( bp_core_get_user_domain( $u2 ) );
     92                $this->set_permalink_structure( '/%postname%/' );
     93
     94                $this->go_to( bp_members_get_user_url( $u2 ) );
    8195
    8296                $old_bp_nav = buddypress()->bp_nav;
    … …  
    104118
    105119                $this->assertSame( 'failure', $found['status'] );
    106                 $this->assertSame( bp_core_get_user_domain( $u2 ), $found['redirect_args']['root'] );
     120                $this->assertSame( bp_members_get_user_url( $u2 ), $found['redirect_args']['root'] );
    107121        }
    108122
    … …  
    112126                $old_current_user = get_current_user_id();
    113127                $this->set_current_user( $u1 );
    114 
    115                 $this->go_to( bp_core_get_user_domain( $u2 ) );
     128                $this->set_permalink_structure( '/%postname%/' );
     129
     130                $this->go_to( bp_members_get_user_url( $u2 ) );
    116131
    117132                $old_bp_nav = buddypress()->bp_nav;
    … …  
    140155
    141156                $this->assertSame( 'failure', $found['status'] );
    142                 $this->assertSame( bp_core_get_user_domain( $u2 ) . bp_get_activity_slug() . '/', $found['redirect_args']['root'] );
     157                $this->assertSame(
     158                        bp_members_get_user_url(
     159                                $u2,
     160                                array(
     161                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     162                                )
     163                        ),
     164                        $found['redirect_args']['root']
     165                );
    143166        }
    144167
  • trunk/tests/phpunit/testcases/core/nav/bpCoreNewNavItem.php

    r11737 r13433  
    55 */
    66class BP_Tests_Core_Nav_BpCoreNewNavItem extends BP_UnitTestCase {
     7        protected $permalink_structure = '';
     8
     9        public function set_up() {
     10                parent::set_up();
     11                $this->permalink_structure = get_option( 'permalink_structure', '' );
     12        }
     13
     14        public function tear_down() {
     15                $this->set_permalink_structure( $this->permalink_structure );
     16
     17                parent::tear_down();
     18        }
    719
    820        /**
    … …  
    1527                $old_current_user = get_current_user_id();
    1628                $this->set_current_user( $u );
    17 
    18                 $this->go_to( bp_core_get_user_domain( $u ) );
     29                $this->set_permalink_structure( '/%postname%/' );
     30
     31                $this->go_to( bp_members_get_user_url( $u ) );
    1932
    2033                bp_core_new_nav_item( array(
    … …  
    2942                        'name'                    => 'Foo',
    3043                        'slug'                    => 'foo',
    31                         'link'                    => trailingslashit( bp_core_get_user_domain( $u ) . 'foo' ),
     44                        'link'                    => bp_members_get_user_url(
     45                                $u,
     46                                array(
     47                                        'single_item_component' => 'foo',
     48                                )
     49                        ),
    3250                        'css_id'                  => 'foo',
    3351                        'show_for_displayed_user' => true,
    … …  
    147165                $old_current_user = get_current_user_id();
    148166                $this->set_current_user( $u2 );
    149 
    150                 $this->go_to( bp_core_get_user_domain( $u ) );
     167                $this->set_permalink_structure( '/%postname%/' );
     168
     169                $this->go_to( bp_members_get_user_url( $u ) );
    151170
    152171                $expected = array(
    … …  
    182201                $old_current_user = get_current_user_id();
    183202                $this->set_current_user( $u2 );
    184 
    185                 $this->go_to( bp_core_get_user_domain( $u ) );
     203                $this->set_permalink_structure( '/%postname%/' );
     204
     205                $this->go_to( bp_members_get_user_url( $u ) );
    186206
    187207                bp_core_new_nav_item( array(
  • trunk/tests/phpunit/testcases/core/nav/bpCoreNewSubnavItem.php

    r12195 r13433  
    1616                $this->set_current_user( $u );
    1717
    18                 $user_domain = bp_core_get_user_domain( $u );
     18                $user_domain = bp_members_get_user_url( $u );
    1919
    2020                $this->go_to( $user_domain );
    … …  
    345345                $this->set_current_user( $u );
    346346
    347                 $user_domain = bp_core_get_user_domain( $u );
     347                $user_domain = bp_members_get_user_url( $u );
    348348
    349349                // Register a subnav on 'bp_setup_nav' hook early (at priority zero).
  • trunk/tests/phpunit/testcases/core/nav/bpGetNavMenuItems.php

    r11737 r13433  
    66 */
    77class BP_Tests_Core_Nav_BpGetNavMenuItems extends BP_UnitTestCase {
     8        protected $permalink_structure = '';
     9
     10        public function set_up() {
     11                parent::set_up();
     12                $this->permalink_structure = get_option( 'permalink_structure', '' );
     13        }
     14
     15        public function tear_down() {
     16                $this->set_permalink_structure( $this->permalink_structure );
     17
     18                parent::tear_down();
     19        }
     20
    821        /**
    922         * @ticket BP7110
    … …  
    1326
    1427                $this->set_current_user( $users[0] );
    15                 $user_1_domain = bp_core_get_user_domain( $users[1] );
     28                $this->set_permalink_structure( '/%postname%/' );
     29
     30                $user_1_domain = bp_members_get_user_url( $users[1] );
    1631                $this->go_to( $user_1_domain );
    1732
    … …  
    3752
    3853                $this->set_current_user( 0 );
    39                 $user_domain = bp_core_get_user_domain( $user );
     54                $this->set_permalink_structure( '/%postname%/' );
     55
     56                $user_domain = bp_members_get_user_url( $user );
    4057                $this->go_to( $user_domain );
    4158
  • trunk/tests/phpunit/testcases/core/template/bpUserHasAccess.php

    r11737 r13433  
    55 */
    66class BP_Tests_Core_Template_BpUserHasAccess extends BP_UnitTestCase {
     7        protected $permalink_structure = '';
     8
     9        public function set_up() {
     10                parent::set_up();
     11                $this->permalink_structure = get_option( 'permalink_structure', '' );
     12        }
     13
     14        public function tear_down() {
     15                $this->set_permalink_structure( $this->permalink_structure );
     16
     17                parent::tear_down();
     18        }
     19
    720        public function test_should_return_true_for_bp_moderate_user() {
    821                $users = self::factory()->user->create_many( 2 );
    … …  
    1023                $this->grant_bp_moderate( $users[0] );
    1124                $this->set_current_user( $users[0] );
     25                $this->set_permalink_structure( '/%postname%/' );
    1226
    13                 $this->go_to( bp_core_get_user_domain( $users[1] ) );
     27                $this->go_to( bp_members_get_user_url( $users[1] ) );
    1428
    1529                $this->assertTrue( bp_user_has_access( $users[0] ) );
    … …  
    2034
    2135                $this->set_current_user( $users[0] );
     36                $this->set_permalink_structure( '/%postname%/' );
    2237
    23                 $this->go_to( bp_core_get_user_domain( $users[1] ) );
     38                $this->go_to( bp_members_get_user_url( $users[1] ) );
    2439
    2540                $this->assertFalse( bp_user_has_access( $users[0] ) );
    … …  
    3045
    3146                $this->set_current_user( $users[0] );
     47                $this->set_permalink_structure( '/%postname%/' );
    3248
    33                 $this->go_to( bp_core_get_user_domain( $users[0] ) );
     49                $this->go_to( bp_members_get_user_url( $users[0] ) );
    3450
    3551                $this->assertTrue( bp_user_has_access( $users[0] ) );
  • trunk/tests/phpunit/testcases/members/functions.php

    r13431 r13433  
    55#[AllowDynamicProperties]
    66class BP_Tests_Members_Functions extends BP_UnitTestCase {
     7        protected $permalink_structure = '';
     8
     9        public function set_up() {
     10                parent::set_up();
     11                $this->permalink_structure = get_option( 'permalink_structure', '' );
     12        }
     13
     14        public function tear_down() {
     15                $this->set_permalink_structure( $this->permalink_structure );
     16
     17                parent::tear_down();
     18        }
    719
    820        /**
    … …  
    114126         * @group bp_core_get_directory_pages
    115127         */
    116         public function test_bp_core_get_user_domain_after_directory_page_update() {
     128        public function test_bp_members_get_user_url_after_directory_page_update() {
    117129                // Generate user
    118130                $user_id = self::factory()->user->create( array( 'role' => 'subscriber' ) );
     131                $this->set_permalink_structure( '/%postname%/' );
    119132
    120133                // Set object cache first for user domain
    121                 $user_domain = bp_core_get_user_domain( $user_id );
     134                $user_domain = bp_members_get_user_url( $user_id );
    122135
    123136                // Now change the members directory slug
    … …  
    137150                $user = new WP_User( $user_id );
    138151
    139                 $this->assertSame( home_url( $new_members_slug ) . '/' . $user->user_nicename . '/', bp_core_get_user_domain( $user_id ) );
     152                $this->assertSame( home_url( $new_members_slug ) . '/' . $user->user_nicename . '/', bp_members_get_user_url( $user_id ) );
    140153        }
    141154
  • trunk/tests/phpunit/testcases/members/template.php

    r12791 r13433  
    44 */
    55class BP_Tests_Members_Template extends BP_UnitTestCase {
     6        protected $permalink_structure = '';
     7
     8        public function set_up() {
     9                parent::set_up();
     10                $this->permalink_structure = get_option( 'permalink_structure', '' );
     11        }
     12
     13        public function tear_down() {
     14                $this->set_permalink_structure( $this->permalink_structure );
     15
     16                parent::tear_down();
     17        }
     18
    619        public function test_bp_has_members_include_on_user_page() {
    720                $u1 = self::factory()->user->create();
    821                $u2 = self::factory()->user->create();
    9 
    10                 $this->go_to( bp_core_get_user_domain( $u1 ) );
     22                $this->set_permalink_structure( '/%postname%/' );
     23
     24                $this->go_to( bp_members_get_user_url( $u1 ) );
    1125
    1226                global $members_template;
    … …  
    5973                $old_user = get_current_user_id();
    6074                $this->set_current_user( $u2 );
    61 
    62                 $this->go_to( bp_core_get_user_domain( $u2 ) . bp_get_friends_slug() . '/requests/' );
     75                $this->set_permalink_structure( '/%postname%/' );
     76
     77                $this->go_to(
     78                        bp_members_get_user_url(
     79                                $u2,
     80                                array(
     81                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     82                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_friends_requests', 'requests' ),
     83                                )
     84                        )
     85                );
    6386                $this->restore_admins();
    6487
    … …  
    86109                $old_user = get_current_user_id();
    87110                $this->set_current_user( $u2 );
     111                $this->set_permalink_structure( '/%postname%/' );
    88112
    89113                // For some reason, in all the user switching, the cache gets
    … …  
    93117                wp_cache_delete( 'bp_user_domain_' . $u2, 'bp' );
    94118
    95                 $this->go_to( bp_core_get_user_domain( $u2 ) . bp_get_friends_slug() . '/requests/' );
     119                $this->go_to(
     120                        bp_members_get_user_url(
     121                                $u2,
     122                                array(
     123                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     124                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_friends_requests', 'requests' ),
     125                                )
     126                        )
     127                );
    96128                $this->restore_admins();
    97129
  • trunk/tests/phpunit/testcases/routing/activity.php

    r13431 r13433  
    66class BP_Tests_Routing_Activity extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1112
    1213                $this->old_current_user = get_current_user_id();
     14                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1315                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1416        }
    … …  
    1719                parent::tear_down();
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922        }
    2023
    2124        function test_activity_directory() {
     25                $this->set_permalink_structure( '/%postname%/' );
    2226                $this->go_to( bp_get_activity_directory_permalink() );
    2327
    … …  
    3236         */
    3337        function test_activity_permalink() {
     38                $this->set_permalink_structure( '/%postname%/' );
    3439                $a = self::factory()->activity->create();
    3540                $activity = self::factory()->activity->get_object_by_id( $a );
    3641
    37                 $url = bp_core_get_user_domain( $activity->user_id ) . bp_get_activity_slug() . '/' . $activity->id . '/';
     42                $url = bp_members_get_user_url(
     43                        $activity->user_id,
     44                        array(
     45                                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     46                                'single_item_action'    => $activity->id,
     47                        )
     48                );
    3849                $this->go_to( $url );
    3950                $this->assertTrue( bp_is_single_activity() );
    … …  
    4152
    4253        function test_member_activity() {
    43                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_activity_slug() );
     54                $this->set_permalink_structure( '/%postname%/' );
     55                $this->go_to(
     56                        bp_members_get_user_url(
     57                                bp_loggedin_user_id(),
     58                                array(
     59                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     60                                )
     61                        )
     62                );
    4463                $this->assertTrue( bp_is_user_activity() );
    4564        }
    4665
    4766        function test_member_activity_mentions() {
    48                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_activity_slug() . '/mentions'  );
     67                $this->set_permalink_structure( '/%postname%/' );
     68                $this->go_to(
     69                        bp_members_get_user_url(
     70                                bp_loggedin_user_id(),
     71                                array(
     72                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     73                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_mentions', 'mentions' ),
     74                                )
     75                        )
     76                );
    4977                $this->assertTrue( bp_is_user_activity() );
    5078        }
    5179
    5280        function test_member_activity_favourites() {
    53                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_activity_slug() . '/favorites'  );
     81                $this->set_permalink_structure( '/%postname%/' );
     82                $this->go_to(
     83                        bp_members_get_user_url(
     84                                bp_loggedin_user_id(),
     85                                array(
     86                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     87                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_favorites', 'favorites' ),
     88                                )
     89                        )
     90                );
    5491                $this->assertTrue( bp_is_user_activity() );
    5592        }
    … …  
    5996         */
    6097        function test_member_activity_friends() {
    61                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_activity_slug() . '/' . bp_get_friends_slug() );
     98                $this->set_permalink_structure( '/%postname%/' );
     99                $this->go_to(
     100                        bp_members_get_user_url(
     101                                bp_loggedin_user_id(),
     102                                array(
     103                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     104                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_friends', bp_get_friends_slug() ),
     105                                )
     106                        )
     107                );
    62108                $this->assertTrue( bp_is_user_friends_activity() );
    63109        }
    … …  
    67113         */
    68114        function test_member_activity_groups() {
    69                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_activity_slug() . '/' . bp_get_groups_slug() );
     115                $this->set_permalink_structure( '/%postname%/' );
     116                $this->go_to(
     117                        bp_members_get_user_url(
     118                                bp_loggedin_user_id(),
     119                                array(
     120                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_activity', bp_get_activity_slug() ),
     121                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_activity_groups', bp_get_groups_slug() ),
     122                                )
     123                        )
     124                );
    70125                $this->assertTrue( bp_is_user_groups_activity() );
    71126        }
  • trunk/tests/phpunit/testcases/routing/friends.php

    r13314 r13433  
    66class BP_Tests_Routing_Friends extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1112
    1213                $this->old_current_user = get_current_user_id();
     14                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1315                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1416        }
    … …  
    1719                parent::tear_down();
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922        }
    2023
    2124        function test_member_friends() {
    22                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_friends_slug() );
     25                $this->set_permalink_structure( '/%postname%/' );
     26                $this->go_to(
     27                        bp_members_get_user_url(
     28                                bp_loggedin_user_id(),
     29                                array(
     30                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     31                                )
     32                        )
     33                );
    2334                $this->assertTrue( bp_is_user_friends() );
    2435        }
    2536
    2637        function test_member_friends_requests() {
    27                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_friends_slug()  . '/requests' );
     38                $this->set_permalink_structure( '/%postname%/' );
     39                $this->go_to(
     40                        bp_members_get_user_url(
     41                                bp_loggedin_user_id(),
     42                                array(
     43                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_friends', bp_get_friends_slug() ),
     44                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_friends_requests', 'requests' ),
     45                                )
     46                        )
     47                );
    2848                $this->assertTrue( bp_is_user_friend_requests() );
    2949        }
  • trunk/tests/phpunit/testcases/routing/groups.php

    r13314 r13433  
    66class BP_Tests_Routing_Groups extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1213                buddypress()->members->types = array();
    1314                $this->old_current_user = get_current_user_id();
     15                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1416                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1517        }
    … …  
    1820                parent::tear_down();
    1921                $this->set_current_user( $this->old_current_user );
     22                $this->set_permalink_structure( $this->permalink_structure );
    2023        }
    2124
    2225        function test_member_groups() {
    23                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_groups_slug() );
     26                $this->set_permalink_structure( '/%postname%/' );
     27                $this->go_to(
     28                        bp_members_get_user_url(
     29                                bp_loggedin_user_id(),
     30                                array(
     31                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_groups', bp_get_groups_slug() ),
     32                                )
     33                        )
     34                );
    2435                $this->assertTrue( bp_is_user_groups() );
    2536        }
    2637
    2738        function test_member_groups_invitations() {
    28                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_groups_slug() . '/invites' );
     39                $this->set_permalink_structure( '/%postname%/' );
     40                $this->go_to(
     41                        bp_members_get_user_url(
     42                                bp_loggedin_user_id(),
     43                                array(
     44                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_groups', bp_get_groups_slug() ),
     45                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_friends_invites', 'invites' ),
     46                                )
     47                        )
     48                );
    2949                $this->assertTrue( bp_is_user_groups() && bp_is_current_action( 'invites' ) );
    3050        }
    … …  
    3454         */
    3555        public function test_group_directory_with_type() {
     56                $this->set_permalink_structure( '/%postname%/' );
    3657                bp_groups_register_group_type( 'foo' );
    3758                $this->go_to( bp_get_groups_directory_permalink() . 'type/foo/' );
    … …  
    4364         */
    4465        public function test_group_directory_with_type_that_has_custom_directory_slug() {
     66                $this->set_permalink_structure( '/%postname%/' );
    4567                bp_groups_register_group_type( 'foo', array( 'has_directory' => 'foos' ) );
    4668                $this->go_to( bp_get_groups_directory_permalink() . 'type/foos/' );
    … …  
    5274         */
    5375        public function test_group_directory_should_404_for_group_types_that_have_no_directory() {
     76                $this->set_permalink_structure( '/%postname%/' );
    5477                bp_register_member_type( 'foo', array( 'has_directory' => false ) );
    5578                $this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
    … …  
    6184         */
    6285        public function test_group_directory_should_404_for_invalid_group_types() {
     86                $this->set_permalink_structure( '/%postname%/' );
    6387                $this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
    6488                $this->assertTrue( is_404() );
    … …  
    6993         */
    7094        public function test_group_previous_slug_current_slug_should_resolve() {
     95                $this->set_permalink_structure( '/%postname%/' );
    7196                $g1 = self::factory()->group->create( array(
    7297                        'slug' => 'george',
    … …  
    86111         */
    87112        public function test_group_previous_slug_should_resolve() {
     113                $this->set_permalink_structure( '/%postname%/' );
    88114                $g1 = self::factory()->group->create( array(
    89115                        'slug' => 'george',
    … …  
    104130         */
    105131        public function test_group_previous_slug_most_recent_takes_precedence() {
     132                $this->set_permalink_structure( '/%postname%/' );
    106133                $g1 = self::factory()->group->create( array(
    107134                        'slug' => 'george',
  • trunk/tests/phpunit/testcases/routing/members.php

    r13431 r13433  
    66class BP_Tests_Routing_Members extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1213                buddypress()->members->types = array();
    1314                $this->old_current_user = get_current_user_id();
     15                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1416                $this->set_current_user( self::factory()->user->create( array( 'user_login' => 'paulgibbs', 'role' => 'subscriber' ) ) );
    1517        }
    … …  
    1719        public function tear_down() {
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922                parent::tear_down();
    2023        }
    2124
    2225        function test_members_directory() {
     26                $this->set_permalink_structure( '/%postname%/' );
    2327                $this->go_to( bp_get_members_directory_permalink() );
    2428
    … …  
    3034
    3135        function test_member_permalink() {
    32                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) );
     36                $this->set_permalink_structure( '/%postname%/' );
     37                $this->go_to( bp_members_get_user_url( bp_loggedin_user_id() ) );
    3338                $this->assertTrue( bp_is_my_profile() );
    3439        }
    … …  
    3944         */
    4045        public function test_member_directory_with_member_type() {
     46                $this->set_permalink_structure( '/%postname%/' );
    4147                bp_register_member_type( 'foo' );
    4248                $this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
    … …  
    4955         */
    5056        public function test_member_directory_with_member_type_should_obey_filtered_type_slug() {
     57                $this->set_permalink_structure( '/%postname%/' );
    5158                bp_register_member_type( 'foo' );
    5259
    … …  
    6673         */
    6774        public function test_member_directory_with_member_type_that_has_custom_directory_slug() {
     75                $this->set_permalink_structure( '/%postname%/' );
    6876                bp_register_member_type( 'foo', array( 'has_directory' => 'foos' ) );
    6977                $this->go_to( bp_get_members_directory_permalink() . 'type/foos/' );
    … …  
    7684         */
    7785        public function test_member_directory_with_member_type_should_be_overridden_by_member_with_same_nicename() {
     86                $this->set_permalink_structure( '/%postname%/' );
    7887                $u = self::factory()->user->create( array( 'user_nicename' => 'foo' ) );
    7988                bp_register_member_type( 'foo' );
    … …  
    91100         */
    92101        public function test_member_directory_should_404_for_member_types_that_have_no_directory() {
     102                $this->set_permalink_structure( '/%postname%/' );
    93103                bp_register_member_type( 'foo', array( 'has_directory' => false ) );
    94104                $this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
    … …  
    100110         */
    101111        function test_members_shortlink_redirector() {
     112                $this->set_permalink_structure( '/%postname%/' );
    102113                $shortlink_member_slug = 'me';
    103114
  • trunk/tests/phpunit/testcases/routing/messages.php

    r13314 r13433  
    66class BP_Tests_Routing_Messages extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1112
    1213                $this->old_current_user = get_current_user_id();
     14                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1315                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1416        }
    … …  
    1719                parent::tear_down();
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922        }
    2023
    2124        function test_member_messages() {
    22                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_messages_slug() );
     25                $this->set_permalink_structure( '/%postname%/' );
     26                $this->go_to(
     27                        bp_members_get_user_url(
     28                                bp_loggedin_user_id(),
     29                                array(
     30                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
     31                                )
     32                        )
     33                );
    2334                $this->assertTrue( bp_is_messages_inbox() );
    2435        }
    2536
    2637        function test_member_messages_sentbox() {
    27                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_messages_slug() . '/sentbox' );
     38                $this->set_permalink_structure( '/%postname%/' );
     39                $this->go_to(
     40                        bp_members_get_user_url(
     41                                bp_loggedin_user_id(),
     42                                array(
     43                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
     44                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_messages_sentbox', 'sentbox' ),
     45                                )
     46                        )
     47                );
    2848                $this->assertTrue( bp_is_messages_sentbox() );
    2949        }
    3050
    3151        function test_member_messages_compose() {
    32                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_messages_slug() . '/compose' );
     52                $this->set_permalink_structure( '/%postname%/' );
     53                $this->go_to(
     54                        bp_members_get_user_url(
     55                                bp_loggedin_user_id(),
     56                                array(
     57                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
     58                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_messages_compose', 'compose' ),
     59                                )
     60                        )
     61                );
    3362                $this->assertTrue( bp_is_messages_compose_screen() );
    3463        }
    3564
    3665        function test_member_messages_notices() {
    37                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_messages_slug() . '/notices' );
     66                $this->set_permalink_structure( '/%postname%/' );
     67                $this->go_to(
     68                        bp_members_get_user_url(
     69                                bp_loggedin_user_id(),
     70                                array(
     71                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
     72                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_messages_notices', 'notices' ),
     73                                )
     74                        )
     75                );
    3876                $this->assertTrue( bp_is_notices() );
    3977        }
  • trunk/tests/phpunit/testcases/routing/settings.php

    r13314 r13433  
    66class BP_Tests_Routing_Settings extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1112
    1213                $this->old_current_user = get_current_user_id();
     14                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1315                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1416        }
    … …  
    1719                parent::tear_down();
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922        }
    2023
    2124        function test_member_settings() {
    22                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_settings_slug() );
     25                $this->set_permalink_structure( '/%postname%/' );
     26                $this->go_to(
     27                        bp_members_get_user_url(
     28                                bp_loggedin_user_id(),
     29                                array(
     30                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_settings', bp_get_settings_slug() ),
     31                                )
     32                        )
     33                );
    2334                $this->assertTrue( bp_is_user_settings_general() );
    2435        }
    2536
    2637        function test_member_settings_notifications() {
    27                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_settings_slug() . '/notifications' );
     38                $this->set_permalink_structure( '/%postname%/' );
     39                $this->go_to(
     40                        bp_members_get_user_url(
     41                                bp_loggedin_user_id(),
     42                                array(
     43                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_settings', bp_get_settings_slug() ),
     44                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_settings_notifications', 'notifications' ),
     45                                )
     46                        )
     47                );
    2848                $this->assertTrue( bp_is_user_settings_notifications() );
    2949        }
    … …  
    3151        // @todo How best to test this?
    3252        /*function bp_is_user_settings_account_capbilities() {
    33                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_settings_slug() . '/capabilities' );
     53                $this->set_permalink_structure( '/%postname%/' );
     54                $this->go_to(
     55                        bp_members_get_user_url(
     56                                bp_loggedin_user_id(),
     57                                array(
     58                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_settings', bp_get_settings_slug() ),
     59                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_settings_capabilities', 'capabilities' ),
     60                                )
     61                        )
     62                );
    3463        }*/
    3564
    3665        function bp_is_user_settings_account_delete() {
    37                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_settings_slug() . '/delete-account' );
     66                $this->set_permalink_structure( '/%postname%/' );
     67                $this->go_to(
     68                        bp_members_get_user_url(
     69                                bp_loggedin_user_id(),
     70                                array(
     71                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_settings', bp_get_settings_slug() ),
     72                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_settings_delete_account', 'delete-account' ),
     73                                )
     74                        )
     75                );
    3876                $this->assertTrue( bp_is_user_settings_account_delete() );
    3977        }
  • trunk/tests/phpunit/testcases/routing/xprofile.php

    r13314 r13433  
    66class BP_Tests_Routing_XProfile extends BP_UnitTestCase {
    77        protected $old_current_user = 0;
     8        protected $permalink_structure = '';
    89
    910        public function set_up() {
    … …  
    1112
    1213                $this->old_current_user = get_current_user_id();
     14                $this->permalink_structure = get_option( 'permalink_structure', '' );
    1315                $this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
    1416        }
    … …  
    1719                parent::tear_down();
    1820                $this->set_current_user( $this->old_current_user );
     21                $this->set_permalink_structure( $this->permalink_structure );
    1922        }
    2023
    2124        function test_member_profile() {
    22                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_profile_slug() );
     25                $this->set_permalink_structure( '/%postname%/' );
     26                $this->go_to(
     27                        bp_members_get_user_url(
     28                                bp_loggedin_user_id(),
     29                                array(
     30                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     31                                )
     32                        )
     33                );
    2334                $this->assertTrue( bp_is_user_profile() );
    2435        }
    2536
    2637        function test_member_profile_edit() {
    27                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_profile_slug() . '/edit' );
     38                $this->set_permalink_structure( '/%postname%/' );
     39                $this->go_to(
     40                        bp_members_get_user_url(
     41                                bp_loggedin_user_id(),
     42                                array(
     43                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     44                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_profile_edit', 'edit' ),
     45                                )
     46                        )
     47                );
    2848                $this->assertTrue( bp_is_user_profile_edit() );
    2949        }
    3050
    3151        function test_member_profile_change_avatar() {
    32                 $this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_profile_slug() . '/change-avatar' );
     52                $this->set_permalink_structure( '/%postname%/' );
     53                $this->go_to(
     54                        bp_members_get_user_url(
     55                                bp_loggedin_user_id(),
     56                                array(
     57                                        'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     58                                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_profile_change_avatar', 'change-avatar' ),
     59                                )
     60                        )
     61                );
    3362                $this->assertTrue( bp_is_user_change_avatar() );
    3463        }
  • trunk/tests/phpunit/testcases/xprofile/activity.php

    r13314 r13433  
    307307                ) );
    308308
    309                 $expected = sprintf( esc_html__( "%s's profile was updated", 'buddypress' ), '<a href="' . bp_core_get_user_domain( $u ) . bp_get_profile_slug() . '/">' . bp_core_get_user_displayname( $u ) . '</a>' );
     309                $link     = bp_members_get_user_url(
     310                        $u,
     311                        array(
     312                                'single_item_component' => bp_rewrites_get_slug( 'members', 'member_profile', bp_get_profile_slug() ),
     313                        )
     314                );
     315                $expected = sprintf( esc_html__( "%s's profile was updated", 'buddypress' ), '<a href="' . esc_url( $link ) . '">' . bp_core_get_user_displayname( $u ) . '</a>' );
    310316
    311317                $a_obj = new BP_Activity_Activity( $a );
Note: See TracChangeset for help on using the changeset viewer.