Woocommerce分组产品图像

时间:2013-07-08 10:38:55

标签: php wordpress woocommerce

我正在尝试将产品缩略图与分组产品的名称和价格一起包含在内。目前,一个父产品包括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/

任何帮助都会非常感激,因为我知道我必须非常接近。

3 个答案:

答案 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
}