Woocommerce add_action不起作用

时间:2014-10-23 22:26:19

标签: wordpress woocommerce hook

我想根据库存替换产品缩略图。如果我将它直接插入到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);

有什么想法吗?

2 个答案:

答案 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