php - Hook Woocommerce 订单中的自定义价格

标签 php wordpress woocommerce hook-woocommerce woocommerce-theming

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

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

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

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

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

最佳答案

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

下订单后,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);

关于php - Hook Woocommerce 订单中的自定义价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476884/

相关文章:

wordpress - Woocommerce 自定义 product_type 似乎没有正确保存

paypal - woocommerce 订阅免费试用文本

php - Woocommerce 从共享购物车网址将商品添加到购物车?

php - 如何覆盖核心 Woocommerce 插件功能?

php - 我可以在 Rails (PHP) 之外的框架上使用 Capybara 吗?

php - Laravel 5.6 上的 Ajax Auth 重定向

php - is_numeric() 是否意味着 var 对 MySQL 是安全的?

php - 存储数据的奇怪字符编码,旧脚本显示它们很好,新脚本却没有

php - 为 WooCommerce CSV 导出插件添加自定义字段 - 对于客户首次订单

php - WooCommerce:获取 SQL 查询中产品变体的总销售额