gpt4 book ai didi

wordpress - WooCommerce |可变产品 |将相同的图像分配给每个值的属性 X(在 Y 中)

转载 作者:行者123 更新时间:2023-12-04 11:40:52 24 4
gpt4 key购买 nike

在 WooCommerce 变量产品中,有创建变体的属性和属性值。

E.g. :
Attribute: 1 (Size) | Values: XS/S/M/L/XL
Attribute: 2 (Style/Color) | Values: Red/Green/Blue/Black/...
Attribute: 3 (Fabric) | Cotton/Polyester/Some other stuff...

假设每个样式值有 1 张图片。
我们还假设您总共有 500 个变体(由于三重属性,它们可以叠加)。

有没有一种简单的方法可以为每个“ATTRIB2 VALUE”关联一张图片,这样您就不必手动编辑变体中的每张图片?

100 种产品和 500 个单一变体似乎是很多猴子的工作, 必须有更好的方法 .

编辑:
1 张所有蓝色变体的图片;
1 张所有红色变体的图片...
等等...

附带问题:有没有办法使用批量“设置常规价格”来应用于所有变体,而不仅仅是事件“页面”上的变体?

最佳答案

以下在我的测试安装中对我有用:

/**
* Replace Woocommerce Product Variation Images
* based on variation slug
*/

add_filter( 'woocommerce_product_variation_get_image_id', 'so_filter_wooc_product_variation_images', 10, 2 ) ;

function so_filter_wooc_product_variation_images( $image_id, $data ) {

//the variation product slug includes "-black"...
if ( strpos( $data->slug, '-black') ) {

//replace with new image by id number
return $new_image_id ;

}

//else return the image_id according to default settings
return $image_id ;

}

现在,您不必像我在这里所做的那样搜索产品标号,这是必然的:还有其他变量,部分取决于您的安装设计,可以将一组变量产品与另一组变量产品区分开来。但是,默认情况下,产品变体的产品标签将组合属性术语。因此,如果您的产品是“测试产品”;你有两种尺寸,“大”和“小”,以及两种颜色,“黑色”和“白色”;他们能够产生变化;并且变体已定价(这是必需的),您将获得格式为 test-product-big-black 的产品标签和 test-product-big-white ,等等,所以这似乎是一个合理的方法,可以大致实现你想要的,专注于属性。

然而,这并不是万无一失的方法:如果属性名称出现在商品标题中,那么就有可能偶尔出现重叠 - 例如,对于标题为“测试黑色产品”的产品。显然,如何以编程方式解决这个问题是一个更复杂的问题:我在这里提供的函数仍然说明了一般概念。

至于 $new_image_id_number ,你可以通过各种不同的方式得到它,所以我把它打开了。例如,您可以通过将鼠标悬停在要在媒体库中使用的图像上来查找附件 ID。或者,您可以创建一个站点选项 - 老式的或者可能使用 Advanced Custom Fields Pro - 并从图像上传中提取 ID。

不管怎样,这个可行的解决方案原来是相当简单的。过滤器钩子(Hook)基于abstract-wc-data.php 中的protected 函数...
$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );

...由“钩子(Hook)前缀”构造而成,在本例中 woocommerce_product_variation_ ,以及相关属性,在本例中为 image_id .

(我最初很困惑,在查看产品变体类时,我发现了一个具有类似结构的过滤器,该过滤器基本上复制了某些不适用于此处的情况的功能。)

关于wordpress - WooCommerce |可变产品 |将相同的图像分配给每个值的属性 X(在 Y 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61038707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com