Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: Add filter to short-circuit get_edit_user_link #7641

Open
wants to merge 1 commit into
base: trunk
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions src/wp-includes/link-template.php
Original file line number Diff line number Diff line change
Expand Up @@ -1739,6 +1739,25 @@ function edit_bookmark_link( $link = '', $before = '', $after = '', $bookmark =
* @return string URL to edit user page or empty string.
*/
function get_edit_user_link( $user_id = null ) {

/**
* Short-circuits the retrieval of the user edit link.
*
* Returning a non-empty string from this filter will effectively short-circuit
* the function, returning the passed value instead of continuing with the
* standard link generation process.
*
* @since 6.8.0
*
* @param string|null $link The edit link. Default is an empty string.
* @param int $user_id User ID.
*/
$link = apply_filters( 'pre_get_edit_user_link', '', $user_id );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move filter after the permission and user checks, otherwise the $user_id may get null value.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, that's an absolutely valid point.


if ( ! empty( $link ) ) {
return $link;
}
Comment on lines +1746 to +1759
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Returning a non-empty string from this filter will effectively short-circuit
* the function, returning the passed value instead of continuing with the
* standard link generation process.
*
* @since 6.8.0
*
* @param string|null $link The edit link. Default is an empty string.
* @param int $user_id User ID.
*/
$link = apply_filters( 'pre_get_edit_user_link', '', $user_id );
if ( ! empty( $link ) ) {
return $link;
}
* Returning a string from this filter will effectively short-circuit the function,
* returning the passed value instead of continuing with the standard link
* generation process.
*
* @since 6.8.0
*
* @param string|null $link The edit link. Default is an empty string.
* @param int $user_id User ID.
*/
$link = apply_filters( 'pre_get_edit_user_link', null, $user_id );
if ( null !== $link ) {
return $link;
}

Imho this would be a little more strict and it would also allow to return an empty link, if anyone fancies doing so. Besides that I like the solution


if ( ! $user_id ) {
$user_id = get_current_user_id();
}
Expand Down
Loading