排除Woocommerce中的相关产品ID

时间:2018-05-14 22:49:41

标签: php wordpress woocommerce product hook-woocommerce

// Set colour of light bulb
        function set_bulb_colour(img_id, rgb_colour)
        {
            var img = new Image();

            img.onload = function()
            {
                var canvas = document.createElement('canvas');

                canvas.width = img.width;
                canvas.height = img.height;

                var ctx = canvas.getContext('2d');
                ctx.drawImage(img, 0, 0);

                var image_data = ctx.getImageData(0, 0, canvas.width, canvas.height);
                var data = image_data.data;

                for (var i = 0; i < data.length; i += 4)
                {
                    if (data[i + 3] == 0)
                    {
                        continue;
                    }

                    // If the pixel is yellow set it to the new colour
                    if (data[i] > 200 && data[i + 2] < 100)
                    {
                        data[i] = rgb_colour[0];
                        data[i + 1] = rgb_colour[1];
                        data[i + 2] = rgb_colour[2];
                    }
                }

                ctx.putImageData(image_data, 0, 0);

                $('img#living_room_light_emoji').attr('src', canvas.toDataURL());
            }

            img.src = 'images/light_bulb.png';
        }

我将此功能从function woocommerce_output_related_products() { $args = array( 'posts_per_page' => 4, 'columns' => 4, 'orderby' => 'rand', // @codingStandardsIgnoreLine. 'post__not_in' => array(502,281) ); woocommerce_related_products( apply_filters( 'woocommerce_output_related_products_args', $args ) ); } 复制到我主题的functions.php

要验证我的更改是否有效,我将includes/wc-template-functions.php更改为3,并且仅查询3而不是4。

我需要排除一些产品,但posts_per_page无效。

我做错了吗?如何使用此功能排除产品?

我使用此功能输出产品:post__not_in

这是一个令人讨厌的问题。我根本无法从这里排除产品。有人可以帮忙吗?

我也试过了:

woocommerce_output_related_products();

我做了print_r($ args)并且它显示了我的&#34; post__not_in&#34;正在增加,但产品仍在那里。我有正确的身份证。

1 个答案:

答案 0 :(得分:1)

使用woocommerce_related_products过滤器钩子,这样:

add_filter( 'woocommerce_related_products', 'exclude_related_products', 10, 3 );
function exclude_related_products( $related_posts, $product_id, $args ){
    // HERE set your product IDs to exclude
    $exclude_ids = array('502','281');

    return array_diff( $related_posts, $exclude_ids );
}

代码进入活动子主题(或活动主题)的function.php文件。经过测试和工作。