我想根据库存替换产品缩略图。如果我将它直接插入到wc-template-functions woocommerce_get_product_thumbnail函数中,这是有效的,但是当我尝试从functions.php挂钩时它不会。这是我的代码:
function sold_out_thumb ($size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0 ) {
global $product;
global $post;
if ( has_post_thumbnail() )
if ($product->price > 0 && !$product->is_in_stock() )
return get_the_post_thumbnail( $post->ID, $size,array( 'class' => 'lighter' ) );
else
return get_the_post_thumbnail( $post->ID, $size );
elseif ( wc_placeholder_img_src() )
return wc_placeholder_img( $size );
}
add_action ('woocommerce_get_product_thumbnail','sold_out_thumb',90);
有什么想法吗?
答案 0 :(得分:2)
正如您在wc-template-functions.php
中看到的,几乎所有模板函数都在if ( !function_exists() )
条件内。这样,插件的创建者使我们能够覆盖模板函数,所以只需在functions.php中创建woocommerce_get_product_thumbnail()
函数,就不会加载原始函数。
答案 1 :(得分:1)
没有名为woocommerce_get_product_thumbnail
的动作,这就是为什么这对您不起作用的原因。这实际上是一个名为woocommerce_get_product_thumbnail()
的函数。如果您查看代码,则no action hook。