添加到 WooCommerce 购物车时如何重置所有字段

Posted

技术标签:

【中文标题】添加到 WooCommerce 购物车时如何重置所有字段【英文标题】:How to reset all fields when adding to WooCommerce Cart 【发布时间】:2018-03-28 08:02:30 【问题描述】:

我正在使用 WooCommerce 开发一个网站,并使用插件 Product Addons 为所购买的商品添加额外的文本字段(姓名、电子邮件地址、电话号码等)。当有人点击“添加到购物车”时,网站当前会将产品添加到购物车,刷新页面,但之前的数据仍保留在字段中。添加产品后,我想重置所有字段并使其为空。

我试过使用这个功能:

( function($) 
    $( document.body ).on( 'added_to_cart', function()  
            $('input').val('');   
        );
 ) ( jQuery );

有什么建议吗?

【问题讨论】:

你可能想看看这个:***.com/questions/6364289/… 不确定这是否可行,因为我需要确保在重置字段之前将表单的内容提交到购物车。 【参考方案1】:

如果页面从字面上刷新,那么它根本不是标准的。这样做只是为了更新菜单右上角的迷你购物车,并且产品正在通过 ajax 添加。在这种情况下,您不能清空某些事件的所有字段,因为页面正在刷新,您要做的就是在 document.ready 函数下编写代码,在公共类或输入上执行 $.each 函数并清空输入字段。

【讨论】:

抱歉,不确定您的意思。页面不会自行刷新,只有在有人单击“添加到购物车”按钮时才会刷新。 当您单击普通 woocommerce 上的普通添加到购物车按钮时,它会发布产品数据并通过表单将产品添加到购物车,但在您的情况下,只要您单击添加到购物车按钮,产品就会通过 ajax 添加到购物车,成功后您的 javascript 正在重新加载页面。这就是我刷新或重新加载页面的意思。【参考方案2】:

在你的插件或主题functions.php文件中尝试这个动作钩子

add_filter( 'woocommerce_checkout_get_value', 'misha_clear_checkout_fields_vals' );

function misha_clear_checkout_fields_vals($input)
        return '';

【讨论】:

嗯。这似乎不起作用。我确实在寻找一个钩子,谢谢,但是这个并没有清空字段。也许是因为这些字段是从插件生成的,而不是从 Woocommerce 本身生成的。这些字段的名称如下:name="addon-484-last-name-3[0]" 等等。

以上是关于添加到 WooCommerce 购物车时如何重置所有字段的主要内容,如果未能解决你的问题,请参考以下文章

php 活动门票加 - 当WooCommerce Ticket添加到购物车时,将其他WooCommerce产品添加到购物车

php 活动门票加 - 当WooCommerce Ticket添加到购物车时,将其他WooCommerce产品添加到购物车

如何根据产品类别在 WooCommerce 下添加文本添加到购物车按钮

删除 Woocommerce 中特定产品类别的添加购物车按钮

插件:Woocommerce > 如何允许作者将产品添加到购物车

AJAX 添加到购物车按钮不适用于自定义查询循环产品 woocommerce