Wordpress 在Woocommerce签出页面上更改密码

Wordpress 在Woocommerce签出页面上更改密码,wordpress,woocommerce,Wordpress,Woocommerce,我正在进行一项开发,我需要已经在我的网站上注册的用户在woocommerce结帐页面上强制更改密码 我尝试了经典的解决方案: add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields'); function custom_override_checkout_fields($fields) { $fields['account']['account_password'] = array(

我正在进行一项开发,我需要已经在我的网站上注册的用户在woocommerce结帐页面上强制更改密码

我尝试了经典的解决方案:

add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields');

function custom_override_checkout_fields($fields)
{
    $fields['account']['account_password'] = array(
      'type' => 'password',
      'required'  => true,
      'label' => __('Pass', 'woocommerce'),
      'placeholder' => _x('Pass', 'placeholder', 'woocommerce'),
      'class' => array('form-row-wide')
  );

    return $fields;
}
此模式仅适用于用户注册时的我,但不适用于更改其密码

你认为我应该做一个
wp\u set\u密码($password,$user\u id)?如果是这样,您会将代码放置在哪里

我需要一种方法来执行
更新
并从
wp\u用户
表中更改
用户通行证

试试看

add_action( 'woocommerce_checkout_update_user_meta', 'wc_checkout_field_update_user_meta' );

   function wc_checkout_field_update_user_meta( $user_id, $data ) { 

     if ( $data['account_password'] ) {   

       update_user_meta( $user_id, 'account_password', $data['account_password'] );
     }

}

我尝试了@Raihan代码和谷歌代码的混合,但是我无法更改
用户通行证。使用此代码,Woocommerce不会显示“内部服务器错误”

add_action( 'woocommerce_checkout_process', 'user_fields_woocommerce_checkout_process' );

function user_fields_woocommerce_checkout_process(){
    if( is_user_logged_in() ){
        add_action('woocommerce_checkout_update_user_meta',
        'my_custom_checkout_field_update_user_meta' );
    }
}

function my_custom_checkout_field_update_user_meta( $user_id ) {
    if ( $data['account_password'] ) {
        update_user_meta( $user_id, 'account_password', $data['account_password'] );
    }
}

谢谢你的回答!我对它进行了测试,但签出时抛出了字段帐户密码的“内部服务器错误”。我相信
woocommerce\u checkout\u update\u user\u meta
会从woocommerce更改用户数据,但不会从通用表
wp\u users
更改用户数据。我需要更改wordpress native
user\u pass
。您可能应该使用
wp\u set\u password
而不是
update\u user\u meta