6 wordpress product woocommerce
在 WooCommerce 可变产品中,存在创建变体的属性和属性值。
\n\nE.g. :\nAttribute: 1 (Size) | Values: XS/S/M/L/XL\nAttribute: 2 (Style/Color) | Values: Red/Green/Blue/Black/...\nAttribute: 3 (Fabric) | Cotton/Polyester/Some other stuff...\nRun Code Online (Sandbox Code Playgroud)\n\n假设每个样式值有 1 张图片。\n我们还假设总共有 500 个变体(由于三重属性,可以叠加)。
\n\n是否有一种简单的方法可以将每个“ATTRIB2 VALUE”的单张图片关联起来,这样您就不必手动编辑变体中的每张图片?
\n\n100 个产品有 500 个单一变体似乎是一项繁重的工作,必须有更好的方法。
\n\n编辑:\n所有蓝色变体的一张图片;\n1 张所有红色变体的图片... \netc...\n\xc2\xa0
\n\n附带问题:有没有办法使用批量“设置常规价格”来应用于所有变体,而不是仅应用于活动“页面”上的变体?
\n在我的测试安装中,以下内容对我有用:
/**
* 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 ;
}
Run Code Online (Sandbox Code Playgroud)
现在,您不必像我在这里所做的那样搜索产品别名:还有其他变量,部分取决于您的安装设计,可能会将一组变量产品与另一组变量产品区分开来。但是,默认情况下,产品变体的产品段条将组合属性术语。因此,如果您的产品是“测试产品”;您有两种尺寸,“大”和“小”,以及两种颜色,“黑色”和“白色”;他们能够产生变化;并且变体已定价(这是必需的),您将获得格式test-product-big-black为 和 的产品块test-product-big-white,依此类推,因此这似乎是实现您想要的目标的合理方法,重点关注属性。
然而,这并不是一种万无一失的方法:如果属性名称出现在商品标题中,那么偶尔会有重叠的可能性 - 例如,对于标题为“Test Black Product”的产品。显然,如何以编程方式解决这个问题是一个更复杂的问题:我在这里提供的函数仍然说明了一般概念。
至于$new_image_id_number,您可以通过各种不同的方式获得它,所以我对此保持开放。例如,您只需将鼠标悬停在媒体库中要使用的图像上即可找到附件 ID。或者,您可以创建一个站点选项 - 老式的或者可能使用高级自定义字段专业版 - 并从上传的图像中提取 ID。
不管怎样,这个可行的解决方案相当简单。过滤器钩子基于abstract-wc-data.php中的protected函数...
$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
Run Code Online (Sandbox Code Playgroud)
...在本例中是由“钩子前缀”woocommerce_product_variation_和相关属性(在本例中)构建的image_id。
(最初,当我查看产品变体类时,我发现一个具有类似结构的过滤器,它本质上重复了某些不适用于此处的情况的功能,对此我感到很困惑。)
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |