gpt4 book ai didi

php - 发送有关 woocommerce 购物车更新的额外数据

转载 作者:行者123 更新时间:2023-12-05 03:56:10 26 4
gpt4 key购买 nike

我在 WooCommerce 购物车中为每个购物车项目都有一个自定义输入字段。当有人点击更新购物车时,我想将额外数据发送到服务器并处理该数据并将其添加到当前购物车。

我找不到任何地方如何做到这一点。这可能吗?

我试过:

woocommerce_update_cart_action_cart_updated在 $_POST 变量中自定义数据不可用

通过自定义 javascript每次输入字段更改时运行 ajax 请求。但这会干扰更新 WooCommerce 购物车的常规方式。很多错误...

更新购物车前的 Hook 我找不到在更新购物车之前是否有用于发送额外数据的 Hook 。

最佳答案

最终解决方案非常简单。由于购物车是一个常规的 HTML 表单,您可以添加自定义输入数据。当购物车更新时,所有表单数据都被序列化并使用 ajax 发送。您只需要在输入字段上设置正确的名称属性即可。

它采取了以下步骤:

  1. 复制 woocommerce 购物车模板。
  2. 在每个循环的购物车项目中添加您的自定义输入
  3. 给它一个正确的名字。像这样:

     name="cart[<?php echo $cart_item_key; ?>][your_custom_key]"
  4. 使用钩子(Hook):

     woocommerce_update_cart_action_cart_updated
  5. 在此 Hook 中,您可以轻松访问 $_POST['cart'] 变量并执行您的操作。例如:

    $cart = WC()->cart->cart_contents;

    // loop over the cart
    foreach($_POST['cart'] as $cartItemKey => $values) {

    $cartItem = $cart[$cartItemKey];

    $yourCustomValue = $values['your_custom_key'];

    // process the value, do something with it...

    $cartItem['your_custom_key'] = $yourCustomValue;

    WC()->cart->cart_contents[$cartItemKey] = $cartItem;

    }
  6. 瞧瞧。现在,当您填写输入字段并更新购物车时,数据将存储在购物车中。例如,现在您可以在存储新订单时保存额外的购物车数据或使用该数据计算费用。

关于php - 发送有关 woocommerce 购物车更新的额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59694193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com