Обновление 2
Сначала посмотрите эту официальную документацию , чтобы понять, как вы можете переопределить шаблоны Woocommerce через активную дочернюю тему (илиактивировать их) .
Чтобы добавить поле Age в раздел «Моя учетная запись»> «Изменить учетную запись», откройте / отредактируйте myaccount/form-edit-account.php
файл шаблона.
Заменить изстроки 36–40 следующего блока кода (включая поле «возраст») :
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="account_display_name"><?php esc_html_e( 'Display name', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_display_name" id="account_display_name" value="<?php echo esc_attr( $user->display_name ); ?>" /> <span><em><?php esc_html_e( 'This will be how your name will be displayed in the account section and in reviews', 'woocommerce' ); ?></em></span>
</p>
<div class="clear"></div>
По этому блоку кода:
<p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
<label for="account_age"><?php esc_html_e( 'Age', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_age" id="account_age" value="<?php echo isset($user->age) ? esc_attr( $user->age ) : ''; ?>" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--last form-row form-row-last">
<label for="account_display_name"><?php esc_html_e( 'Display name', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_display_name" id="account_display_name" value="<?php echo esc_attr( $user->display_name ); ?>" /> <span><em><?php esc_html_e( 'This will be how your name will be displayed in the account section and in reviews', 'woocommerce' ); ?></em></span>
</p>
<div class="clear"></div>
Чтобы сохранить значение поля возраста в базе данных:
add_action('woocommerce_save_account_details', 'save_account_details_age', 20, 1 );
function save_account_details_age( $user_id ) {
if ( isset($_POST['account_age']) ) {
update_user_meta($user_id, 'age', sanitize_text_field($_POST['account_age'] ) );
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.