【问题标题】:Disable WooCommerce SKU on Product Page在产品页面上禁用 WooCommerce SKU
【发布时间】:2021-11-26 04:28:19
【问题描述】:

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

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    我想你应该试试这个:

    add_filter( 'wc_product_sku_enabled', '__return_false' );
    

    这将从所有 woo、后端和前端中删除 sku。如果管理员需要,您可以随时通过 CSS 将其隐藏。

    【讨论】:

    • 如果不行的话,试试用add_action('plugins_loaded', function() { add_filter(ETC); });封装过滤器
    • 我想要管理区域中的 SKU,而不是前端,所以我决定:/** * 在单个产品页面上隐藏 SKU。 */ if( !is_admin() ) { add_filter( 'wc_product_sku_enabled', '__return_false' ); }
    【解决方案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/

    【讨论】:

    • wc_product_sku_enabled 设置为 false 实际上会禁用 SKU。使用上述方法,您可以启用它们以备日后需要时使用。
    【解决方案3】:

    使用 cSS 隐藏 SKU/UGS 不是一种有效的解决方案,因为它仍然是 HTML 代码的一部分。 为了将其从产品单页中隐藏并保留在管理页面中,您必须将此代码添加到子项(如果没有子项,则为父项)functions.php:

        // Remove the Product SKU from Product Single Page
    add_filter( 'wc_product_sku_enabled', 'woocustomizer_remove_product_sku' );
    
    function woocustomizer_remove_product_sku( $sku ) {
         // Remove only if NOT admin and is product single page
         if ( ! is_admin() && is_product() ) {
             return false;
         }
         return $sku;
     }
    

    还要确保在产品 php 页面中(根据您使用的主题,它可以有不同的名称)具有此条件以在产品单个页面中显示 SKU:

    if (wc_product_sku_enabled() && $product->get_sku()) { // HTML code that shows the SKU in the product single page}
    

    【讨论】:

      【解决方案4】:

      确保仅通过在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;
          }
      }
      

      【讨论】:

        【解决方案5】:

        如果您根本不需要在您的商店中使用 SKU,您可以使用此插件完全禁用它们。只需安装此插件。 https://wordpress.org/plugins/woocommerce-remove-sku/

        【讨论】:

          猜你喜欢
          • 2017-02-21
          • 1970-01-01
          • 1970-01-01
          • 2013-01-30
          • 2014-07-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多