为了账号安全,请及时绑定邮箱和手机立即绑定

在WooCommerce商店,购物车和结帐页面中用SKU替换产品标题

在WooCommerce商店,购物车和结帐页面中用SKU替换产品标题

PHP
慕姐8265434 2021-04-30 19:15:47
使用Woocommerce,我想在以下页面中添加SKU而不是产品标题:“商店”页面,“购物车”页面和“结帐”页面。例如在商店页面中,我可以使用以下代码在产品标题上方添加SKU。但是,问题在于添加的SKU没有指向单个产品页面的链接。add_action( 'woocommerce_shop_loop_item_title', 'sku_before_title', 9 );function sku_before_title()  {    global $product;    $sku = $product->get_sku();    echo '<p class="name product-title">Product ' . $sku . '</p>';}用SKU代替产品标题并保持与产品标题相同的链接和CSS的正确代码是什么?“商店”页面,“购物车”页面和“结帐”页面的代码。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

要在WooCommerce存档页面上用sku替换产品标题,您将使用:


// Frontend: On shop and archives pages

add_action( 'woocommerce_shop_loop_item_title', 'sku_replace_title_on_loop', 9 );

function sku_replace_title_on_loop()  {

    global $product;


    // Remove the product title

    remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );


    $sku = $product->get_sku();


    // Replace the title by the Sku if is not empty

    $title = empty($sku) ? get_the_title() : $sku;


    // Output

    echo '<h2 class="' . esc_attr( apply_filters( 'woocommerce_product_loop_title_classes', 'woocommerce-loop-product__title' ) ) . '">' . $title . '</h2>';

}

对于购物车和结帐页面,您将使用:


// Frontend: on cart, minicart and checkout

add_filter( 'woocommerce_cart_item_name', 'sku_replace_title_on_cart_checkout', 10, 3 );

function sku_replace_title_on_cart_checkout( $item_name, $cart_item, $cart_item_key ) {

    if( $sku = $cart_item['data']->get_sku() ) {

        if( is_cart() ) {

            $item_name = sprintf( '<a href="%s">%s</a>', esc_url( $cart_item['data']->get_permalink( $cart_item ) ), $sku );

        } else {

            $item_name = $sku;

        }

    }

    return $item_name;

}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信