Intereting Posts
get_locale () ведет себя странно в том же файле functions.php Показать родительские и дочерние страницы с выделенным изображением и скрыть текущую страницу Как выводить заголовок домашней страницы блогов Выражение против ошибок форматирования контента previous_posts_link и next_posts_link, как вернуть заголовок следующего / предыдущего сообщения в качестве URL-адреса Какие фильтры применяются к функции_content? Попытка получить переменные в раскрывающемся списке категорий с взломом Сообщение блога, застрявшее в черновиках создать фильтр в functions.php как отключить подтверждение пользователя от администрации? Лучшие практики для регрессионного тестирования сайтов WordPress? Фильтрующий крючок перед созданием заказа WooCommerce Потяните в таксономические ссылки, используя get_the_terms? Использование WP Rewrite для перезаписи пользовательских URL в этом сценарии get_the_terms get_term_meta как исходный SQL

Отладка объекта PHP во время вызова Ajax в WordPress

У меня возникают реальные проблемы с работой плагина WP, потому что я не могу получить доступ к своим данным PHP, чтобы узнать, что происходит.

Плагин создает вызов ajax, который зависает, если я помещаю что-то, что ему не нравится в моей функции PHP (см. Ниже).

Вместо линии

do_action_ref_array( 'bookly_validate_custom_field', array( $field, &$this->errors, $fields[ $field->id ] ) );

я пробовал

$this->errors['custom_fields'][ $cart_key ][ $field->id ] = __( 'bad', 'bookly' );

Что работает и отображает сообщение об ошибке «плохо» на странице (это похоже на то, что я хочу, хотя я хочу сделать это условным).

Однако, если я помещаю здесь var_dump($this) , зависает вызов ajax.

Также echo '<script>console.log("My")</script>'; меня не достали

В конце концов, я хотел бы написать функцию, чтобы связать крючок снаружи, но мне нужно играть с кодом здесь, чтобы разобраться, как это сделать, и так как я не вижу, что происходит, я застрял.

Любая помощь очень ценится.

 public function validateCustomFields( $value, $form_id, $cart_key ) { $decoded_value = json_decode( $value ); $fields = array(); foreach ( json_decode( get_option( 'bookly_custom_fields' ) ) as $field ) { $fields[ $field->id ] = $field; } foreach ( $decoded_value as $field ) { if ( isset( $fields[ $field->id ] ) ) { if ( ( $fields[ $field->id ]->type == 'captcha' ) && ! Captcha\Captcha::validate( $form_id, $field->value ) ) { $this->errors['custom_fields'][ $cart_key ][ $field->id ] = __( 'Incorrect code', 'bookly' ); } elseif ( $fields[ $field->id ]->required && empty ( $field->value ) && $field->value != '0' ) { $this->errors['custom_fields'][ $cart_key ][ $field->id ] = __( 'Required', 'bookly' ); } else { /** * Custom field validation for a third party, * if the value is not valid then please add an error message like in the above example. * * @param \stdClass * @param ref array * @param \stdClass */ do_action_ref_array( 'bookly_validate_custom_field', array( $field, &$this->errors, $fields[ $field->id ] ) ); } } } } 

Если вы хотите увидеть свой объект в этой переменной, вам нужно преобразовать его в строку:

 $data_str = print_r( $this, true ); 

Затем вы можете включить его в свой массив ошибок или если вы просто отлаживаете свой код, вы можете отправить его в файл журнала ошибок вашего веб-сервера с помощью error_log:

 error_log( $data_str );