check wp_login into a plugin

时间:2016-10-31 作者:El0din

我正在编写一个插件,用于将用户保存在表中,我使用以下代码:

function crear_bd_empleados() {
    global $wpdb;   
    $tabla_empleado = $wpdb->prefix.\'myUser\';       
    global $current_user;
    wp_get_current_user(); 
    $usuario = $current_user->user_login;
    $alias = $current_user->display_name;
    $nombre = $current_user->user_firstname.$current_user->user_lastname;
    $correo = $current_user->user_email;

    if (is_user_logged_in()){       
        $wpdb->insert( 
            $tabla_empleado, 
            array( 
                \'usuario\' => $usuario, 
                \'alias\' => $alias, 
                \'nombre\' => $nombre, 
                \'correo\' => $correo,                
            ) 
        );      
    }   
}
当我使用register_activation_hook( __FILE__, \'crear_bd_empleados\' ); 它工作正常,但我需要在用户登录页面时注册用户add_action(\'wp_login\', \'crear_bd_empleados\'); 不工作。我该怎么做?Thx!

1 个回复
SO网友:Waleed

好的,只有当用户联机时,才能在全局$current\\u user变量中获取用户数据,或者换句话说,这是当前登录用户的数据。

我认为问题不在于挂钩或数据,而在于插入代码。应该是这样的:

// You get two parameters, 2nd param is the user object
function crear_bd_empleados( $user_login, $user ) {
    global $wpdb;   
    $tabla_empleado = $wpdb->prefix.\'myUser\';       
    $current_user = $user;
    $usuario = $current_user->user_login;
        $alias = $current_user->display_name;
        $nombre = $current_user->user_firstname.$current_user->user_lastname;
        $correo = $current_user->user_email;

        $wpdb->insert( 
            $tabla_empleado, 
            array( 
                \'usuario\' => $usuario, 
                \'alias\' => $alias, 
                \'nombre\' => $nombre, 
                \'correo\' => $correo,                
            ),
            // You need to provide insert value types, %s = string in this case
            array(\'%s\',\'%s\',\'%s\',\'%s\')
        );     

}
// Register for wp_login with 2 params and priority = 10
add_action(\'wp_login\', \'crear_bd_empleados\', 10, 2);
根据wiki:https://codex.wordpress.org/Plugin_API/Action_Reference/wp_login 在wp\\u登录挂钩处,用户已登录。

编辑:wp\\u login发送两个参数,您可以使用第二个参数获取用户数据,无需再次查询。

相关推荐