В сегодняшней статье мы представим два примера того, как можно свойства товаров на странице Корзины в WooCommerce. Для этого будет использоваться хук Woocommerce под названием ‘woocommerce_cart_item_name’, который позволяет свойствам товара выводится под названием товара на странице корзины. Работаем, как обычно с файлом functions.php, а не с файлами шаблона.
Для вывода свойств товаров на странице товара смотрите статью Выводим пользовательские свойства товаров в WooCommerce на странице товара.
Выводим все свойства товаров списком с новой строки
Этот пример выводит все свойства товаров для каждой его единицы списком, один по другим (каждое свойство с новой строки). Например:
2 | Название свойства 1: значение свойства 1 |
3 | Название свойства 2: значение свойства 2 |
4 | Название свойства 3: значение свойства 3 |
Этот код добавляем в файл functions.php:
4 | function devise_woo_cart_attributes( $cart_item , $cart_item_key ){ |
6 | $item_data = $cart_item_key [ 'data' ]; |
7 | $attributes = $item_data ->get_attributes(); |
10 | if ( ! $attributes ) { |
14 | $out = $cart_item . '<br />' ; |
16 | foreach ( $attributes as $attribute ) { |
18 | $out .= $attribute [ 'name' ] . ': ' ; |
19 | $out .= $attribute [ 'value' ] . '<br />' ; |
26 | add_filter( 'woocommerce_cart_item_name' , devise_woo_cart_attributes, 10, 2 ); |
Выводим все свойства товаров, разделяемые запятой
Этот пример выводит все свойства товаров, один рядом с другим, разделяемые запятой. Он отобразит названия свойств и их значения. Например:
2 | Название свойства 1: значение свойства 1, Название свойства 2: значение свойства 2, Название свойства 3: значение свойства 3 |
Если вам нужно вывести только значения, без названий свойств, тогда закомментируйте строку 20 ниже.
5 | function devise_woo_cart_attribute_values( $cart_item , $cart_item_key ){ |
7 | $item_data = $cart_item_key [ 'data' ]; |
8 | $attributes = $item_data ->get_attributes(); |
10 | if ( ! $attributes ) { |
14 | $out = $cart_item . '<br />' ; |
16 | $count = count ( $attributes ); |
19 | foreach ( $attributes as $attribute ) { |
21 | $out .= $attribute [ 'name' ] . ': ' ; |
22 | $out .= $attribute [ 'value' ]; |
24 | if ( $count > 1 && ( $i < ( $count - 1) ) ) { |
36 | add_filter( 'woocommerce_cart_item_name' , devise_woo_cart_attribute_values, 10, 2 ); |
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
VN:F [1.9.22_1171]
Rating: 4.3/5 (6 votes cast)