3

我目前正在开发一个网上商店,我需要在其中执行单独的价格功能。到目前为止,在 woocommerce 钩子的帮助下,我已经成功地操纵了购物车和结帐中的价格,这完全没有任何问题。我用过的 钩子woocommerce_cart_item_price,和.woocommerce_cart_item_subtotalswoocommerce_cart_subtotalwoocommerce_cart_total

现在我们来解决我需要在不久的将来解决的问题。我的自定义功能的价格不包含在 woocommerce 订单中。那么,在woocommerce创建订单之前,是否有一个钩子可以操纵订单中的产品价格?

我查看了https://docs.woocommerce.com/wc-apidocs/hook-docs.html 但没有成功。

Woocommerce 创建订单时从哪里获取价格?_price 元字段、woocommerce_get_price挂钩、购物车或其他东西。如果有人可以向我解释这一点,我将不胜感激。我发现 woocommerce 与它的价格来源不太一致。

如果您不理解我的问题或我的英语相对较差,请提出问题。提前致谢。

4

1 回答 1

1

我已经使用了woocommerce_get_price钩子,当您更改它时,更改后的价格将用于购物车计算总数(价格 * 数量)。

下订单后,WooCommerce 会根据总数和数量计算基于产品的价格,如果您更改 2 个值(总数或数量)之一,它将更改产品价格。

换句话说,价格在订单创建后是动态的。

编辑:

添加了更改价格的方法

function change_price( $cart ) {

    //  Exit function if price is changed at backend
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    foreach ( $cart->get_cart() as $key => $item ) {
        $item['data']->set_price( $custom_price );
    }
 }
 add_action( 'woocommerce_before_calculate_totals', 'change_price', 10, 1);
于 2017-06-11T12:38:18.877 回答