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

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#
gview Reply to 2018-01-13 10:17:42Z

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.

You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.580734 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO