-
Notifications
You must be signed in to change notification settings - Fork 43
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
fix: user meta retrieval #302
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition to the requested changes, I see a few other places that we are doing a get_user_meta
call that probably make sense to update to this new get_user_local_avatar
method:
* @param int $user_id User ID. | ||
* @return array Array with avatar data. | ||
*/ | ||
public static function get_user_local_avatar( $user ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use the variable $user_id
but the only variable passed in is $user
. I think that just needs updated:
public static function get_user_local_avatar( $user ) { | |
public static function get_user_local_avatar( $user_id ) { |
* @param int $user_id User ID. | ||
* @return array Array with avatar data. | ||
*/ | ||
public static function get_user_local_avatar( $user ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because this method is marked as static
, we get an error when trying to use $this
later on
@@ -343,7 +357,7 @@ public function get_simple_local_avatar_url( $id_or_email, $size ) { | |||
} | |||
|
|||
// Fetch local avatar from meta and make sure it's properly set. | |||
$local_avatars = get_user_meta( $user_id, $this->user_key, true ); | |||
$local_avatars = self::get_user_local_avatar( $user_id ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we change the above method to not be static, this will need updated:
$local_avatars = self::get_user_local_avatar( $user_id ); | |
$local_avatars = $this->get_user_local_avatar( $user_id ); |
@@ -1181,7 +1195,7 @@ public function ajax_assign_simple_local_avatar_media() { | |||
* @param int $user_id User ID. | |||
*/ | |||
public function avatar_delete( $user_id ) { | |||
$old_avatars = (array) get_user_meta( $user_id, $this->user_key, true ); | |||
$old_avatars = self::get_user_local_avatar( $user_id ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$old_avatars = self::get_user_local_avatar( $user_id ); | |
$old_avatars = $this->get_user_local_avatar( $user_id ); |
@@ -343,7 +357,7 @@ public function get_simple_local_avatar_url( $id_or_email, $size ) { | |||
} | |||
|
|||
// Fetch local avatar from meta and make sure it's properly set. | |||
$local_avatars = get_user_meta( $user_id, $this->user_key, true ); | |||
$local_avatars = $this->get_user_local_avatar( $user_id ); | |||
if ( empty( $local_avatars['full'] ) ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This condition might cause a PHP notice or warning if the get_user_local_avatar()
method returns an array that doesn't have the full
key or if an empty array is returned. To avoid the notice, we can check if the key exists before accessing it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a check in eeb66bc
@adekbadek thanks for the PR; are you able to respond to the code review items here? |
@jeffpaul – sorry for the late reply – I've addressed the review now. |
Description of the Change
Add sanity checks to the user meta values read from the DB. We've seen this user data malformatted – maybe it was in migration from another WP instance.
How to test the Change
simple_local_avatar
meta of a user to an empty stringsimple_local_avatar
meta of another user to an object (e.g.update_user_meta(<id>, 'simple_local_avatar', (object) ['value' => 42])
)develop
branchChangelog Entry
Checklist: