I wrote a plugin that creates a very customized user profile page, with custom fields interspersed among default fields. I used the files profile.php and user_edit.php as templates so I could incorporate the necessary code from them.
All seems to work well until I get to these lines:
if ( IS_PROFILE_PAGE ) do_action( 'show_user_profile', $profileuser ); else do_action( 'edit_user_profile', $profileuser );
This triggers an error when another plugin tied to those actions tries to treat $profileuser as an object, even though it has successfully been treated as an object throughout my plugin.
To troubleshoot, I caused the other plugin to
var_dump($profileuser) and found that it returns null. But when the default profile page is loaded, the other plugin successfully dumps the object. This leads me to believe that the object $profileuser is not being passed correctly as an argument in my do_action line.
Any ideas on what I should check? Thank you.