Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Show SKU on cart and checkout pages in Woocommerce 3

I would like to display SKU on cart (Under product column ) and checkout page.

I searched SO, but all answers are for old versions of WooCommerce and non of them is for 3.x.

How can I show SKU on cart and checkout pages in Woocommerce 3?

like image 884
Vedran Janjic Avatar asked Dec 18 '22 04:12

Vedran Janjic


2 Answers

2021 Update

You can do it with a custom unction hooked in woocommerce_cart_item_name action hook, this way:

// Display the sku below cart item name
add_filter( 'woocommerce_cart_item_name', 'display_sku_after_item_name', 5, 3 );
function display_sku_after_item_name( $item_name, $cart_item, $cart_item_key ) {
    $product = $cart_item['data']; // The WC_Product Object

    if( is_cart() && $product->get_sku() ) {
        $item_name .= '<br><span class="item-sku">'. $product->get_sku() . '</span>';
    }
    return $item_name;
}

// Display the sku below under cart item name in checkout
add_filter( 'woocommerce_checkout_cart_item_quantity', 'display_sku_after_item_qty', 5, 3 );  
function display_sku_after_item_qty( $item_quantity, $cart_item, $cart_item_key ) {
    $product = $cart_item['data']; // The WC_Product Object

    if( $product->get_sku() ) {
        $item_quantity .= '<br><span class="item-sku">'. $product->get_sku() . '</span>';
    }
    return $item_quantity;
}

Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

This code is tested and works on WooCommerce 3+. You will get:

enter image description here

And

enter image description here

Related similar: How to Show SKU with product title in Order received page and Email order

like image 110
LoicTheAztec Avatar answered Dec 20 '22 18:12

LoicTheAztec


You'll need to do some template overrides.

Cart

Copy plugins/woocommerce/templates/cart/cart.php into your theme file at my_theme/woocommerce/cart/cart.php if it isn't already there. Then add the following at approx line #85

// Meta data
//  (this is already in cart.php; look for it for where to place the next snippet)
echo WC()->cart->get_item_data( $cart_item );

// Add SKU below product name
if ( !empty($_product->get_sku()) ) { ?>
<div class="sku">
    <small><?php echo "SKU: ". $_product->get_sku(); ?></small>
</div>
<?php }

Checkout

Copy plugins/woocommerce/templates/checkout/review-order.php into your theme file at my_theme/woocommerce/checkout/review-order.php if it isn't already there. Then add the following at approx line #43

<?php
//  (this is already in review-order.php; look for it for where to place the next snippet)
echo WC()->cart->get_item_data( $cart_item ); ?>

<?php
// Add SKU below product name
if ( !empty($_product->get_sku()) ) { ?>
<div class="sku">
    <small><?php echo "SKU: ". $_product->get_sku(); ?></small>
</div>
<?php } ?>
like image 30
DACrosby Avatar answered Dec 20 '22 18:12

DACrosby