Функция PHP error_log() не работает в контексте WooCommerce > Статус > Запланированные действия. ⇐ Php
-
Anonymous
Функция PHP error_log() не работает в контексте WooCommerce > Статус > Запланированные действия.
Ссылка на действие подписки https://woocommerce.com/document/subscr ... reference/ показывает, что woocommerce_subscription_pay_complete должен выполняться как для новых заказов, так и для заказов на продление.
Однако в журналах моего сервера я ничего не вижу (например, «РАБОТАЕТ woocommerce_subscription_pay_complete») для ПРОДЛЕННЫХ ЗАКАЗОВ, я вижу только записи error_log для НОВЫХ заказов.
ОБНОВЛЕНИЕ. Я провел небольшое тестирование, создав функцию custom_log для отправки сообщений в пользовательский файл каждый раз, когда я сообщаю что-то в основной файл error_log() error.log. Оказывается, что woocommerce_subscription_pay_complete работает как с новыми заказами, так и с заказами на продление, как указано в документации.
Итак, проблема в том, что функция PHP error_log() не работает в контексте WooCommerce > Статус > Запланированные действия. Есть идеи, почему и как это исправить??
Вот мой код:
add_action('woocommerce_subscription_pay_complete', function($subscription) { error_log('РАБОТАЕТ woocommerce_subscription_pay_complete'); custom_log('РАБОТАЕТ woocommerce_subscription_pay_complete'); // Получение идентификатора пользователя из текущего объекта подписки $user_id = $subscription->get_user_id(); // создаем объект пользователя WP с учетом user_id $user = новый WP_User($user_id); // Устанавливаем пользователю роль клиента $user->set_role('клиент'); error_log('WOO-SUBSCRIPTION-PAYMENT-COMPLETE...ROLE SET TO CUSTOMER: ' . $user_id); custom_log('WOO-SUBSCRIPTION-PAYMENT-COMPLETE...ROLE SET TO CUSTOMER: ' . $user_id); //отмечаем статус заказа как выполненный $current_order = $subscription->get_last_order('все', 'любой'); $current_order->update_status('завершено'); }, 100);
Ссылка на действие подписки https://woocommerce.com/document/subscr ... reference/ показывает, что woocommerce_subscription_pay_complete должен выполняться как для новых заказов, так и для заказов на продление.
Однако в журналах моего сервера я ничего не вижу (например, «РАБОТАЕТ woocommerce_subscription_pay_complete») для ПРОДЛЕННЫХ ЗАКАЗОВ, я вижу только записи error_log для НОВЫХ заказов.
ОБНОВЛЕНИЕ. Я провел небольшое тестирование, создав функцию custom_log для отправки сообщений в пользовательский файл каждый раз, когда я сообщаю что-то в основной файл error_log() error.log. Оказывается, что woocommerce_subscription_pay_complete работает как с новыми заказами, так и с заказами на продление, как указано в документации.
Итак, проблема в том, что функция PHP error_log() не работает в контексте WooCommerce > Статус > Запланированные действия. Есть идеи, почему и как это исправить??
Вот мой код:
add_action('woocommerce_subscription_pay_complete', function($subscription) { error_log('РАБОТАЕТ woocommerce_subscription_pay_complete'); custom_log('РАБОТАЕТ woocommerce_subscription_pay_complete'); // Получение идентификатора пользователя из текущего объекта подписки $user_id = $subscription->get_user_id(); // создаем объект пользователя WP с учетом user_id $user = новый WP_User($user_id); // Устанавливаем пользователю роль клиента $user->set_role('клиент'); error_log('WOO-SUBSCRIPTION-PAYMENT-COMPLETE...ROLE SET TO CUSTOMER: ' . $user_id); custom_log('WOO-SUBSCRIPTION-PAYMENT-COMPLETE...ROLE SET TO CUSTOMER: ' . $user_id); //отмечаем статус заказа как выполненный $current_order = $subscription->get_last_order('все', 'любой'); $current_order->update_status('завершено'); }, 100);
Мобильная версия