Бот-информер доступности сайта   •   Магазин расширений
300 просм
0 комм
Поделиться:

Добавляем пользовательское поле в настройки WooCommerce

Изо дня в день я решаю различные нестандартные задачи. Будь то доработка имеющегося функционала или его расширение, или же создание чего-то нового. Хороший веб-мастер, на мой взгляд, славится тем, что, казалось бы, сложную задачу может решить как можно проще, при этом сохранив простоту в использовании наработок.

Говоря о WordPress, а именно о его плагине «WooCommerce», могу отметить, что частенько возникают задачи, где необходимо создавать различные фишки для магазина. Вывод дополнительных заголовков или создание, например, таймера (вставить скрипт на сайт труда особого не составит) – одно, а вот сделать так, чтобы данные для этого подгружались с панели управления – уже вопрос посерьезней.

Так вот, для того чтобы создать свое пользовательское поле в настройках плагина WooCommerce, вам нужно проделать пару несложных шагов, о которых я вам и расскажу.

Создание пользовательского поля в настройках WooCommerce

Итак, для добавления своего поля вам необходимо воспользоваться следующей функцией:

function my_field($settings) {

	$updated_settings = array();

	foreach($settings as $section) {

		if(isset($section["id"]) && "general_options" == $section["id"] && isset($section["type"]) && "sectionend" == $section["type"]) {

			$updated_settings[] = array(
				"name" => "Мое поле", // Название поля
				"desc_tip" => "", // Подсказка при наведении
				"id" => "field_test", // Уникальный ID
				"type" => "text", // Тип поля
				"css" => "min-width: 300px;", // Стили
				"std" => "1",
				"default" => "1",
				"desc" => "" // Описание поля (инструкция по заполнению)
			);

		}

		$updated_settings[] = $section;

	}

	return $updated_settings;

}

add_filter("woocommerce_general_settings", "my_field");

Ее вы вставляете в низ файла functions.php, который находится в папке вашей темы.

Что нас здесь интересует?

Это блок:

$updated_settings[] = array(
	"name" => "Мое поле", // Название поля
	"desc_tip" => "", // Подсказка при наведении
	"id" => "field_test", // Уникальный ID
	"type" => "text", // Тип поля
	"css" => "min-width: 300px;", // Стили
	"std" => "1",
	"default" => "1",
	"desc" => "" // Описание поля (инструкция по заполнению)
);

Здесь вы прописываете все ваши данные, в строчке «type» задаете тип вашего поля. Допустимые значения:

  1. text – текст;
  2. color – цвет;
  3. image_width – размеры изображения;
  4. select – селект (выпадающий список);
  5. checkbox – множественный выбор;
  6. textarea – область текста;
  7. single_select_page – выбор страницы сайта;
  8. single_select_country - выбор страны;
  9. multi_select_countries – множественный выбор страны.

Если вы используете тип поля «select» или «checkbox», то в дополнение к описанным параметрам нужно передавать блок «options»:

"options" => array(
	"one" => "Один",
	"two" => "Два",
	"tree" => "Три",
	"four" => "Четыре"
)

Каждая отдельная строка – ваше значение для выбора.

Вся конструкция получается такой:

$updated_settings[] = array(
	"name" => "Мое поле", // Название поля
	"desc_tip" => "", // Подсказка при наведении
	"id" => "field_test", // Уникальный ID
	"type" => "select", // Тип поля
	"css" => "min-width: 300px;", // Стили
	"std" => "1",
	"default" => "1",
	"desc" => "" // Описание поля (инструкция по заполнению)
	"options" => array(
		"one" => "Один",
		"two" => "Два",
		"tree" => "Три",
		"four" => "Четыре"
	)
);

Также в вышеописанной функции важно значение id – оно уникальное на каждое созданное поле. Созданное поле появится на первой странице настроек плагина.

Вывод пользовательского поля из WooCommerce на сайт

Для того чтобы вам вывести созданное ранее поле, вы используете код:

<?php

	$custom_field = get_option("field_test", 1);

	echo $custom_field;

?>

в файлах вашей темы, где «field_test» это как раз указанный в функции ID поля. Вот, собственно, и все. Остались вопросы? Задавайте их в комментариях под данной статьей.

0
комментариев
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.