Как добавить собственные поля WooCommerce

Как добавить собственные поля WooCommerce

Konark 25 апреля, 2021 Комментариев (0)

Часто магазинам требуется собирать больше информации о заказе, чем предоставляет WooCommerce из коробки.

Например, для доставки может понадобиться такое поле как «количество палочек для суши» или что-то подобное. По умолчанию, конечно же, такой специфичный кейс WooCommerce не покрывает.

Поэтому, добавляем свои поля. Вставлять код нужно в functions.php:

<?php
add_filter( 'woocommerce_billing_fields', 'custom_woocommerce_billing_fields' );
function custom_woocommerce_billing_fields( $fields ) {
    $fields['billing_gender'] = array(
        'label' => __( 'Gender', 'kadence-child' ),
        'required' => true,
        'clear' => false,
        'type' => 'select',
		'options' => array(
			'' => __( 'Select gender', 'kadence-child' ),
			'male' => __( 'Male', 'kadence-child' ),
			'female' => __( 'Female', 'kadence-child' )
		),
		'priority' => 4,
		'class' => array( 'form-row-wide' )
    );

	$fields['billing_title'] = array(
		'label' => __( 'Title', 'kadence-child' ),
		'placeholder' => __( 'Title', 'kadence-child' ),
		'required' => false,
		'clear' => true,
		'type' => 'text',
		'priority' => 5,
		'class' => array( 'form-row-wide' )
	);

	$fields['billing_addition'] = array(
		'label' => __( 'Addition', 'kadence-child' ),
		'placeholder' => __( 'Addition', 'kadence-child' ),
		'required' => false,
		'clear' => true,
		'type' => 'text',
		'priority' => 25,
		'class' => array( 'form-row-wide' )
	);

	return $fields; 
}

Как Вы уже могли заметить, мы используем для этого хук woocommerce_billing_fields.

Выше мы добавили три кастом поля. Два типа текст и один выпадающий список.

Давайте разберемся за что отвечают некоторые элементы массива. Название поля которое мы будем использовать в дальнейшем в коде нужно прописывать здесь $fields[‘name’].

label — название поле, которое отображается;
placeholder — текст который отображается в незаполненном поле, плейсхолдер;
required — обязательно ли поле к заполнению;
type — тип поля (text, select, textarea и тд);
priority — приоритет поля, с помощью приоритета можно управлять расположением поля;
class — добавить дополнительный класс или классы на обертку Вашего поля, к примеру, для стилизации. Вот, список стандартных классов которые можно использовать: form-row-first – 50% ширины (слева), form-row-last – 50% ширины (справа), form-row-wide – 100% ширины.

После этого, настоятельно рекомендую добавить эти поля как минимум на страницу после заказа.

Просмотров: 82

Добавить комментарий

Ваш e-mail не будет опубликован. Имя и e-mail обязательны для заполнения.