You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中按账号天数或登录次数显示「欢迎回来」消息?

解决方案

要实现「登录次数达标或账号创建满指定天数后显示欢迎回来消息」的需求,需要两步操作:统计用户登录次数,再在欢迎消息逻辑中加入条件判断。

1. 统计用户登录次数

WordPress默认不记录用户登录次数,需通过wp_login钩子每次用户登录时更新计数:

// 记录用户登录次数
add_action('wp_login', 'track_user_login_count', 10, 2);
function track_user_login_count($user_login, $user) {
    $login_count = get_user_meta($user->ID, 'user_login_count', true);
    // 首次登录初始化为1,否则计数+1
    update_user_meta($user->ID, 'user_login_count', $login_count ? intval($login_count) + 1 : 1);
}

2. 修改原有欢迎消息逻辑

在你现有的vivid_login_page函数中,添加登录次数和账号天数的判断逻辑,替换原有的欢迎文本:

if(!function_exists('vivid_login_page'))
{
  function vivid_login_page()
  {
      if ( is_user_logged_in() ) {
          $current_user = wp_get_current_user();
          $first_name = $current_user->user_firstname; 
          $last_name = $current_user->user_lastname;
          
          // 自定义阈值(可按需修改)
          $required_login_count = 3; // 触发消息的登录次数
          $required_days = 2; // 触发消息的账号创建天数
          
          // 获取用户登录次数,未统计过则默认为0
          $login_count = get_user_meta($current_user->ID, 'user_login_count', true) ?: 0;
          // 计算账号创建至今的天数
          $registration_timestamp = strtotime($current_user->user_registered);
          $days_since_reg = floor((time() - $registration_timestamp) / (60 * 60 * 24));
          
          // 判断是否显示「欢迎回来」
          if ($login_count >= $required_login_count || $days_since_reg >= $required_days) {
              $greeting = '欢迎回来';
          } else {
              $greeting = "Hello {$first_name} {$last_name}";
          }
          
          // 输出修正后的导航栏(修复原代码多余的</span>语法错误)
          print "<div class='calltoactioncontent'>
                  <span>{$greeting}. | </span>
                  <a href='/my-account'>My account </a> | 
                  <a href='/wp-admin/profile.php'>My profile</a> | 
                  <a href='" . wp_logout_url() . "'>Logout</a>
                </div>";  
      } else { 
          print "<div class='calltoactioncontent'>
                  <span class='bolddd'>Hello visitor. </span>
                  <a href='/my-account'>Sign in</a> | 
                  <a href='/my-account/registration/'>Register account</a>
                </div>";  
      }
  }
  add_shortcode('vivid-login-page', 'vivid_login_page');
}

关键说明

  • 登录次数会自动存储在用户元数据user_login_count中,首次登录后开始计数
  • 账号天数通过用户注册时间与当前时间的差值计算,取整数天数
  • 两个阈值参数可根据实际需求自由调整
  • 修复了原代码中多余的</span>标签,避免HTML语法错误

内容的提问来源于stack exchange,提问作者user832

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:15:04