Описание woocommerce_order_is_paid
— Action
Хук woocommerce_order_is_paid срабатывает, когда заказ в WooCommerce считается оплаченным. Он используется для выполнения дополнительных действий, таких как отправка уведомлений или обновление статусов заказов
Примеры использования
Пример отправки уведомления администратору после оплаты заказа:
add_action('woocommerce_order_is_paid', function($order) {
wp_mail('admin@example.com', 'Заказ оплачен', 'Заказ #' . $order->get_id() . ' был оплачен');
});
В этом примере после оплаты заказа администратору отправляется уведомление на электронную почту
Пример обновления статуса заказа после его оплаты:
add_action('woocommerce_order_is_paid', function($order) {
if ($order->get_status() !== 'completed') {
$order->update_status('completed');
}
});
Здесь мы обновляем статус заказа на ‘завершен’, если он еще не завершен
Пример добавления пользовательской записи в базу данных после оплаты:
add_action('woocommerce_order_is_paid', function($order) {
global $wpdb;
$wpdb->insert('wp_custom_table', array('order_id' => $order->get_id(), 'paid_at' => current_time('mysql')));
});
В этом примере мы добавляем запись о времени оплаты в пользовательскую таблицу базы данных
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо выполнить действия сразу после оплаты заказа, такие как отправка уведомлений или обновление статусов
– Производительность
Хук может повлиять на производительность, если в нем выполняются тяжелые операции, такие как запросы к базе данных или внешние API
– Предупреждения
Убедитесь, что действия, выполняемые в хуке, не блокируют выполнение других процессов, особенно в случае длительных операций
Альтернативы
Тип: action
Этот хук срабатывает на странице благодарности после оплаты заказа и может использоваться для выполнения действий, связанных с успешной покупкой
Используйте его, если хотите выполнить действия, связанные с завершением процесса покупки, после отображения страницы благодарности
Тип: action
Этот хук срабатывает, когда происходит успешная обработка платежа, и может использоваться для выполнения действий, связанных с завершением платежа
Используйте его, если необходимо выполнить действия сразу после завершения платежа, без учета статуса заказа