У деяких випадках власникам магазинів може знадобитися додаткова інформація про своїх клієнтів. Наприклад, дата народження може бути потрібна для запису для певних покупок або для перевірки з інших причин. У сьогоднішній статті ми покажемо, як додати таке поле на вкладку «Відомості про обліковий запис» на сторінці «Мій обліковий запис», а потім для полегшення доступу відобразимо інформацію, введену на сторінці профілю користувача.
Встановіть та активуйте дочірню тему
Першим кроком у процесі додавання полів є створення та встановлення дочірньої теми. Цей крок важливий для збереження змін під час оновлень теми. В іншому випадку вам доведеться після кожного оновлення теми знову і знову вставляти цей код.
Весь наведений нижче код потрібно помістити у файл 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