首页 文章

在WooCommerce购物车页面上显示购物车项目名称中的SKU

提问于
浏览
0

我在购物车页面显示SKU值与产品 Headers ,但现在每个单词SKU和产品 Headers 分别链接 . 我可以只显示单个链接而不是单独链接 .

显示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 =儿童产品“>儿童产品</a>
但我希望它像<a href="http://localhost/test/?product=child-product"> SKU:asda121 - 儿童产品</a>

3 回答

  • 0

    您应该使用以这种方式挂钩在 woocommerce_cart_item_name 过滤器钩子中的自定义函数,以获得Sku和项目名称上的相同链接(当存在sku时):

    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文件中,或者放在任何插件文件中 .

    经过测试和工作

  • 2
    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='SKU: '. $sku . ($title ? ' - ' . $title : '');
        return '<a href="'. $url .'">' . $final . '</a>';
    }
    
  • -1
    add_filter( 'woocommerce_cart_item_name', 'add_sku_in_cart', 20, 3);
    function add_sku_in_cart(){
    global $woocommerce;
    $items = $woocommerce->cart->get_cart();
    $product_names = array();
    
    foreach($items as $item => $values) { 
    
        // Retrieve WC_Product object from the product-id:
        $_woo_product = wc_get_product( $values['product_id'] );
    
        // Get SKU from the WC_Product object:
        $product_names[] = $_woo_product->get_sku(); 
     }
    }
    

相关问题