php - 哪个是从 woocommerce_before_calculate_totals 和 woocommerce_product_get_price 更改 woo-commerce 购物车价格的推荐过滤器?
问题描述
我需要根据添加的额外购物车项目数据更改 woo-commerce 购物车价格。所以推荐使用这个钩子。
我已使用动作挂钩“woocommerce_before_calculate_totals”来更改产品价格。首先,我使用 get_price() 方法获取产品原价并修改价格,然后使用 set_price() 方法设置产品价格。
但是其他一些插件使用过滤器“woocommerce_product_get_price”来更改产品价格。所以我所做的更改丢失了。
那么在购物车中更改产品价格的推荐挂钩是什么?
解决方案
用于woocommerce_before_calculate_totals
更改购物车价格 -
function change_wc_cart_item_price( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
foreach ( $cart->get_cart() as $item ) {
$item['data']->set_price( 100 ); // Set item price 100
}
}
add_action( 'woocommerce_before_calculate_totals', 'change_wc_cart_item_price', 99 );
推荐阅读
- python - Django 迁移的可重用代码,它也适用于迁移之外
- ruby-on-rails - 验证子域的格式
- java - “实际参数列表和形式参数列表的长度不同”错误
- azure-sql-database - 如何制作 Azure SQL Exec 或在另一个 Azure SQL 中选择另一个表/过程
- typescript - TypeScript 将通用对象从蛇形转换为驼峰形
- image - Flutter缓存图像是否可以重新加载图像而不是获取缓存图像?
- google-app-engine - google-appengine:找出正在存储的存储桶数据
- postgresql - PostgresSql 安装用户无法登录?
- excel - Excel公式比较日期
- python - 如何在 df.update() + df.reset_index() 之后保持列顺序