【问题标题】:javascript woocommerce form validation on add to cart buton before adding to cart添加到购物车之前添加到购物车按钮上的 javascript woocommerce 表单验证
【发布时间】:2019-05-28 15:50:21
【问题描述】:

我有一个自定义页面,其中显示带有变体的产品、自定义字段和添加到购物车按钮。 单击添加到购物车按钮时,我需要在 javascript 中触发一些验证,但如果表单未验证,则无法执行添加到购物车。

我想知道是否可以实现。

首先,我尝试按照此处的说明进行操作: WooCommerce add to cart validation: prevent add to cart

它运行良好,我希望能够使用此代码,但对我来说不可能,因为: - 我使用的是自定义页面,而不是通常的 woocommerce 产品页面 - 这意味着验证后,我将被重定向到空白的标准 woocommerce 页面

这就是为什么我真的需要使用 Javascript 来执行此操作: - 添加到购物车点击时触发的 javascript 或 jquery 函数 - 然后函数检查一切正常 - 如果是,则可以将产品添加到购物车 - 如果否,则会显示警报并且用户保持在同一页面上,没有任何内容添加到购物车。

我尽量说清楚。 希望我能得到一些帮助。

非常感谢。

【问题讨论】:

  • 只需使用该代码,然后在验证后使用链接 yourdomain.com/?add-to-cart=25 重定向用户,其中 25 是产品 ID。如果使用变体,它将是变体 ID。
  • 您说“使用该代码”,但我看不到您提供的任何代码...验证后我需要重定向到特定页面,而不是添加到购物车页面。
  • 所以我使用代码的意思是使用您发布的链接中的代码。那么您是否仍希望将商品添加到购物车中?验证后,您可以使用带有 window.location.replace("example.com"); 的javascript重定向
  • 所以可以先用js验证。如果使用添加到购物车链接的重定向很好,如果不是,则重定向到您要重定向到的页面。

标签: wordpress woocommerce


【解决方案1】:

请试试这个方法:

function so_validate_add_cart_item( $passed, $product_id, $quantity, $variation_id = '', $variations= '' ) {
<script>
  jQuery(function($){
       jQuery(document).on('click', '.single_add_to_cart_button', function (e) {
            e.preventDefault();
            // your validation here
       });  
    });
</script>
}
 add_filter( 'woocommerce_add_to_cart_validation', 'so_validate_add_cart_item', 10, 5 );

【讨论】:

  • 不,它不起作用。实际上它什么也没做......并导致我进入一个空白页面。还有谁 ?我相信这是可能的......
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 2018-10-30
  • 2018-05-08
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
相关资源
最近更新 更多