【问题标题】:Replace product image by a placeholder for specific category in WooCommerce用 WooCommerce 中特定类别的占位符替换产品图片
【发布时间】:2021-02-13 00:06:10
【问题描述】:

目前,我正在为一个拥有烟草/水烟网站的客户工作。在荷兰,一项新法律即将出台,所有烟草图片都不能再在网站上显示。所以我的目标是删除这个 URL 的产品图片:https://gecona.nl/product-categorie/waterpijptabak 并将图片替换为图片占位符。

在谷歌上我看到你的functions.php中的这段代码应该有助于删除图片:

remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);

我添加了这行代码,但没有删除任何图像。我在互联网上搜索了替代方案和修复方法,但没有任何效果。

如果有人能帮我解决这个问题,我将非常感激。

【问题讨论】:

    标签: php wordpress image woocommerce product


    【解决方案1】:

    要将占位符显示为特定产品类别定义术语的图像,请改用以下内容:

    add_filter( 'woocommerce_product_get_image_id', 'filter_product_image_id', 999, 2 );
    function filter_product_image_id( $image_id, $product ) {
        $category_terms = array('waterpijptabak'); // <== Defined terms for your category(ies)
    
        if ( has_term( $category_terms, 'product_cat', $product->get_id() ) ){
            return false;
        }
        return $image_id;
    }
    

    代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

    【讨论】:

    • 非常感谢您的回答。非常感谢。
    • 我把你的代码放在子主题functions.php中。我将“waterpijptabak”更改为我的类别 ID:60。所有图像仍然显示在我的购物页面上。你知道出了什么问题吗?
    • @RobinBuren 此代码在使用 Storefront 主题的上一个 WooCommerce 版本上测试过(并且也适用于版本 3 以来的任何 WooCommerce 版本)。它对您不起作用的事实可能是由于很多不同的原因……这可能是由于您的主题、插件、您进行的其他一些自定义设置或错误的配置……如果这是孩子的问题主题配置可能会尝试使用plugin code snippets 而不是将代码添加到function.php 文件中。没有人能猜出并告诉你为什么事情不适合你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多