Сохранение значения телефонного номера настраиваемого поля в WooCommerce My account & gt; Детали учетной записи

Попытка добавить поле для Woocommerce billing_phone в my-account/edit-account/. Он присутствует на страницах обновления адреса, но при добавлении в form-edit-account.php это не обновляет.

В настоящее время добавляем, следуя тому же коду, что и другие поля, такие как first_name:

<input type="text" class="form-control woocommerce-Input woocommerce-Input--phone input-text" name="billing_phone" id="billing_phone" value="<?php echo esc_attr( $user->billing_phone ); ?>" />

Изображение формы с billing_phone показывается как значение:

введите описание изображения здесь

Но при обновлении с новым номером он не меняется

Как сделать так, чтобы это было сохранено / обновлено?

1

Решение

Вам нужно добавить пользовательскую функцию, подключенную woocommerce_save_account_details Хук действия:

add_action( 'woocommerce_save_account_details', 'my_account_saving_billing_phone', 10, 1 );
function my_account_saving_billing_phone( $user_id ) {
$billing_phone = $_POST['billing_phone'];
if( ! empty( $billing_phone ) )
update_user_meta( $user_id, 'billing_phone', sanitize_text_field( $billing_phone ) );
}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Этот код протестирован на WooCommerce версии 3+ и работает. Данные будут обновлены и отображаются правильно.


Ваш полный код поля телефона для выставления счетов в form-edit-account.php должен выглядеть примерно так:

 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_phone" id="billing_phone" value="<?php echo esc_attr( $user->billing_phone ); ?>" />
</p>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]