Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
Теми
Уроки
Хакі

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

Додавання поля WooCommerce до облікового запису

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Встановіть та активуйте дочірню тему

Першим кроком у процесі додавання полів є створення та встановлення дочірньої теми. Цей крок важливий для збереження змін під час оновлень теми. В іншому випадку вам доведеться після кожного оновлення теми знову і знову вставляти цей код.

Весь наведений нижче код потрібно помістити у файл 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'] ) );
	}
}

Створене нове поле з'явиться під полями керування паролями.

Нове поле

Дивіться також:

Як в WooCommerce встановити мінімальну суму замовлення

Відобразіть дані поля у профілі

Після того, як клієнт ввів дату свого народження, можна відобразити дані з цього поля на сторінці профілю користувача, щоб за необхідності скористатися цією інформацією.

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.

Відображення поля облікового запису WooCommerce

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

Джерело: www.cssigniter.com

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, що спеціалізується на створенні сайтів WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

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

Додати коментар або відгук