Сделайте поля профиля пользователя и поля оплаты одинаковыми на странице редактирования учетной записи Woocommerce - PullRequest
1 голос
/ 02 ноября 2019

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

Я отобразил поле billing_email на странице редактирования учетной записи Woocommerce, а затем попытался обновить update_user_metaa, но он не работает.

// add_action( 'woocommerce_edit_account_form_start', 'add_billing_email_to_edit_account_form' ); // At start
add_action( 'woocommerce_edit_account_form_start', 'add_billing_details_to_edit_account_form' ); 
function add_billing_details_to_edit_account_form() {
    $user = wp_get_current_user();
    ?>

<p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
<label for="billing_email"><?php _e( 'Email Address', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="billing_email" id="billing_email" value="<?php echo esc_attr( $user->billing_email ); ?>" />
</p>
<?php
}
add_action( 'woocommerce_save_account_details', 'my_account_saving_billing_user', 20, 1 );
function my_account_saving_billing_user( $user_id ) {
if( isset($_POST['billing_email']) && ! empty($_POST['billing_email']) )    
update_user_meta( $user_id, 'account_email', sanitize_text_field($_POST['billing_email']) );    
}

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

billing_email и user_email или account_email должны совпадать.

1 Ответ

0 голосов
/ 02 ноября 2019

добавьте это в файл functions.php, и когда вы смените учетную запись в одном или другом месте, оба изменится, поэтому оба места будут одинаковыми. Если вам не хватает какой-либо информации, дайте мне знать:

add_action( 'woocommerce_save_account_details', 'my_account_saving_billing_user', 20, 1 );

function my_account_saving_billing_user( $user_id ) {

    if( isset( $_POST['account_email'] ) && $_POST['account_email'] != '' ){
        update_user_meta( $user_id, 'billing_email', sanitize_text_field( $_POST['account_email'] ) );
    }
}



add_action( 'woocommerce_customer_save_address', 'save_billing_email_to_user', 12, 1 );
function save_billing_email_to_user( $user_id ) {
    if( isset( $_POST['billing_email'] ) && $_POST['billing_email'] != '' ){
        $args = array(
            'ID'         => $user_id,
            'user_email' => sanitize_text_field( esc_attr( $_POST['billing_email'] )) 
        );
        wp_update_user( $args );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...