В сегодняшней статье мы представим два примера того, как можно свойства товаров на странице Корзины в 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 );
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.