WordPress Caldera Forms показывает сообщение об ошибке при проверке - PullRequest
3 голосов
/ 04 июня 2019

Я пытаюсь создать собственное дополнение для 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 голосов
/ 10 июня 2019

До сих пор я понял, что вы делаете небольшую синтаксическую ошибку, поэтому она не возвращает ни значения формы, ни ошибок.

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. Если ваша проблема не решена, прокомментируйте ее, мы разберемся.

UPDATE: Вы пытались проанализировать файл журнала ошибок прямо при отправке формы? Если есть ошибка, то покажи мне.

Если ошибок нет, проверьте, что сообщает об ошибке включено или нет.

Если после всего этого ничего не исправить, то

//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'
    );
}

Надеюсь, вы получите сообщение об ошибке. Если вы не получили ошибку, прокомментируйте снова. Посмотрим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...