user10678889
user10678889

Reputation:

Fatal error: Uncaught Error: Cannot use object of type WP_Error as array

Am trying to fetch user data from wordpress table. When I put the data into an array it shows me an fatal error.

This is my php code:

$getuser_data = $wpdb->get_results($user_query);
$userdata = array();
        foreach($getuser_data as $data)
        {

            $userfeed['username'] = $data->user_login;
            $userfeed['name'] = $data->user_email;
            $userfeed['email'] = $data->display_name;

            $userfeed['user_id'] = $data->ID;
            $userfeed['profile_pic'] = get_wp_user_avatar_src($data->ID);
            $usercount = count($getuser_data);


        }
        $userdata[] = $userfeed;

Its showing the fatal error Cannot use object of type WP_Error as array in last line $userdata[]. Any help would be appreciated. Thanks in advance.

Upvotes: 3

Views: 12843

Answers (1)

gjzim
gjzim

Reputation: 633

There might be something wrong with the $user_query and as a result $wpdb->get_results($user_query) is returning WP_Error object instead of the query result. Wrap the code inside the following block and check what's the error.

if( !is_wp_error( $getuser_data ) ) {
  $userdata = array();
  foreach($getuser_data as $data)
  {

    $userfeed['username'] = $data->user_login;
    $userfeed['name'] = $data->user_email;
    $userfeed['email'] = $data->display_name;

    $userfeed['user_id'] = $data->ID;
    $userfeed['profile_pic'] = get_wp_user_avatar_src($data->ID);
    $usercount = count($getuser_data);

    $userdata[] = $userfeed;
  }

} else {
  echo $getuser_data->get_error_message();
}

Upvotes: 8

Related Questions