钩入woocommerce_variation_price_html wordpress

dan*_*nyo 0 wordpress woocommerce

我正在开发一个用于woocommerce的插件,并且遇到了"woocommerce_variation_price_html",它可以让您了解单个产品的变化价格下降.所以创建了一个快速的功能来测试和玩游戏:

add_action( 'woocommerce_variation_price_html' , 'wholesale_variation_price' );
function wholesale_variation_price($term){

 return '';

}
Run Code Online (Sandbox Code Playgroud)

以上工作很好,并删除所有数据.但是,我试图添加自定义meta_data来替换默认值.

所以我接着做了以下事情:

add_action( 'woocommerce_variation_price_html' , 'wholesale_variation_price' );
function wholesale_variation_price($term){

$var_price = get_post_meta( get_the_id(), '_my_price', true );

 return $var_price;

}
Run Code Online (Sandbox Code Playgroud)

这由于某种原因不起作用?有没有人有过在woocommerce中使用这个钩子的经验?关于那个钩子的文档并不多.

任何帮助将不胜感激!

Vis*_*isA 5

如前所述,您可以在此处阅读有关html过滤器的信息.也许你有变化的销售价格?然后在链接中,您可以看到总共有4个过滤器.适用:价格,促销价,免费且无价格.

这段代码有效

add_filter( 'woocommerce_variation_sale_price_html', 'my_html', 10, 2);
add_filter( 'woocommerce_variation_price_html', 'my_html', 10, 2);
function my_html( $price, $variation ) {
    return woocommerce_price(5);
}
Run Code Online (Sandbox Code Playgroud)

这也是有效的.这允许您修改整个变体.请在此处阅读代码

add_filter( 'woocommerce_available_variation', 'my_variation', 10, 3);
function my_variation( $data, $product, $variation ) {
    $data['price_html'] = woocommerce_price(6);
    return $data;
}
Run Code Online (Sandbox Code Playgroud)

截图:

第一个例子

第一个过滤器的例子

第二个例子

第二个过滤器的例子

像魔术一样工作!

PS你可以在屏幕截图中看到这样的价格,因为我的设计就像那样展示了它们.


编辑2016-09-10

版本2.6+

由于woocommerce_price在2.6中已弃用,因此对于较新版本使用wc_price.