Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在woocommerce签出时为我的自定义支付插件执行自定义js代码_Php_Wordpress_Woocommerce_Hook Woocommerce_Woocommerce Rest Api - Fatal编程技术网

Php 在woocommerce签出时为我的自定义支付插件执行自定义js代码

Php 在woocommerce签出时为我的自定义支付插件执行自定义js代码,php,wordpress,woocommerce,hook-woocommerce,woocommerce-rest-api,Php,Wordpress,Woocommerce,Hook Woocommerce,Woocommerce Rest Api,我正在为我的woo商务网站创建一个新的自定义支付插件。我需要为信用卡和其他一些输入字段添加一些自定义验证。我需要在一个单独的js文件中添加所有这些验证,并希望只有在javascript验证成功通过后才能触发签出功能 我可以使用wp\u enqueue\u scripts函数加载js,但在单击“签出”按钮后,我的js代码不会执行。 我想要的是在签出时单击first需要执行我的代码,并根据我的验证检查需要继续执行签出功能。WooCommerce在订单上绑定一个事件,并使用AJAX提交表单(您可以在c

我正在为我的woo商务网站创建一个新的自定义支付插件。我需要为信用卡和其他一些输入字段添加一些自定义验证。我需要在一个单独的js文件中添加所有这些验证,并希望只有在javascript验证成功通过后才能触发签出功能

我可以使用
wp\u enqueue\u scripts
函数加载js,但在单击“签出”按钮后,我的js代码不会执行。
我想要的是在签出时单击first需要执行我的代码,并根据我的验证检查需要继续执行签出功能。

WooCommerce在订单上绑定一个事件,并使用AJAX提交表单(您可以在checkout.js中看到代码)

以下是我的解决方案:

1.用您自己的按钮替换原来的提交按钮

 jQuery(document).on('click', '.new_submit', function(e){
      e.preventDefault();       
      if (do_the_validation()){
        jQuery( 'form.checkout' ).submit();
      } else {
        return false;
      }
 })
在functions.php中

add_filter('woocommerce_order_button_html', function(){
    return '<button class="new_submit button">Place Order</button>';
});
另外,我建议您进行服务器端验证

add_action('woocommerce_checkout_process', 'my_validation');
function my_validation() { 
    //If it's invalid, add an error.
    if (!do_validation()) {
       wc_add_notice( __( 'Something goes wrong!' ), 'error' );
    }

}

请出示密码好吗?