将 "My Account" 更改为 "Username" WooCommerce 侧边栏

Change "My Account" to "Username" WooCommerce sidebar

我想在登录后为用户显示而不是默认单词我的帐户我想显示用户名,我试过此代码但它没有显示任何内容!

它似乎无法识别位于 wp-content/themes/themeName/framework/functions/woo-account.php

的文件中的变量 $current_user
printf( __( '%s', 'wpdance' ),$current_user->user_lastname);

它是:

printf( __( 'My Account', 'wpdance' ));

而且我还尝试使用此代码获取所有内容:

<?php global $current_user;
  get_currentuserinfo();

  echo 'Username: ' . $current_user->user_login . "\n";
  echo 'User email: ' . $current_user->user_email . "\n";
  echo 'User level: ' . $current_user->user_level . "\n";
  echo 'User first name: ' . $current_user->user_firstname . "\n";
  echo 'User last name: ' . $current_user->user_lastname . "\n";
  echo 'User display name: ' . $current_user->display_name . "\n";
  echo 'User ID: ' . $current_user->ID . "\n";

?>

但是User first name:User last name:是空的!

有人有什么建议或想法吗?

提前致谢!

尝试调用

global $current_user;
get_currentuserinfo();

之前

printf( __( '%s', 'wpdance' ),$current_user->user_lastname);

https://codex.wordpress.org/Function_Reference/get_currentuserinfo#Examples

您确定姓氏始终已设置吗?也许你可以确保 $current_user 有效,如果 $current_user->ID 至少 returns 一个值。

并在您的 wp_config.php 中启用调试也可能有助于显示所有通知和错误:

define( 'WP_DEBUG', true );

https://codex.wordpress.org/Debugging_in_WordPress

最好的方法是使用wp_get_current_user() (不需要任何全局变量)和一个条件来确保用户已登录:

if ( is_user_logged_in() ) {
    $user_info = wp_get_current_user();
    $user_last_name = $user_info->user_lastname;
    printf( __( '%s', 'wpdance' ), $user_last_name );
}

或全名:

if ( is_user_logged_in() ) {
    $user_info = wp_get_current_user();
    $user_complete_name = $user_info->user_firstname . ' ' . $user_info->user_lastname;
    printf( __( '%s', 'wpdance' ), $user_complete_name );
}

参考文献: