以Woocommerce订单挂钩定制价格

时间:2017-06-10 18:45:27

标签: php wordpress woocommerce hook-woocommerce woocommerce-theming

我目前正在开发一个网店,我需要做一个单独的价格功能。到目前为止,在woocommerce钩子的帮助下,我设法操纵购物车和结账的价格,这完全没有任何问题。 Hooks我使用了woocommerce_cart_item_pricewoocommerce_cart_item_subtotalswoocommerce_cart_subtotalwoocommerce_cart_total

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

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

Woocommerce在创建订单时从哪里获得价格? _price元字段,woocommerce_get_price挂钩,购物车或其他东西。如果有人能向我解释,我将非常感激。我发现woocommerce与它的价格不一致。

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

1 个答案:

答案 0 :(得分: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);