在开发基于 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 );
这样就完美实现了将自定义字段图片添加到购物车项目中。