通过 WooCommerce 3 中的 Hook 更改产品价格
WooCommerce 插件提供了一种通过使用 Hook 修改产品价格的便捷方法。这允许根据各种标准进行动态价格调整。但是,在尝试更改 WooCommerce 3 中的变体价格时会出现问题。
原始方法和限制
要修改所有产品价格(包括变体),可以使用以下挂钩使用:
add_filter('woocommerce_get_price', array( $this, 'my_custom_price'), 99); add_filter('woocommerce_get_regular_price', array( $this, 'my_custom_price'), 99);
不幸的是,这些钩子不能有效地处理变化产品。
变体产品解决方案
要成功修改 WooCommerce 3 中的变体价格,请使用以下 PHP 代码:
// Simple, grouped and external products add_filter('woocommerce_product_get_price', array( $this, 'custom_price' ), 99, 2 ); add_filter('woocommerce_product_get_regular_price', array( $this, 'custom_price' ), 99, 2 ); // Variations add_filter('woocommerce_product_variation_get_regular_price', array( $this, 'custom_price' ), 99, 2 ); add_filter('woocommerce_product_variation_get_price', array( $this, 'custom_price' ), 99, 2 ); // Variable (price range) add_filter('woocommerce_variation_prices_price', array( $this, 'custom_variable_price' ), 99, 3 ); add_filter('woocommerce_variation_prices_regular_price', array( $this, 'custom_variable_price' ), 99, 3 );
缓存价格和 WooCommerce 3
WooCommerce 3 引入了变体的缓存价格。要在价格调整时有效刷新缓存价格,请使用以下挂钩:
add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'add_price_multiplier_to_variation_prices_hash' ), 99, 3 );
价格过滤小部件挂钩
要使用小部件过滤产品价格,请使用以下钩子:
woocommerce_price_filter_widget_min_amount woocommerce_price_filter_widget_max_amount
以上是如何在 WooCommerce 3 中动态更改产品和变体价格?的详细内容。更多信息请关注PHP中文网其他相关文章!