My own theme
see the template part
<?php
/**
* The template for displaying product content within loops
*
* This template can be overridden by copying it to yourtheme/woocommerce/content-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you (the theme developer).
* will need to copy the new files to your theme to maintain compatibility. We try to do this.
* as little as possible, but it does happen. When this occurs the version of the template file will.
* be bumped and the readme will list any important changes.
*
* @see https://docs.woothemes.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.5.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
global $product, $woocommerce_loop;
// Store loop count we're currently on
if ( empty( $woocommerce_loop['loop'] ) ) {
$woocommerce_loop['loop'] = 0;
}
// Store column count for displaying the grid
if ( empty( $woocommerce_loop['columns'] ) ) {
$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
}
// Ensure visibility
if ( ! $product || ! $product->is_visible() ) {
return;
}
// Increase loop count
$woocommerce_loop['loop']++;
// Extra post classes
$classes = array();
if ( 0 === ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] || 1 === $woocommerce_loop['columns'] ) {
$classes[] = 'first';
}
if ( 0 === $woocommerce_loop['loop'] % $woocommerce_loop['columns'] ) {
$classes[] = 'last';
}
?>
<div class="item"><div class="itpre">
<a href="<?php the_permalink() ?>" title="<?php the_title() ?>">
<span class="img frame">
<?php do_action( 'woocommerce_before_shop_loop_item_title' ); ?>
<img class="glare" src="<?php bloginfo( 'template_url' ) ?>/img/bg-item.png">
<?php do_action( 'woocommerce_after_shop_loop_item_title' ); ?>
</span>
<span class="desc">
<?php
$after = '…';
$title = get_the_title();
if (mb_strlen($title) > 65)
$title = mb_substr($title,0,65);
else
$after = '';
echo $title . $after;
?>
</span>
</a>
<div class="productActions">
<?php do_action( 'woocommerce_after_shop_loop_item' );
?>
</div>
</div></div>