详情
评论
问答

子比美化 - 为登录用户添加安全提示弹窗功能

在网站运营中,账户安全是用户关注的核心之一。为了让用户更清晰地了解自己的登录状态,我们可以通过子比主题功能扩展,实现「用户登录后右下角安全提示弹窗」功能。该功能不仅能展示当前登录的 IP 地址和时间,还能在检测到异常登录 IP 时发出提醒,同时支持弹窗关闭与临时隐藏,兼顾安全性与用户体验

图片[1]-子比美化 - 为登录用户添加安全提示弹窗功能-黑猫博客

功能亮点速览

这个登录安全提示功能主要包含以下特性:
  • 场景限制:仅在用户登录且非移动端设备时显示,避免移动端界面拥挤
  • 信息展示:清晰呈现当前登录的 IP 地址和具体时间,让用户掌握登录状态
  • 异常提醒:若本次登录 IP 与上次不同,自动切换为 "新登录地点" 警告提示
  • 交互优化:支持一键关闭弹窗,且通过 Cookie 记录关闭状态(1 天内不再显示)
  • 样式适配:弹窗设计简洁美观,包含图标、动画效果,支持暗色模式,与子比主题风格协调

实现步骤:3 步完成功能添加

1. 确定添加位置

根据子比主题特性,代码可添加到两个位置:
  • 子比主题根目录的 func.PHP 文件(推荐,子比主题专用扩展文件)
  • 网站主题的 functions.php 文件(通用位置,适用于多数 WordPress 主题)

2. 复制代码

将以下完整代码复制到上述文件中(建议放在文件末尾,避免与其他代码冲突)

3. 保存生效

添加代码后保存文件,用户登录网站(非移动端)时,右下角会自动弹出安全提示弹窗。

代码核心逻辑解析

为了方便后续定制修改,我们可以拆解代码的核心功能:
  1. 触发条件判断
    通过 is_user_logged_in() 确认用户已登录,!wp_is_mobile() 限制仅在非移动端显示,避免影响移动端体验。
  2. 登录信息获取与存储
    • 登录 IP:优先通过 HTTP_X_FORWARDED_FOR 获取(兼容代理场景),否则使用 REMOTE_ADDR
    • 登录时间:通过 current_time('mysql') 获取 WordPress 标准时间
    • 上次信息对比:通过 get_user_meta 读取上次登录的 IP 和时间,与本次对比后,再用 update_user_meta 更新为本次信息
  3. 弹窗样式设计
    • 定位:固定在右下角(bottom:20px; right:20px),避免遮挡核心内容
    • 动画:通过 alertSlide 动画实现平滑弹出效果
    • 响应式:@media (max-width:768px) 强制隐藏移动端弹窗
    • 异常样式:当检测到新 IP 时,底部提示栏切换为黄色警告样式(warning类)
  4. 交互逻辑
    • 关闭功能:点击关闭按钮时,隐藏弹窗并设置 Cookie(zib_security_closed),1 天内不再显示
    • 页面加载检查:通过 JS 判断 Cookie 状态,若已关闭则直接隐藏弹窗

注意事项

  • 代码添加前建议备份 func.php 或 functions.php 文件,避免操作失误导致网站异常
  • 子比主题用户优先选择 func.php(主题根目录),避免主题更新时覆盖 functions.php
  • 弹窗 Cookie 有效期为 1 天,若需调整可修改 JS 中 date.setDate(date.getDate() + 1) 的数字(1=1 天)
  • 暗色模式适配:样式中使用 rgba 透明背景和 currentColor 颜色,可自动适配主题的暗色模式
通过这个功能,既能增强用户对账户安全的感知,又不会过度干扰用户体验,是子比主题网站提升安全性的实用优化方案。
温馨提示: 本文最后更新于2025-08-18 16:45:31,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 黑猫
本站代码模板仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
© 版权声明
THE END
喜欢就支持一下吧~
点赞1137赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容