В некоторых случаях владельцам магазинов может понадобиться дополнительная информация о своих клиентах. Например, дата рождения может потребоваться в записи для определенных покупок или для проверки по другим причинам. В сегодняшней статье мы покажем, как добавить такое поле на вкладку «Сведения об учетной записи» на странице «Моя учетная запись», а затем для облегчения доступа отобразим информацию, введенную на странице профиля пользователя.
Установите и активируйте дочернюю тему
Первым шагом в процессе добавления полей является создание и установка дочерней темы. Этот шаг важен для сохранения ваших изменений во время обновлений темы. В противном случае, вам придется после каждого обновления темы снова и снова вставлять этот код.
Весь приведенный ниже код нужно поместить в файл functions.php вашей дочерней темы. Если файл пуст, разместите код сразу под открывающим тегом <? 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