如果Webhooks响应错误,请停止Ninja Forms的进度

时间:2018-08-23 11:37:50

标签: wordpress webhooks ninja-forms

我正在Wordpress中设置Ninja Forms。我想使用Webhooks扩展名将代码发布到外部URL。如果代码正确,则Ninja Forms应该继续提交数据。如果代码错误,则用户应收到错误消息,然后重试。

我该怎么办,我看不到中断提交的方式吗?

1 个答案:

答案 0 :(得分:0)

在使用Webhook的Ninja Form中,我想您可能会捕获到使用此代码从API响应的错误

$data['errors']['form'][] = $this->submit_response->result[0]->error;

因此,当API响应错误时,在这种情况下,除非重新加载页面,否则用户没有机会再次重新提交表单。 当表单包含错误时,Ninja表单会阻止提交表单,因此您需要找到一种清除/删除此错误的方法。 很少有解决方法可以解决此问题。

一种简单的方法是,使用以下代码以不同的方式缓存响应错误:

$data['errors']['last']['message'] = $this->submit_response->result[0]->error;

使用此代码,您的表单将不会显示来自API的错误消息响应,但用户可以再次重新提交表单,并且您可以使用下面的javascript代码将错误显示给某些HTML元素

var customFormController = Marionette.Object.extend({
    initialize: function() {
        // Listen to submit respond
        this.listenTo(nfRadio.channel( 'forms' ), 'submit:response', this.checkSubmitRespond);
    },
    checkSubmitRespond: function(response, textStatus, jqXHR, formID) {
        if ('undefined' != typeof response.errors.last) {
            var msg = response.errors.last.message;
            // display error on some pre-defined element
            jQuery('.error-container').html(msg);
        }
    }
});

jQuery(document).ready(function($) {
    new customFormController();
});

希望获得帮助。