php - 在 WooCommerce 商店、购物车和结帐页面中用 SKU 替换产品标题
问题描述
使用 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 的正确代码是什么?商店页面和购物车页面和结帐页面的代码。
解决方案
要在 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 文件中。测试和工作。
推荐阅读
- python - 修复比较数据并返回行号和数据
- python - 如何将 0/1 转换为有效签名?
- react-native - 为 reactnative 构建 appcenter 错误,正在寻找 index.ios.js
- python-3.x - 在 Tensorflow 代码中获取 Keras LSTM 输出
- vb.net - 如何将 Microsoft.VisualBasic.Compatibility.VB6.PictureBoxArray 转换为 .net 4.7.2
- java - 定义 bigdecimal 的方法
- python - 声音不会一直播放!- Pygame,Python
- python - 用于在 Python 中构建 PriorityQueue 的自定义比较器
- php - 如何使用mysql从多列中获取最小/最小值但忽略0作为最小值/最小值?
- azure - 由于权限问题,无法通过 Azure 门户将应用服务证书 (ASC) 导入 Azure Web 应用