Saving Objects In WordPress’ User Meta

There’s a hole in the wall at about head level next to my desk.

I’ve spent most of the day trying to track down a bug with some code I’ve been working on to add fields to a user’s profile in WordPress. The problem is that upon trying to save the profile I’d get an error like the following:

Catchable fatal error: Object of class stdClass could not be converted to string in /wp-includes/wp-db.php on line 472

Line 472 in my install is in the wpdb::escape() function. After poking around the wrong side of the problem, I finally broke down and rewrote the function along these lines:

function escape($string) {
 if( !is_object( $string ))
 return( $string );

 echo '

<h2>
  '. $this->get_caller() .'
</h2>

<pre>';
 print_r( $string );
 echo '
```';
 die();
}
</pre>

That’s how I finally learned that [`wp_update_user()` was at fault][2]. I also opened [a ticket for `add_magic_quotes()`][3]````
, as both probably need independent fixes.` 
For now, however, I'm just converting the object to an array and avoiding the mess.`
```

``