用于自定义产品图像缩略图的钩子

时间:2015-03-18 11:20:38

标签: php wordpress woocommerce

我需要帮助woo-commerce来覆盖购物车产品图片缩略图 我正在创建一个用于在详细信息页面中自定义产品的插件,如果我们执行“添加到购物车”,它将在购物车页面中使用自定义缩略图进行更新。

如果有任何挂钩可用于覆盖图像,请告知我们。

4 个答案:

答案 0 :(得分:3)

我花了很多时间寻找答案,甚至问了一个Stackoverflow问题(WooCommerce: change product image permalink with filter/action hook)现在恰好是重复的(在提交我自己的问题之前找不到这个问题)

答案:

钩子是woocommerce_cart_item_thumbnail。 所以在functions.php添加

function custom_new_product_image($a) {

    $class = 'attachment-shop_thumbnail wp-post-image'; // Default cart thumbnail class.
    $src = [PATH_TO_YOUR_NEW_IMAGE];

    // Construct your img tag.
    $a = '<img';
    $a .= ' src="' . $src . '"';
    $a .= ' class="' . $class . '"';
    $a .= ' />';

    // Output.
    return $a;

}

add_filter( 'woocommerce_cart_item_thumbnail', 'custom_new_product_image' );

并且您的缩略图将被替换(如果您想单独更改每个缩略图,则需要更多处理)。

答案 1 :(得分:0)

请查看woocommerce/templates/cart/cart.php中的WooCommerce购物车模板。

购物车中的产品缩略图有一个明确的过滤器woocommerce_cart_item_thumbnail

$thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );

答案 2 :(得分:0)

要更改WooCommerce购物车页面的缩略图大小,您需要执行以下步骤:

  1. function.php中创建所需的尺寸:

    if ( function_exists( 'add_image_size' ) ) {
        add_image_size( 'custom-thumb', 100, 100, true ); // 100 wide and 100 high
    }
    
  2. cart.php中的your_theme\woocommerce\cart\cart.php中找到

    $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image( 'custom-thumb' ), $cart_item, $cart_item_key );
    

答案 3 :(得分:0)

根据您所需的图像大小更改“中等”:

/**
 * Update cart product thumbnail
 */
function woocommerce_cart_item_thumbnail_2912067($image, $cartItem, $cartItemKey)
{
    $id = ($cartItem['variation_id'] !== 0 ? $cartItem['variation_id'] : $cartItem['product_id']);
    return wp_get_attachment_image(get_post_thumbnail_id((int) $id), 'medium');
}
add_filter('woocommerce_cart_item_thumbnail', 'woocommerce_cart_item_thumbnail_2912067', 10, 3);

这使您无需更新核心 WooCommerce 模板文件。