WordPress Caldera Forms在验证时显示错误消息

时间:2019-06-04 13:49:52

标签: php wordpress

我正在尝试为Caldera Forms创建自定义加载项。因此,基本上,我正在为Caldera Forms创建处理器。在该加载项中,当有人尝试提交表单时,它应该显示一个自定义错误。为此,我已经完成了这样的代码

add_filter( 'caldera_forms_get_form_processors', 'wpcfmu_register_processor' );

function wpcfmu_register_processor() {
    $processors['wp_cf_mu_integration'] = array(
        "name"              =>  __('Custom Integration'),
        "description"       =>  __("Custom Plugin"),
        "author"            =>  'test',
        "pre_processor"    =>  'wpcfmu_pre_process',
    );

    return $processors;
}

function wpcfmu_pre_process($config, $form, $process_id) {
    $error = 'something happened wrong';
    return array(
        'note' => $error,
        'type' => 'error'
    );
}

但是这里根本没有显示出来。我试图更改代码,但是无论如何都会显示成功消息。有人可以告诉我这里出了什么问题吗?

任何帮助和建议都是非常有意义的。

1 个答案:

答案 0 :(得分:0)

到目前为止,我了解到您犯了一个小语法错误,这就是为什么它既不返回表单值也不返回错误的原因。

function wpcfmu_register_processor() {
    $processors['wp_cf_mu_integration'] = array(
        'name' => __('Custom Integration'),
        'description' => __('Custom Plugin'),
        'author' => 'test',
        'pre_processor' => 'wpcfmu_pre_process'
    );
}

function wpcfmu_pre_process($config, $form, $process_id) {
    $error = 'some happened wrong';
    return array(
        'error' => $error,
        'type' => 'error'
    );
}

如您所见,您遇到了一些报价问题,您有时会使用单引号,有时会使用双引号。您必须对PHP中的引号保持一致。如果您的问题仍未解决,请在下面的评论中予以解决。

更新: 提交表单时,您是否尝试过分析错误日志文件?如果有错误,请告诉我。

如果没有任何错误,请检查您的错误报告是否打开。

如果所有这些都不能解决,那么

//find and return error
if( is_wp_error( $response ) ){
    $error = $response->get_error_message();
}elseif ( isset( $response[ 'error' ]) ){
    $error =  $response[ 'error' ];
}else{
    $error = 'Something bad happened';
}

然后您放置错误函数

function wpcfmu_pre_process($config, $form, $process_id) {
    $error = 'some happened wrong';
    return array(
        'error' => $error,
        'type' => 'error'
    );
}

希望您会收到一个错误来解决。如果没有收到错误,请再次评论。我们将会看到。