Отладка WordPress - добавлено действие в woocommerce_payment_complete - var_dump и плагины не работают - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь отправить XML письмо на акцию, когда покупка завершена в Woocommerce.

Я читал о добавлении действия к: woocommerce_payment_complete в этой теме .

Базовый код c здесь и работает почти так, как должен ,

add_action( 'woocommerce_payment_complete', 'it_mail_to_dafolo' );

function it_mail_to_dafolo( $order_id ){

    $to = 'some_mail@gmail.com';
    $subject = 'test';
    $message = '<Ordre>';
    $message .= '</Ordre>';

    wp_mail( $to, $subject, $message );

    var_dump("Hello?");

}

Но: Ничего не показывает var_dump("Hello?")

Моя проблема: Я хочу добавить атрибуты продукта и другие данные на почту, и это что-то с большим количеством отладки и тестирования.

Я начал, но процесс тестирования покупки и проверки почты каждый раз, когда вы хотите проверить, что что-то было сделано правильно, ужасен.

То, что я пробовал:

Я протестировал удивительный плагин: Debug Toolkit и некоторые другие, но никто из них не работает с этим хуком. Они работают в других местах в моей функции. php и на моем сайте отлично.

Также: я пробовал другое платежное решение, и проблема в том, что мне нужно «совершить покупку», поэтому я не могу отлаживать с помощью платежного решения, такого как банковский перевод. Тогда функция не вызывается. Поэтому мне нужно настроить тестовую оплату, как Bambora - (плагин dani sh, например Stripe). Как вы все знаете, происходит много перенаправлений. Может быть, это как-то связано с этим.

Я также прочитал о die() и пытался с этим после var_dump() выйти из программы, но все еще ничего.

I Вы обнаружили, что вы можете экспортировать в свой error_log этот поток - но действительно ли это лучшее, что может предложить WordPress?

Как я могу создать рабочий процесс, в котором я могу проверить переменные и ошибки этого пользовательского действия лучше, чем его экспорт в журнал error_log?

1 Ответ

0 голосов
/ 21 февраля 2020

Woocommerce отправляет заказ через jQuery ajax. Вам нужно добавить d ie (), а затем перехватить результат в ответе на вызов ajax (в функции submit). Его можно найти в следующем файле:

/ woocommerce / assets / js / frontend / checkout. js.

Добавьте точку останова в следующей строке:

return raw_response;

Чтобы уничтожить файлы woocommerce javascript (для целей отладки), добавьте это в свой wp-config файл:

define( 'SCRIPT_DEBUG', true );

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