我正在尝试为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'
);
}
但是这里根本没有显示出来。我试图更改代码,但是无论如何都会显示成功消息。有人可以告诉我这里出了什么问题吗?
任何帮助和建议都是非常有意义的。
答案 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'
);
}
希望您会收到一个错误来解决。如果没有收到错误,请再次评论。我们将会看到。