Отображение SKU в названиях товаров корзины на странице корзины WooCommerce

Я показываю значение SKU с названием продукта на странице корзины, но сейчас каждое слово SKU и заголовок продукта связываются отдельно. Как я могу показать только одну ссылку, а не ссылаться отдельно.

для отображения значения SKU На странице корзины добавлен этот код в Functions.php

add_filter( 'woocommerce_cart_item_name', 'add_sku_in_cart', 20, 3);
function add_sku_in_cart( $title, $values, $cart_item_key ) {
$sku = $values['data']->get_sku();
$url = $values['data']->get_permalink( $product->ID );
$final='<a href="'. $url .'">SKU: '. $sku .'</a>';
return $title ?  sprintf("%s  - ", $final) .$title : $final;
}       

Пример Прямо сейчас показываю это

<a href="http://localhost/test/?product=child-product">SKU: asda121 </a> - <a href="http://localhost/test/?product=child-product">Child Product</a>

но я хочу это так

<a href="http://localhost/test/?product=child-product">SKU: asda121 - Child Product</a>                               

person Asher    schedule 09.08.2017    source источник
comment
потому что $ title не находится внутри тега.   -  person Annapurna    schedule 09.08.2017


Ответы (3)


Вы должны использовать свою настраиваемую функцию, подключенную к ловушке фильтра woocommerce_cart_item_name таким образом, чтобы получить одну и ту же ссылку как для артикула, так и для имени элемента (если артикул существует):

add_filter( 'woocommerce_cart_item_name', 'customizing_cart_item_name', 10, 3 );
function customizing_cart_item_name( $item_name, $cart_item, $cart_item_key  ) {

    $product = $cart_item['data'];
    $sku = $product->get_sku();

    // When sku doesn't exist
    if(empty($sku)) return $item_name;

    $product_name = $product->get_name();
    $product_id = $product->get_id();
    $url = $product->get_permalink( $product_id );

    return '<a href="'. $url .'">Sku: ' . $sku . ' - ' .$product_name . '<a>';
}

Код находится в файле function.php вашей активной дочерней темы (или темы) или также в любом файле плагина.

Проверено и работает

person LoicTheAztec    schedule 09.08.2017

person    schedule
comment
Я по-прежнему получаю ссылку на артикул и продукт отдельно. я хочу выводить как ‹a href=› артикул: 121 - название продукта ‹/a› - person Asher; 09.08.2017
comment
Можете ли вы вставить html-код, полученный для вашей ссылки @Asher - person Annapurna; 09.08.2017
comment
Пожалуйста, проверьте ‹a href=localhost / test /? Product = child-product› SKU: asda121 - ‹/a› ‹a href=localhost / test /? product = child- продукт ›Дочерний Продукт ‹/a›, но мне нужен результат вроде ‹a href=localhost / test /? product = child-product ›SKU: asda121 - Детский продукт ‹/a› - person Asher; 09.08.2017
comment
вы получили это для приведенных выше строк кода? $final='SKU: '. $sku . ($title ? $title : ''); return '<a href="'. $url .'">' . $final . '</a>'; - person Annapurna; 09.08.2017

person    schedule
comment
пожалуйста, не отвечайте только фрагментами кода, объясните, почему ваш ответ помогает пользователю - person Luca; 09.08.2017
comment
Пользователь хочет отображать значение SKU на странице корзины. Я использовал фильтр, который используется для добавления содержимого на страницу корзины с помощью этой строки $ items = $ woocommerce- ›cart-› get_cart (); мы можем получить содержимое продукта, и с помощью цикла я могу отобразить значение SKU в определенном месте на странице корзины с названием продукта. Мы должны добавить эту функцию с крючком в файл functions.php, чтобы для всех продуктов значение SKU отображалось с названием продукта на странице корзины в woocommerce. - person KTriv; 09.08.2017
comment
для меня этот код не работает. не могли бы вы перепроверить? я ничего не вижу на странице корзины - person Asher; 09.08.2017