从 WooCommerce 购物车中的产品中获取 ACF 图像字段的数据

Posted

技术标签:

【中文标题】从 WooCommerce 购物车中的产品中获取 ACF 图像字段的数据【英文标题】:Get data from product in WooCommerce cart for ACF image field 【发布时间】:2021-08-01 20:53:34 【问题描述】:

我店里的每个产品都有一个 ACF 图像字段,显示与产品(事件)相关的 T 恤图像。

现在我需要客户在结账时看到这张图片。我决定创建一个简码并将其添加到结帐页面的某个位置。

我不知道如何从购物车中的商品中获取 ACF 图像字段?

到目前为止,我尝试使用我放入 functions.php 的代码。有什么想法吗?

function wpb_demo_shortcode()  
 

    $product_id = $cart_item['product_id'];
    $image = get_field('tenue', $product_id);
    $size = 'full'; // (thumbnail, medium, large, full or custom size)
        if( $image ) 
            return wp_get_attachment_image( $image, $size );
        
 
// register shortcode
add_shortcode('tenue-shortcode', 'wpb_demo_shortcode');

注意:我们设置购物车中只能有一个产品。

【问题讨论】:

【参考方案1】:

要从购物车中获取 1 个产品 ID,您可以在 foreach 循环中使用 WC()->cart->get_cart()break

所以你得到:

function wpb_demo_shortcode() 
    // WC Cart
    if ( WC()->cart ) 
        // Loop through cart items
        foreach ( WC()->cart->get_cart() as $cart_item ) 
            $product_id = $cart_item['product_id'];
            break;
        
        
        // Isset
        if ( isset ( $product_id ) ) 
            $image = get_field( 'tenue', $product_id );
            $size = 'full'; // (thumbnail, medium, large, full or custom size)
            
            if ( $image ) 
                return wp_get_attachment_image( $image, $size );
            
        
    
 
// register shortcode
add_shortcode( 'tenue-shortcode', 'wpb_demo_shortcode' ); 

【讨论】:

不知何故不显示。代码不需要在函数名中添加一些 $... 吗? @tristan 请了解短代码是如何工作的,如何正确应用它们。

以上是关于从 WooCommerce 购物车中的产品中获取 ACF 图像字段的数据的主要内容,如果未能解决你的问题,请参考以下文章

ajax 上的 JS 警报添加到购物车以获取 Woocommerce 中的特定产品类别计数

从结帐页面 woocommerce 更新购物车中的产品

在 WooCommerce 购物车中获取购物车项目的产品 ID

Woocommerce:每次交易只允许来自一个标签的产品

woocommerce hook 从购物车中删除产品

在woocommerce中使用ajax删除购物车中的产品