php - 以编程方式将 Woocommerce 购物车项目从虚拟更改为物理
问题描述
我需要calculate_cart_item_totals
在 Woocommerce 的某个时刻以编程方式将购物车项目从“虚拟”更改为“物理”。这可能吗?
解决方案
您只能使用woocommerce_before_calculate_totals
钩子更改购物车项目(产品)属性。现在要将购物车项目从“虚拟”更改为“物理”,您将使用如下WC_Product
方法set_virtual()
:
add_action( 'woocommerce_before_calculate_totals', 'custom_cart_item_data_replacement', 16 );
function custom_cart_item_data_replacement( $cart ) {
foreach ( $cart->get_cart() as $cart_item ) {
// Change virtual cart item to "physical"
if( $cart_item['data']->get_virtual() ) {
$cart_item['data']->set_virtual(false);
}
}
}
代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。
推荐阅读
- javascript - ReactJS / Material-UI / Javascript:无法在 TableRow 上获得圆角边框
- python - 使用 Beautiful Soup 提取特定列表
- reactjs - 如何通过在react js中单击来删除特定元素
- python - python - 如何使用openpyxl库使用python将列从一个excel表复制到另一个?
- android - 从 ADB 发送意图到运行时注册的 BroadcastReceiver
- .net - 按钮在 .NET Web 窗体上启用后不执行任何操作
- arrays - Julia 条件赋值基于 | (或)在多维数组中
- python-3.x - 无法在 Windows 10 中使用 pycharms 通过 pip install uwsgi 安装 uwsgi
- scala - Spark scala在具有不同名称的列上连接两个数据框
- algorithm - 精确比较非常大整数(10 亿级)的两个指数的算法