Вызывая параметр, получим нулевую ошибку возврата UTF8 в formatting.php

Я получаю связанную Catchable фатальную ошибку: объект класса WP_User не может быть преобразован в строку в /wp-includes/formatting.php в строке 766. Я нашел поток, который относится к https://wordpress.org/support/topic / catchable-фатальные ошибки объектны-класс из-wp_error-мог-не-быть преобразованы в строку-11

Я использую php, который, я думаю, должен работать:

add_filter('gform_field_value_pm_first', 'populate_pm_first');
function populate_pm_first($value){
    return $user_info = get_userdata(get_current_user_id());
      $first_name = $user_info->first_name;
      echo "$first_name";

}

Ошибка, которую я получаю, относится к formatting.php:

/ **

 * Checks for invalid UTF8 in a string.
 *
 * @since 2.8.0
 *
 * @param string $string The text which is to be checked.
 * @param boolean $strip Optional. Whether to attempt to strip out invalid UTF8. Default is false.
 * @return string The checked text.
 */
function wp_check_invalid_utf8( $string, $strip = false ) {
    $string = (string) $string;

        if ( 0 === strlen( $string ) ) {
        return '';
    }

2 ответа

Вы должны вернуть имя пользователя в виде строки вместо всего пользователя object,

 add_filter('gform_field_value_pm_first', 'populate_pm_first');
 function populate_pm_first($value)
 {
      $user_info = get_userdata(get_current_user_id());
      $first_name = $user_info->first_name;
      return $first_name; // return user name string
      //echo "$first_name";
 }

Я думаю, что синтаксис:

$first_name = $user_info->user_firstname;

Может стоит попробовать. Надеюсь это поможет:)

Другие вопросы по тегам