Измените свой пароль на странице оформления заказа в Woocommerce - PullRequest
1 голос
/ 18 февраля 2020

Я работаю над разработкой, и мне нужно, чтобы пользователи уже зарегистрировались на моем сайте , обязательно изменили свой пароль на странице оформления заказа в woocommerce.

Я попробовал classi c решение:

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_set_password( $password, $user_id );? Если это так, , куда бы вы поместили код ?

Мне нужен способ сделать UPDATE и изменить user_pass из таблицы wp_users.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Я пытался смешать код @Raihan и код Google, но Я не могу изменить user_pass. С этим кодом не отображается «Внутренняя ошибка сервера» от 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'] );
    }
}
0 голосов
/ 18 февраля 2020

Попробуйте.

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'] );
     }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...