Некоторые из наших продуктов используют внешнее изображение вместо миниатюры поста, для этого URL настроен acf.Похоже, что вы можете отфильтровать функцию woocommerce get_image()
, но я не могу найти способ получить идентификатор текущего продукта, чтобы получить поле.
Вот что у меня есть:
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');
функция get_image () woocommerce:
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 );
}
Я даже пытался изменить функцию для прямой передачи идентификатора,но он этого не сделает.
Любая помощь в получении продукта или его идентификатора будет передана моему фильтру.