检查产品变体图像是来自变体本身还是来自父代

时间:2020-02-27 作者:pstidsen

我想展示产品的变化图像。然而,如果没有变化图像,它只会显示父对象的图像,我不希望这样。至少我希望有机会检查图像是直接来自变体还是来自父对象。

add_action(\'woocommerce_before_add_to_cart_form\', \'test_funktion\');
function test_funktion(){
    //Get all variations
    global $product;
    $variationer = $product->get_available_variations();

    //Looping thorugh all
    foreach($variationer as $vari){
        //Get the variation ID
        $varid = $vari[\'variation_id\'];

        //Echoing for testing
        echo \'<br>Variation ID: \'.$varid.\' Image ID: \';

        //Get the image ID from the variation ID
        $variation = new WC_Product_Variation( $varid );
        $image_id = $variation->get_image_id();

        //echoing for testing
        echo $image_id;
    }
}
变体ID 1872上载了一个图像。其余的不返回,但返回测试产品上显示的父映像ID:http://webintas.dk/wordpresstest/vare/pike-boots-combat-boot/

如何检查返回的图像是来自父图像还是来自变体本身?

1 个回复
SO网友:pstidsen

解决方案:

如果使用参数$context=\'edit\'检查图像ID,则仅当图像直接设置为变体时,才会得到返回的ID。代码如下所示:

$image_id = $variation->get_image_id(\'edit\');
    if ($image_id){
        //Only if there is an image to the variation itself
        echo $image_id;
    }
参考号:https://docs.woocommerce.com/wc-apidocs/source-class-WC_Product.html#662-671

相关推荐