在开发基于 WooCommerce 的商城主题时，我们一般会将模板文件添加到主题中来进行修改，对于有钩子或接口的地方，就没有必要再修改模板代码了，减少主题文件或代码的同时也带来很多便捷。比如：使用 woocommerce\_cart\_item\_thumbnail 钩子来修改购物车的缩略图，很方便。

## 一、woocommerce\_cart\_item\_thumbnail 的简介

WordPress 核心代码 WooCommerce 购物车项目缩略图钩子。

### 1、描述

```

apply_filters( 'woocommerce_cart_item_thumbnail', $product_get_image, $cart_item, $cart_item_key );

```

### 2、参数

**a**、`$product_get_image`，获取产品图片

**b**、`$cart_item`，购物车项目/商品

**c**、`$cart_item_key`，购物车商品密钥

### 3、用法

**a、运行钩子**

```

$product_get_image = apply_filters( 'woocommerce_cart_item_thumbnail', $product_get_image, $cart_item, $cart_item_key ); 
if ( !empty( $product_get_image ) ) { 
   // 代码
}
```

**b、添加钩子回调**

```

// 定义 woocommerce_cart_item_thumbnail 回调 
function filter_woocommerce_cart_item_thumbnail( $product_get_image, $cart_item, $cart_item_key ) { 
    // 过滤代码
    return $product_get_image; 
}; 
// 添加过滤器
add_filter( 'woocommerce_cart_item_thumbnail', 'filter_woocommerce_cart_item_thumbnail', 10, 3 );

```

**c、删除钩子**

```

// 删除过滤器
remove_filter( 'woocommerce_cart_item_thumbnail', 'filter_woocommerce_cart_item_thumbnail', 10, 3 );

```

## 二、woocommerce\_cart\_item\_thumbnail 实例

WooCommerce 缩略图是获取产品特色图像，没有设置则显示一张默认的图片，而在 WordPress 主题的开发中，会添加一张自定义字段图片来作为缩略图，将这张自定义字段的缩略图添加到购物车项目中：

```

/**
 * 修改购物车页面缩略图显示
 */
function salong_filter_woocommerce_cart_item_thumbnail( $product_get_image, $cart_item, $cart_item_key ) {

    /*产品项目 ID*/
    $post_id = $cart_item['product_id'];
    /*自定义缩略图字段*/
    $thumb   = get_post_meta($post_id, "thumb", true);

    if($thumb) {
        /*自定义缩略图*/
        $product_get_image = '<img class="thumb" src="'.$thumb.'" alt="'.get_the_title($post_id).'" />';
    }

    return $product_get_image;

}
add_filter( 'woocommerce_cart_item_thumbnail', 'salong_filter_woocommerce_cart_item_thumbnail', 10, 3 );

```

这样就完美实现了将自定义字段图片添加到购物车项目中。