我已经使用WooCommerce设置了一个本地Wordpress环境。目标是买入一对一或等价值的情景。
我的购物车每行显示一个项目。我已经通过“关键”'不是' product_id'这是相同或较小部分要求所必需的。我已经创建了一系列必要的密钥'并通过'键匹配购物车内容。如果密钥匹配,flag's value is 1
这适用于购物车页面和结帐页面。这一切都很有效,直到我处理订单(目前仅使用COD选项)。然后,所有价格都会重置为产品页面上显示的常规价格("常规价格")。因此订单不反映实际成本。
以下是我的代码:
'set_price('0.00');'
我想也许我没有使用正确的钩子,但所有例子都指向function resetPrice( $cart_obj ) {
global $allFreeItems; //all items in cart (and relevant data) that need to be free
$comparison_ids = array(); //isolate keys for comparison
foreach ($allFreeItems as $key => $value) {
$comparison_ids[] = $allFreeItems[$key][1]; //get unique key for each line item
}
foreach ( $cart_obj->get_cart() as $cart_item ) {
// The corresponding product key of line item
$product_key = $cart_item['key'];
// Compare value of above to array of key's and change value
if (in_array($product_key, $comparison_ids)) {
$cart_item['data']->set_price( 0.00 );
}
// else
// {
// $cart_item['data']->get_price();
// }
}
add_action( 'woocommerce_after_checkout_form', 'resetPrice');
add_action( 'woocommerce_before_calculate_totals', 'resetPrice');
。我看到的唯一区别是每个人都在使用woocommerce_before_calculate_totals
,而不是['product_id']
我是如何通过[key]
进行操作的。当我点击"下订单"我没看到的按钮?有人知道解决这个问题吗?