在Woocommerce购物车和结帐中显示产品缩略图和属性

时间:2018-08-24 17:18:07

标签: php wordpress woocommerce cart checkout

我正在Woocommerce结帐表中播放产品属性,请参阅我之前的问题:Show Woocommerce taxonomy in emails

我还想显示产品图片,所以我的理想选择是:左侧和产品名称旁边的产品图片,下一行产品数量,然后是该属性。如果我使用此功能

    add_filter( 'woocommerce_cart_item_name', add_thumbnail_to_cart_items, 10, 3 );
    function add_thumbnail_to_cart_items( $product_name, $cart_item, $cart_item_key ){ 


    if ( ! is_checkout() ) return $product_name;

    $product     = $cart_item['data']; 
    $thumbnail   = $product->get_image(array( 70, 70)); 

    $opening_div = '<div id="checkout_thumbnail" style="float:left; padding-right:15px;">'; 
    return $opening_div . $thumbnail . '</div> ' . $product->get_name(); 
} 

该属性不再显示。如何同时显示两者?

2 个答案:

答案 0 :(得分:1)

已更新

以下内容将在其名称和下面的产品属性旁边显示产品图片:

  

在结帐时,购物车商品数量位于产品名称之后,因此不能在产品名称之后添加任何内容。可以在产品属性之后使用另一个挂钩将其添加为自定义购物车项目数据。

// cart and checkout inline styles (To be removed and added in your theme's styles.css file)
add_action( 'wp_head', 'custom_inline_styles', 900 );
function custom_inline_styles(){
    if ( is_checkout() || is_cart() ){
        ?><style>
        .product-item-thumbnail { float:left; padding-right:10px;}
        .product-item-thumbnail img { margin: 0 !important;}
        </style><?php
    }
}

// Product thumbnail in checkout
add_filter( 'woocommerce_cart_item_name', 'product_thumbnail_in_checkout', 20, 3 );
function product_thumbnail_in_checkout( $product_name, $cart_item, $cart_item_key ){
    if ( is_checkout() ) {

        $thumbnail   = $cart_item['data']->get_image(array( 70, 70));
        $image_html  = '<div class="product-item-thumbnail">'.$thumbnail.'</div> ';

        $product_name = $image_html . $product_name;
    }
    return $product_name;
}

// Cart item qquantity in checkout
add_filter( 'woocommerce_checkout_cart_item_quantity', 'filter_checkout_cart_item_quantity', 20, 3 );
function filter_checkout_cart_item_quantity( $quantity_html, $cart_item, $cart_item_key ){
    return ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong><br clear="all">';
}

// Product attribute in cart and checkout
add_filter( 'woocommerce_get_item_data', 'product_descrition_to_cart_items', 20, 2 );
function product_descrition_to_cart_items( $cart_item_data, $cart_item ){
    $product_id = $cart_item['product_id'];
    $product = wc_get_product($product_id);
    $taxonomy = 'pa_delivery';
    $value = $product->get_attribute($taxonomy);
    if ($product->get_attribute($taxonomy)) {
        $cart_item_data[] = array(
            'name' => get_taxonomy($taxonomy)->labels->singular_name,
            'value' => $product->get_attribute($taxonomy),
        );
    }
    return $cart_item_data;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

  

如果需要,您应该根据自己在主题中所做的现有CSS定制,自行设置显示产品属性的样式

enter image description here

enter image description here


代码基于以下相关答案:
Displaying product thumbnail and attribute in Woocommerce cart and checkout

答案 1 :(得分:0)

我们可以使用CSS在Woocommerce购物车中显示图像缩略图:

@media (max-width: 767px) {
    .woocommerce table.shop_table.cart div.product-thumbnail {
        display: block !important;
        width: 75px !important;
        height: auto !important;
    }
}

它在我的网站上有效