Описание woocommerce_order_payment_status_changed
— Action
Хук woocommerce_order_payment_status_changed позволяет выполнять действия при изменении статуса оплаты заказа в WooCommerce. Он срабатывает в момент, когда статус оплаты заказа изменяется, что дает возможность выполнять дополнительные действия, такие как уведомления, обновление данных и т.д.
Примеры использования
Пример отправки уведомления при успешной оплате заказа:
add_action('woocommerce_order_payment_status_changed', function($order_id, $old_status, $new_status) {
if ($new_status === 'completed') {
$order = wc_get_order($order_id);
// Отправка уведомления клиенту
$to = $order->get_billing_email();
$subject = 'Ваш заказ успешно оплачен';
$message = 'Спасибо за ваш заказ!';
wp_mail($to, $subject, $message);
}
}, 10, 3);
В этом примере мы отправляем уведомление клиенту при успешной оплате заказа.
Пример логирования статусов оплаты заказов:
add_action('woocommerce_order_payment_status_changed', function($order_id, $old_status, $new_status) {
// Логирование изменения статуса
error_log('Статус заказа #' . $order_id . ' изменился с ' . $old_status . ' на ' . $new_status);
}, 10, 3);
Здесь мы логируем изменения статуса оплаты заказа в файл ошибок.
Пример обновления пользовательских метаданных при изменении статуса:
add_action('woocommerce_order_payment_status_changed', function($order_id, $old_status, $new_status) {
if ($new_status === 'refunded') {
update_post_meta($order_id, '_refund_processed', 'yes');
}
}, 10, 3);
В этом примере мы обновляем метаданные заказа, когда статус оплаты изменяется на ‘refunded’.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо реагировать на изменения статуса оплаты, например, для отправки уведомлений или логирования
– Производительность
Хук может повлиять на производительность, если в нем выполняются тяжелые операции, такие как отправка электронной почты или выполнение запросов к базе данных
– Предупреждения
Убедитесь, что ваши действия в хуке не замедляют процесс обработки статуса заказа
Альтернативы
Тип: action
Этот хук срабатывает при изменении статуса заказа, включая статусы оплаты
Используйте его, если вам нужно реагировать на изменения статуса заказа в целом, а не только на статус оплаты