我正在尝试将产品缩略图与分组产品的名称和价格一起包含在内。目前,一个父产品包括20个左右的子(分组)产品,默认情况下,该页面仅显示列表底部的数量选择器,产品名称,价格和添加到购物车按钮。所有产品都列在一张大桌子下面,我希望为每个单独的产品添加单独的产品图片。
目前,通过编辑/single-product/add-to-cart/grouped.php产品文件,我设法让它显示一个小图像,但只显示主要的父产品,方法是添加以下内容:产品标题后的DIV:
<div class="images">
<?php if ( has_post_thumbnail( $post_id ) ) { ?>
<a itemprop="image" href="<?php echo wp_get_attachment_url( get_post_thumbnail_id( $post_id ) ); ?>" class="zoom" rel="thumbnails" title="<?php echo get_the_title( get_post_thumbnail_id( $post_id ) ); ?>"><?php echo get_the_post_thumbnail( $post_id, apply_filters( 'grouped_product_large_thumbnail_size', 'shop_thumbnail' ), array(
'title' => get_the_title( get_post_thumbnail_id( $post_id ) ),
) ); ?></a>
<?php } ?>
</div>
我知道这段代码只是从捆绑的产品图片中复制而来,但它是我最接近的。你可以在这里看到我的意思的例子:
http://hallmark.digitalstorm.co.uk/product/luxor-custom-built-arrangement/
任何帮助都会非常感激,因为我知道我必须非常接近。
答案 0 :(得分:4)
以下是您要查找的代码:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );
function woocommerce_grouped_product_thumbnail( $product ) {
$image_size = array( 20, 20 ); // array( width, height ) image size in pixel
$attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
?>
<td class="label">
<?php echo wp_get_attachment_image( $attachment_id, $image_size ); ?>
</td>
<?php
}
希望这会有用。
答案 1 :(得分:2)
@Ratnakar的精彩代码 - 商店应用
对于那些尝试将产品链接添加到图片的用户 我在图像中添加了一个“链接”包装,因此它将导致Image + Link to product
afterJSON()
和
$link = get_the_permalink($product->id);
决赛:
<a href="<?php echo $link; ?>" > <?php echo wp_get_attachment_image( $attachment_id, $image_size ); ?> </a>
答案 2 :(得分:0)
对于Woocommerce 2.6及更高版本(更新$ product以使用数据存储):
add_action( 'woocommerce_grouped_product_list_before_price','woocommerce_grouped_product_thumbnail');
function woocommerce_grouped_product_thumbnail( $product ) {
$image_size = array( 100, 100 ); // array( width, height ) image size in pixel
$attachment_id = get_post_meta( $product->get_id(), '_thumbnail_id', true );
$link = get_the_permalink($product->get_id());
?>
<td class="label">
<a href="<?php echo $link; ?>" > <?php echo
wp_get_attachment_image($attachment_id, $image_size ); ?> </a>
</td>
<?php
}