在电子商务购物车中显示可变产品的自定义字段

问题描述 投票:0回答:1

我正在使用高级自定义字段插件来显示名为'product_cart_image'的自定义字段(图像),它将替换购物车中woocommerce产品的默认图像。该代码适用于简单产品,但不适用于可变产品。对于这些我得到默认图像。这段代码在cart.php中。如何使它也适用于各种产品?

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $_product   = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
   <span class="product-thumbnail">
        <?php
        $product_image = $_product->get_image();
        $product_cart_image = get_field('product_cart_image', $_product->get_id());
            if ( ! empty ( $product_cart_image ) ) {
                $product_image = wp_get_attachment_image( $product_cart_image['ID'] );
                                            }
                $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $product_image, $cart_item, $cart_item_key );

                                            if ( ! $product_permalink ) {
                                                echo $thumbnail;
                                            } else {
                                                printf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $thumbnail ); 
                                            }
                                            ?>
    </span>
}
php wordpress woocommerce advanced-custom-fields cart
1个回答
0
投票

当将可变产品添加到购物车时,对于购物车项目购物车,您需要获取可变产品ID而不是版本ID,因此您将替换以下行:

$product_cart_image = get_field('product_cart_image', $_product->get_id());

作者:

$product_cart_image = get_field('product_cart_image', $cart_item['product_id']);

现在应该可以工作了...

© www.soinside.com 2019 - 2024. All rights reserved.