wordpress - woocommerce Hook 用于改变价格

标签 wordpress woocommerce hook price product-variations

我正在尝试使用 Hook 修改产品价格,并已成功地使用以下方法对常规产品进行了修改:

function filter_woocommerce_get_price() { 
    return 55; 
}; 
add_filter( 'woocommerce_get_price', 'filter_woocommerce_get_price', 10, 3 );

我注意到这个钩子(Hook)不适用于变体产品,所以我找到了等效的:

function filter_woocommerce_get_variation_price() {
    return 66; 
};
add_filter( 'woocommerce_get_variation_price_html', 'filter_woocommerce_get_variation_price', 10, 3 );

但这根本行不通...... 我也尝试过这个:

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);
}

我在网上找到了类似的解决方案,但没有改变我的变体产品价格。

我做错了什么?

最佳答案

你的问题是你没有为你的函数定义所需的参数,数字3添加add_filters的末尾意味着你正在传递3个参数,所以你必须这样做:

function filter_woocommerce_get_variation_price($price, $product) { 
    return 66; 
}; 
add_filter( 'woocommerce_get_variation_price', 'filter_woocommerce_get_variation_price', 10, 2 );

因此可以调用该函数。

关于wordpress - woocommerce Hook 用于改变价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38552882/

相关文章:

将 ssl 放在域上后,Wordpress 管理员停止工作

php - 从 woocommerce 类别的类别 slug 中获取所有子类别 id(也是它们的子类别)

WordPress:将 do_action 的输出保存在变量中

php - WordPress add_meta_box() 怪异

wordpress - $user_login 不会在 key 后附加到 WP 密码重置链接

javascript - 添加 JavaScript 背景效果如何禁用元素中的控件?

php - WooCommerce 3.0 结账期间出现 "properties should not be accessed directly"问题

php - 在 Woocommerce 的前端仅显示当前用户的产品

c++ - 以编程方式设置标题栏和边框颜色

codeigniter - pre_controller 钩子(Hook)不会加载像 docs state 这样的基类吗?