在woocommerce_product_get_image过滤器钩子中获取产品ID

时间:2018-05-23 21:05:57

标签: php wordpress image woocommerce advanced-custom-fields

我们的一些产品使用外部图像而不是后缩略图,我为此网址设置了一个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传递给我的过滤器的帮助都将非常感激。

0 个答案:

没有答案