WooCommerce迷你购物车小工具的自定义价格

时间:2017-11-25 17:16:28

标签: php wordpress woocommerce hook-woocommerce

我有以下代码来生成自定义价格:

add_action( 'woocommerce_before_calculate_totals', 'update_custom_price', 1, 1 );
function update_custom_price( $cart_object ) {
    foreach ( $cart_object->cart_contents as $cart_item_key => $value ) {
      $price = my_custom_calculate_func($value);
      $value['data']->set_price($price);
    }
}

它在购物车页面上运行良好,但在WooCommerce迷你购物车小部件上,它不会显示正确的价格,但会计算正确的小计。

enter image description here

我相信这个代码作为模板存在,所以我将文件从../wp-content/plugins/woocommerce/templates/cart/mini-cart.php复制到../wp-content/mytheme /woocommerce/cart/mini-cart.php但更改此文件不执行任何操作。我删除了这个文件中的所有内容,它保持不变。

任何指导意见。

1 个答案:

答案 0 :(得分:0)

产品价格在第39行的mini-cart.php中计算:

$product_price     = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );

您可以在主题文件夹中的mini-cart.php中编辑此行,或在functions.php中使用过滤器:

add_filter( 'woocommerce_cart_item_price', 'woocommerce_cart_item_price_filter', 10, 3 );
function woocommerce_cart_item_price_filter( $price, $cart_item, $cart_item_key ) {
    // your code to calculate $new_price

    return $new_price;
}