0

您好,我需要在登录后添加计算用户登录次数的操作

到目前为止,我的代码是:

function count_logins($user_login, $wp_user) {

    $metaName = 'logins_count_since_release-0-0';

    $login_count = (int)get_user_meta($wp_user->ID, $metaName, true);
    $login_count++;

    update_user_meta($wp_user->ID, $metaName, $login_count);

    error_log('WAS HERE');

}

add_action('wp_login', 'count_logins', 10, 2);

我也尝试过 wp_authenticate 而不是 wp_login 但这仍然不起作用。

我在 header.php 文件中添加了这段代码

问题是,在我使用 theme-my-login 登录并检查我的 apache2 error.log 后,我没有“WAS HERE”行,所以我猜这个 theme-my-login 在登录后使用了不同的操作,对吗?

什么是正确的行动?

谢谢。

编辑/解决

我把它移到 wp-includes/user.php

因为我有一个定制的主题

function count_logins($username) {

    $user_id = username_exists($username);
    $metaName = 'logins_count_since_release-0-0';

    $login_count = (int)get_user_meta($user_id, $metaName, true);
    $login_count++;

    update_user_meta($user_id, $metaName, $login_count);

}

add_action('wp_authenticate', 'count_logins', 10, 1);
4

1 回答 1

0

将此代码添加到主题加载/动作挂钩文件中,header.php 是模板文件。您的操作在header.php 加载之前已经完成。

WordPress 文档

http://codex.wordpress.org/Plugin_API/Action_Reference/wp_authenticate

于 2013-05-22T16:05:15.757 回答