自定义注册表和密码

时间:2017-11-02 作者:tim r

总之,我已经在www.safetyworks上创建了一个自定义注册表。com/登录。

问题是密码字段。它允许用户提交表单,没有问题,但用户输入的初始密码不起作用。用户必须重置密码才能正常工作。以下是用于更新用户元数据的注册字段代码(我在自定义插件中使用):

 add_action( \'user_register\', \'myplugin_user_register\' );
    function myplugin_user_register( $user_id ) {
        if ( ! empty( $_POST[\'first_name\'] ) ) {
            update_user_meta( $user_id, \'first_name\', trim( $_POST[\'first_name\'] ) );
        }
        if ( ! empty( $_POST[\'last_name\'] ) ) {
            update_user_meta( $user_id, \'last_name\', trim( $_POST[\'last_name\'] ) );
        }
        if ( ! empty( $_POST[\'job_title\'] ) ) {
            update_user_meta( $user_id, \'job_title\', trim( $_POST[\'job_title\'] ) );
        }
        if ( ! empty( $_POST[\'billing_company\'] ) ) {
            update_user_meta( $user_id, \'billing_company\', trim( $_POST[\'billing_company\'] ) );
        }
        if ( ! empty( $_POST[\'address\'] ) ) {
            update_user_meta( $user_id, \'address\', trim( $_POST[\'address\'] ) );
        }
        if ( ! empty( $_POST[\'billing_city\'] ) ) {
            update_user_meta( $user_id, \'billing_city\', trim( $_POST[\'billing_city\'] ) );
        }
        if ( ! empty( $_POST[\'state\'] ) ) {
            update_user_meta( $user_id, \'state\', trim( $_POST[\'state\'] ) );
        }
        if ( ! empty( $_POST[\'billing_postcode\'] ) ) {
            update_user_meta( $user_id, \'billing_postcode\', trim( $_POST[\'billing_postcode\'] ) );
        }
        if ( ! empty( $_POST[\'phone_number\'] ) ) {
            update_user_meta( $user_id, \'phone_number\', trim( $_POST[\'phone_number\'] ) );
        }
        if ( ! empty( $_POST[\'password\'] ) ) {
            update_user_meta( $user_id, \'password\', trim( $_POST[\'password\'] ) );
        }
    }
我错过了什么?正如我所说,所有其他领域似乎都很好。

1 个回复
最合适的回答,由SO网友:mmm 整理而成

密码在数据库中进行哈希运算,然后需要将其设置为wp_update_user

wp_update_user([
    "ID" => $user_id,
    "user_pass" => $_POST[\'password\'],
]);

结束

相关推荐