У деяких випадках власникам магазинів може знадобитися додаткова інформація про своїх клієнтів. Наприклад, дата народження може бути потрібна для запису для певних покупок або для перевірки з інших причин. У сьогоднішній статті ми покажемо, як додати таке поле на вкладку «Відомості про обліковий запис» на сторінці «Мій обліковий запис», а потім для полегшення доступу відобразимо інформацію, введену на сторінці профілю користувача.

Встановіть та активуйте дочірню тему
Першим кроком у процесі додавання полів є створення та встановлення дочірньої теми. Цей крок важливий для збереження змін під час оновлень теми. В іншому випадку вам доведеться після кожного оновлення теми знову і знову вставляти цей код.
Весь наведений нижче код потрібно помістити у файл functions.php вашої дочірньої теми. Якщо файл порожній, розмістіть код відразу під тегом, що відкриває
Якщо файл містить щось, код повинен бути поміщений в кінець файлу, перед закриваючим тегом ?> PHP.
Створіть поле, що настроюється
Додати поле, що настроюється, досить просто. Ми будемо використовувати хук woocommerce_edit_account_form для додавання поля та woocommerce_save_account_details для збереження введеної інформації.
add_action( 'woocommerce_edit_account_form', 'cssigniter_add_account_details' );
function cssigniter_add_account_details() {
$user = wp_get_current_user();
?>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="dob"><?php esc_html_e( 'Date of birth', 'your-text-domain' ); ?></label>
<input type="date" class="woocommerce-Input woocommerce-Input--text input-text" name="dob" id="dob" value="<?php echo esc_attr( $user->dob ); ?>" />
</p>
<?php
}
add_action( 'woocommerce_save_account_details', 'cssigniter_save_account_details' );
function cssigniter_save_account_details( $user_id ) {
if ( isset( $_POST['dob'] ) ) {
update_user_meta( $user_id, 'dob', sanitize_text_field( $_POST['dob'] ) );
}
}
Створене нове поле з'явиться під полями керування паролями.

Дивіться також:
Відобразіть дані поля у профілі
Після того, як клієнт ввів дату свого народження, можна відобразити дані з цього поля на сторінці профілю користувача, щоб за необхідності скористатися цією інформацією.
add_action( 'show_user_profile', 'cssigniter_show_extra_account_details', 15 );
add_action( 'edit_user_profile', 'cssigniter_show_extra_account_details', 15 );
function cssigniter_show_extra_account_details( $user ) {
$dob = get_user_meta( $user->ID, 'dob', true );
if ( empty( $dob ) ) {
return;
}
?>
<h3><?php esc_html_e( 'Extra account details', 'your-text-domain' ); ?></h3>
<table class="form-table">
<tr>
<th><?php esc_html_e( 'Date of birth', 'your-text-domain' ); ?></label></th>
<td>
<p><?php echo esc_html( $dob ); ?></p>
</td>
</tr>
</table>
<?php
}
Щоб відобразити поле, використовуйте хуки show_user_profile та edit_user_profile з пріоритетом 15, щоб ця інформація відображалася під інформацією про виставлення рахунків та доставку WooCommerce.

За допомогою пари простих фрагментів коду ми додали поле облікового запису, що настроюється, і відобразили інформацію з цього поля на сторінці профілю користувача. Тепер можна використовувати нову інформацію для покращення купівельного досвіду для ваших клієнтів та полегшити роботу власників магазинів.
Джерело: www.cssigniter.com





















Коментарі до запису: 0