В сегодняшней статье мы представим два примера того, как можно свойства товаров на странице Корзины в WooCommerce. Для этого будет использоваться хук Woocommerce под названием ‘woocommerce_cart_item_name’, который позволяет свойствам товара выводится под названием товара на странице корзины. Работаем, как обычно с файлом functions.php, а не с файлами шаблона.
Для вывода свойств товаров на странице товара смотрите статью Выводим пользовательские свойства товаров в WooCommerce на странице товара.
Выводим все свойства товаров списком с новой строки
Этот пример выводит все свойства товаров для каждой его единицы списком, один по другим (каждое свойство с новой строки). Например:
Название товара Название свойства 1: значение свойства 1 Название свойства 2: значение свойства 2 Название свойства 3: значение свойства 3
Этот код добавляем в файл functions.php:
/**
* WooCommerce: выводим все свойства товаров списком под каждой единицей на странице корзины
*/
function devise_woo_cart_attributes($cart_item, $cart_item_key){
$item_data = $cart_item_key['data'];
$attributes = $item_data->get_attributes();
if ( ! $attributes ) {
return $cart_item;
}
$out = $cart_item . '<br />';
foreach ( $attributes as $attribute ) {
$out .= $attribute['name'] . ': ';
$out .= $attribute['value'] . '<br />';
}
echo $out;
}
add_filter( 'woocommerce_cart_item_name', devise_woo_cart_attributes, 10, 2 );
Выводим все свойства товаров, разделяемые запятой
Этот пример выводит все свойства товаров, один рядом с другим, разделяемые запятой. Он отобразит названия свойств и их значения. Например:
Название товара Название свойства 1: значение свойства 1, Название свойства 2: значение свойства 2, Название свойства 3: значение свойства 3
Если вам нужно вывести только значения, без названий свойств, тогда закомментируйте строку 20 ниже.
/**
* WooCommerce: выводим все свойства товаров, разделенных запятой, на странице корзины
*/
function devise_woo_cart_attribute_values($cart_item, $cart_item_key){
$item_data = $cart_item_key['data'];
$attributes = $item_data->get_attributes();
if ( ! $attributes ) {
return $cart_item;
}
$out = $cart_item . '<br />';
$count = count($attributes);
$i = 0;
foreach ( $attributes as $attribute ) {
$out .= $attribute['name'] . ': ';
$out .= $attribute['value'];
if ( $count > 1 && ( $i < ($count - 1) ) ) {
$out .= ', ';
}
$i++;
}
echo $out;
}
add_filter( 'woocommerce_cart_item_name', devise_woo_cart_attribute_values, 10, 2 );
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
