【问题标题】:woocommerce shop page, how to add custom price via "add to cart" buttonwoocommerce 商店页面,如何通过“添加到购物车”按钮添加自定义价格
【发布时间】:2021-12-29 14:24:08
【问题描述】:

我可以在产品页面上添加一个文本框,允许用户输入自定义价格,产品以自定义价格添加到购物车。

我的问题是如何在商店页面上做同样的事情?
我想为商店页面上的每件商品添加一个文本框,并允许用户输入自定义价格。
在商店页面上,我可以添加文本框供用户输入自定义价格,但是当用户按下“添加到购物车”按钮时,如何将该价格转移到购物车??

问题是商店页面上的按钮是一个 href 标记,而不是实际的表单提交。

我已经尝试了 woocommerce“woocommerce_add_to_cart_validation”钩子,但是当它到达这里时它不起作用 b/c,我已经丢失了商店页面上的数据。
商店页面的“添加到购物车”按钮是否有不同的挂钩?
是否有挂钩可以将我的信息从商店页面保存到会话?
如果我必须更改 woocommerce 页面,应该是哪个页面?

提前致谢。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    如果有人还在寻找,这是我解决此问题的方法。

    1. 我使用钩子 add_action( 'woocommerce_after_shop_loop_item', 'function',8 ) 将我的文本框和“添加到购物车”按钮包含在表单标签中(使用 method="post")。顺序必须在 5 和 10 之间(在本例中为 8),因为我们希望它在已经挂钩的 2 个函数之间运行。您必须为每个表单添加一个特定的“id”属性,以便稍后您可以使用 jQuery 引用特定的表单。我选择将产品编号添加为 id 的一部分。例如,我会使用 id="formID_42" 其中 42 是产品的编号(来自 $product->get_id() )

    2. 我更改了文件“add-to-cart.php”,基本上创建了一个提交按钮(type=submit 的输入标签),而不是默认的 href 标签。
      我还使用 jQuery 更新表单的(在步骤 1 中创建)操作属性以重定向到正确的特定产品的“添加到购物车”url(即:action="?add-to-cart=42" 其中 42 是数字产品。使用 $product->get_id() 获得 42

    3. 使用钩子 add_filter('woocommerce_add_cart_item_data') 处理从 $_POST[] 传入的文本框数据并将其保存到购物车(就像从产品页面传递一样。

    基本上,将文本框字段和“添加到购物车”按钮放在表单标签内。
    当用户点击“添加到购物车”按钮时,文本字段中的信息为 POST,您在钩子 add_filter('woocommerce_add_cart_item_data') 中捕获 POST 数据,并使用 $_POST[] 处理数据。将自定义价格保存到购物车,就像您在“产品”页面上一样。如果您想知道如何将自定义价格添加到购物车,搜索会给您很多答案。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2018-05-12
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2017-04-20
    • 2016-10-24
    相关资源
    最近更新 更多