我有一个WooCommerce商店,我不想在任何单个产品页面上显示SKU。看看他们的代码,我找到了这个过滤器:
/**
* Returns whether or not SKUS are enabled.
* @return bool
*/
function wc_product_sku_enabled() {
return apply_filters( 'wc_product_sku_enabled', true );
}
我试图用我放在自定义插件中的这行代码覆盖它:
apply_filters( 'wc_product_sku_enabled', false );
我还尝试将apply_filter放在woocommerce_product_meta_start的动作函数中,该动作函数在之前触发但仍然在产品页面上呈现SKU。有什么想法吗?
答案 0 :(得分:10)
我认为你应该尝试这个:
add_filter( 'wc_product_sku_enabled', '__return_false' );
这将从所有woo,后端和前端移除sku。如果管理员需要它,你总是可以通过CSS隐藏它。
答案 1 :(得分:2)
最简单的方法是使用CSS:
.sku_wrapper {
display:none;
}
更强大的方法是在您自己的主题中重新创建woocommerce模板woocommerce/templates/single-product/meta.php
,并简单地注释掉该行:
<span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>
要在您自己的主题中重新创建一个woocommerce模板,请参阅:
答案 2 :(得分:0)
有多种方法可以做到这一点。您可以使用CSS隐藏它们,这样它们仍会出现在您的源代码中,或者使用PHP。我试着概述这篇文章中的所有方法:https://sebweg.com/woocommerce/how-to-hide-skus/
答案 3 :(得分:0)
请确保仅通过在function.php上使用此代码将其从前端删除,通常您可以在主题编辑器上编辑功能文件
add_filter( 'wc_product_sku_enabled', 'my_remove_sku', 10 );
function my_remove_sku( $return, $product ) {
if ( !is_admin() && is_product() ) {
return false;
} else {
return true;
}
}
答案 4 :(得分:-1)
如果您的商店根本不需要使用SKU,可以使用此插件完全禁用它们。只需安装此插件即可。 https://wordpress.org/plugins/woocommerce-remove-sku/