在Woocommerce 3中的购物车和结帐页面上显示SKU

时间:2017-08-23 21:22:40

标签: php wordpress woocommerce checkout cart

我想在购物车上显示SKU(在产品列下)和结帐页面。

我搜索了SO,但所有答案都是针对旧版本的WooCommerce,而不是针对3.x.

如何在Woocommerce 3中的购物车和结帐页面上显示SKU?

3 个答案:

答案 0 :(得分:2)

您需要进行一些模板覆盖。

<强>车

plugins/woocommerce/templates/cart/cart.php复制到my_theme/woocommerce/cart/cart.php的主题文件中,如果它尚未存在的话。然后在约#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 }

<强>结帐

plugins/woocommerce/templates/checkout/review-order.php复制到my_theme/woocommerce/checkout/review-order.php的主题文件中,如果它尚未存在的话。然后在约#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 } ?>

答案 1 :(得分:2)

您可以使用隐藏在 woocommerce_cart_item_name 操作挂钩中的自定义修补程序来执行此操作:

add_filter( 'woocommerce_cart_item_name', 'showing_sku_in_cart_items', 99, 3 );
function showing_sku_in_cart_items( $item_name, $cart_item, $cart_item_key  ) {
    // The WC_Product object
    $product = $cart_item['data'];
    // Get the  SKU
    $sku = $product->get_sku();

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

    // Add the sku
    $item_name .= '<br><small class="product-sku">' . __( "SKU: ", "woocommerce") . $sku . '</small>';

    return $item_name;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码已经过测试,适用于WooCommerce 3+。你会得到:

enter image description here

enter image description here

相关类似:How to Show SKU with product title in Order received page and Email order

答案 2 :(得分:0)

您可以通过以下方式做到这一点:

/**
 * @snippet       Show SKU @ WooCommerce Cart
 * @author        Khalid Almallahi
 */

add_action( 'woocommerce_after_cart_item_name', 'abukotsh_sku_below_cart_item_name', 11, 2 );

function abukotsh_sku_below_cart_item_name( $cart_item, $cart_item_key ) {
    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    $sku = $_product->get_sku();
    if ( ! $sku ) return;
    echo '<p><small>SKU: ' . $sku . '</small></p>';
}