我们的一些产品使用外部图像而不是后缩略图,我为此网址设置了一个acf。您似乎可以过滤woocommerce get_image()
功能,但我无法找到获取当前产品ID的方法来获取该字段。
这是我到目前为止所拥有的:
function offsite_product_images($image_url, //variable $this wont work here){
//need some way to get the current product's id
if(get_field('thumbnail_url', $id)){
$image_url = get_field('thumbnail_url', $id);
}
return $image_url;
}
add_filter( 'woocommerce_product_get_image', 'offsite_product_images');
woocommerce get_image()函数:
public function get_image( $size = 'woocommerce_thumbnail', $attr = array(), $placeholder = true ) {
if ( has_post_thumbnail( $this->get_id() ) ) {
$image = get_the_post_thumbnail( $this->get_id(), $size, $attr );
} elseif ( ( $parent_id = wp_get_post_parent_id( $this->get_id() ) ) && has_post_thumbnail( $parent_id ) ) {
$image = get_the_post_thumbnail( $parent_id, $size, $attr );
} elseif ( $placeholder ) {
$image = wc_placeholder_img( $size );
} else {
$image = '';
}
return apply_filters( 'woocommerce_product_get_image', wc_get_relative_url( $image ), $this, $size, $attr, $placeholder, $image );
}
我甚至尝试更改函数以直接传递id,但它不会这样做。
任何有关获取产品或将其ID传递给我的过滤器的帮助都将非常感激。