Как говорится в WP комьюнити,
you're doing it wrong :)
wp_signon() возвращает объет
WP_Error или
WP_User (в случае неудачи или успешной авторизации соответственно). Если они вам не нужны в полном виде (а они таки не нужны в 99,99% случаев) - зачем вообще их возвращать? Проверяйте в обработчике, если это
WP_Error - берите его, вынимайте саму ошибку и отправляйте ее через
wp_send_json_error() (
дока). Если пришел объект
WP_User - берите из него что нужно (например,
display_name) и возвращайте данные через
wp_send_json_success() (
дока). Для дальнейшей работы с данными пользователя у вас уже будет доступ к объекту
WP_User через функцию
wp_get_current_user() (
дока).