wpdb - $wpbd->insert() does not insert user data

I am having trouble inserting logged-in user data, using the 'user_register' hook. The following code inserts

I am having trouble inserting logged-in user data, using the 'user_register' hook. The following code inserts a row in the database, but only inserts the 'email' column.

function nuevoPostulante()
    {
        global $wpdb;
        $tablaPostulante = $wpdb->prefix . 'postulante';
        $current_user = wp_get_current_user();
        $wpdb->insert(
            $tablaPostulante,
            array(
                'dni' => $current_user->user_login,
                'nombre' => $current_user->display_name,
                'email' => '[email protected]',
            )
        );
    }

    add_action('user_register', 'nuevoPostulante');

Columns with values ​​taken from '$ current_user' are empy, the insert do not seem to take data from the array.

I think it's a scope problem, I still don't understand how to fix it. Somebody could help me? Thank you!

I am having trouble inserting logged-in user data, using the 'user_register' hook. The following code inserts a row in the database, but only inserts the 'email' column.

function nuevoPostulante()
    {
        global $wpdb;
        $tablaPostulante = $wpdb->prefix . 'postulante';
        $current_user = wp_get_current_user();
        $wpdb->insert(
            $tablaPostulante,
            array(
                'dni' => $current_user->user_login,
                'nombre' => $current_user->display_name,
                'email' => '[email protected]',
            )
        );
    }

    add_action('user_register', 'nuevoPostulante');

Columns with values ​​taken from '$ current_user' are empy, the insert do not seem to take data from the array.

I think it's a scope problem, I still don't understand how to fix it. Somebody could help me? Thank you!

Share Improve this question edited Oct 2, 2019 at 21:59 AgustinContreras asked Oct 2, 2019 at 20:50 AgustinContrerasAgustinContreras 32 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 0

user_register action allows you to access data for a new user immediately after they are added to the database. The user id is passed to hook as an argument.

So you wish to insert record for user when user register you can modify your code like follows:

add_action( 'user_register', 'nuevoPostulante', 10, 1 );
function nuevoPostulante( $user_id ) {
    global $wpdb;
    $tablaPostulante = $wpdb->prefix . 'postulante';
    $current_user = get_user_by( 'ID', $user_id ); // You can use get_userdata( $user_id ) instead of get_user_by() both can be work perfectly suite your requirement.
    $wpdb->insert(
        $tablaPostulante,
        array(
            'dni' => $current_user->user_login,
            'nombre' => $current_user->display_name,
            'email' => '[email protected]',
        )
    );
}

It's probably beacause of the simple fact that when a user (can) register for a site, then no user is logged in (yet), hence the object returned from wp_get_current_user() is empty.

Try checking and using values from the $_POST array instead.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745110662a4611830.html

相关推荐

  • wpdb - $wpbd->insert() does not insert user data

    I am having trouble inserting logged-in user data, using the 'user_register' hook. The following code inserts

    9小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信