Вывод атрибутов Woocommerce шорткодами

Вывод атрибутов Woocommerce шорткодом

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

Шорткоды для вывода габаритов товара

Вставляем в functions.php.

//Шорткод для вывода ширины товара
add_shortcode( 'pr-width', 'pr_width_func' );

function pr_width_func() {
 
	// получаем объект товара из глобальной переменной
	global $product;
 
	// если параметр задан, то выводим
	if(!is_null($product) && $product->get_width()) {
		return $product->get_width();
	}
}

//Шорткод для вывода длины товара
add_shortcode( 'pr-length', 'pr_length_func' );

function pr_length_func() {
 
	global $product;

	if(!is_null($product) && $product->get_length()) {
		return $product->get_length();
	}
}

//Шорткод для вывода высоты товара
add_shortcode( 'pr-height', 'pr_height_func' );

function pr_height_func() {
 
	global $product;

	if(!is_null($product) && $product->get_height()) {
		return $product->get_height();
	}
}

В add_shortcode() первый параметр — это название шорткода, который потом используется для вставки на страницу [pr-width], второй параметр pr_length_func — имя функции, которая должна сработать, если на странице найден шорткод.

Шорткод для вывода атрибута

Принцип точно такой же, как при выводе габаритов.

//Шорткод для вывода типа механизма
add_shortcode( 'pr-mechanism', 'pr_mechanism_func' );

function pr_mechanism_func() {
 
	global $product;
 
	if(!is_null($product) &&  $product->get_attribute( 'mehanizm' ) ) {
		return $product->get_attribute( 'mehanizm' );
	}
}

Имя атрибута берём в разделе «Товары — Атрибуты».

Ярлыки атрибутов товаров Woocommerce

По образу и подобию можно наделать шорткоды для всех атрибутов, которые нужно вывести на странице. В моём случае получилось три.

Если задано несколько значений для одного атрибута, выводятся они через запятую.

Список атрибутов
Подписаться
Уведомить о
guest

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии