Home Trying to get property of non-object Notice in custom avatar function for Wordpress

# Trying to get property of non-object Notice in custom avatar function for Wordpress

evavienna
1#
evavienna Published in 2018-01-12 21:17:36Z
 The following custom avatar functions works fine, but I get the following notice "Trying to get property of non-object in..." The notice says the problem is on the last part of the function I pasted here - I marked it in the code (look for <-- Notice mentions this line) Any idea how to fix this? I am stuck... function test_get_avatar($avatar,$id_or_email, $size,$default, $alt) { if (!is_numeric($id_or_email)) { if (is_string($id_or_email)) {$user = get_user_by('email', $id_or_email);$id_or_email = $user->ID; } else if (is_object($id_or_email)) { if (!empty($id_or_email->ID)) {$id_or_email = $id_or_email->ID; } if (!empty($id_or_email->comment_author_email)) { $user = get_user_by('email',$id_or_email->comment_author_email); $id_or_email =$user->ID; <-- Notice mentions this line } } } $avatar_id = get_user_meta($id_or_email, 'nicobartes_user_avatar', true); ... 
gview
2#
 Yes, because get_user_by() can fail and return false. At that point you won't have a wp user object. A test around this code would be: if ($user = get_user_by('email',$id_or_email->comment_author_email)) { $id_or_email =$user->ID; } else { //Whatever you want to do when this lookup fails $id_or_email = 0; }  JakeParis 3# JakeParis Reply to 2018-01-12 21:31:25Z  When you run $user = get_user_by('email', $id_or_email->comment_author_email);  You should check the value of $user before attempting to get the id on the next line. According to the Wordpress docs, it could potentially be false if no user is found.