禁用产品页面上的WooCommerce SKU

时间:2014-09-07 02:16:02

标签: wordpress-plugin woocommerce wordpress

我有一个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。有什么想法吗?

5 个答案:

答案 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模板,请参阅:

http://docs.woothemes.com/document/template-structure/

答案 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/