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

WordPress短代码脚本无法记录登录用户信息至数据库表问题排查

问题排查与修复方案

1. 短代码未注册

你只定义了save_logged_in函数,但没有将其注册为WordPress短代码,页面中的短代码标签无法触发函数执行。

修复:在函数定义后添加短代码注册代码:

add_shortcode('save_user_session', 'save_logged_in');

之后在目标页面中使用[save_user_session]短代码即可触发逻辑。

2. 变量覆盖导致用户属性获取失败

你先将$user赋值为用户对象,后续又用$user = $user->user_login把它覆盖成字符串,导致后续获取$user->user_email、$user->user_firstname等属性时直接报错,插入逻辑中断。

修复:更换变量名存储登录名:

$user_login = $user->user_login;
$email = $user->user_email;
$name = $user->user_firstname;
$family = $user->user_lastname;

3. 页面ID判断的类型不匹配

get_queried_object_id()返回的是数字类型的页面ID,你用字符串"228"做比较,虽PHP会自动类型转换,但可能出现意外不匹配,建议直接用数字比较:

if ($page_id == 228) {

4. 数据库表与字段验证

  • 确认wp_session_capture(默认表前缀为wp_)已正确创建,且包含login_name、email、fname、lname、date字段,字段类型需匹配(比如date为datetime类型,login_name为字符串类型)。
  • 可在插入语句后添加错误调试代码,查看具体数据库错误:
if (!$wpdb->insert(/* ... */)) {
    echo '数据库错误:' . $wpdb->last_error;
}

5. 开启调试模式排查隐藏错误

在wp-config.php中添加以下代码开启调试,错误会记录到wp-content/debug.log:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

修正后的完整代码

<?php
function save_logged_in(){
    $user = wp_get_current_user();

    if ($user->is_user_logged_in()){
        $page_id = get_queried_object_id();

        if ($page_id == 228){
            global $wpdb;

            $table_name = $wpdb->prefix . 'session_capture';  

            $user_login = $user->user_login;
            $email = $user->user_email;
            $name = $user->user_firstname;
            $family = $user->user_lastname;
            $dt = current_time('mysql');

            $insert_result = $wpdb->insert(
                $table_name,
                array(
                    'login_name' => $user_login, 
                    'email' => $email, 
                    'fname' => $name,   
                    'lname' => $family, 
                    'date' => $dt
                )
            );

            // 调试用,上线前删除
            if (!$insert_result) {
                echo '数据库错误:' . $wpdb->last_error;
            }
        }
    }
}
// 注册短代码
add_shortcode('save_user_session', 'save_logged_in');
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:41:10