WooCommerce: Как изменить страницу «Спасибо» после оформления заказа

В чем суть задачи: зачем менять страницу «Спасибо» в WooCommerce?

Страница «Спасибо» (thank you page) в WooCommerce появляется после успешного оформления заказа. По умолчанию она содержит базовую информацию: номер заказа, детали и рекомендации. Но часто требуется кастомизировать эту страницу — добавить дополнительные инструкции, кнопки, опросы или аналитику. В этой статье разберём, как изменить страницу «Спасибо» с помощью кода, без плагинов, чтобы полностью контролировать вывод.

Диагностика: как проверить текущий вывод страницы «Спасибо»

Для начала убедитесь, что вы действительно редактируете страницу «Спасибо», а не другие части оформления заказа. Обычно URL выглядит как https://site.ru/checkout/order-received/1234/?key=wc_order_abcde.

Чтобы проверить, где именно подключается шаблон, включите режим отладки WooCommerce. Добавьте в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Затем в файле wp-content/plugins/woocommerce/templates/checkout/thankyou.php — базовый шаблон страницы «Спасибо».

Если этот файл переопределён в вашей теме (в папке woocommerce/checkout/thankyou.php), изменения нужно делать там.

Пошаговое решение: как изменить страницу «Спасибо» через хуки и шаблоны

1. Переопределение шаблона thankyou.php в дочерней теме

Создайте в дочерней теме папку woocommerce/checkout и скопируйте туда файл thankyou.php из плагина WooCommerce. В этом файле можно редактировать HTML и PHP код по своему усмотрению.

Например, добавим вывод дополнительного текста после номера заказа:

<?php
if ( $order ) : ?>
  <p>Спасибо за покупку! Мы свяжемся с вами в ближайшее время.</p>
<?php endif; ?>

2. Использование хука woocommerce_thankyou для добавления контента

Если не хотите менять шаблон, можно добавить функцию в functions.php темы или в плагин:

add_action( 'woocommerce_thankyou', 'wpdo_custom_thankyou_message', 20 );
function wpdo_custom_thankyou_message( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    if ( $order->has_status( 'completed' ) ) {
        echo '<p>Ваш заказ успешно завершён! Спасибо.</p>';
    } else {
        echo '<p>Ваш заказ принят и обрабатывается.</p>';
    }
}

3. Добавление кастомных кнопок и ссылок

Для повышения конверсии можно добавить кнопку «Вернуться в магазин» или «Скачать файл» (для цифровых товаров):

add_action( 'woocommerce_thankyou', 'wpdo_add_custom_buttons', 30 );
function wpdo_add_custom_buttons( $order_id ) {
    echo '<a href="' . esc_url( wc_get_page_permalink( 'shop' ) ) . '" class="button">Вернуться в магазин</a>';
}

Проверка результата после внедрения

Чтобы проверить, что изменения применились, оформите тестовый заказ через фронтенд сайта. После успешного оформления проверьте страницу «Спасибо» на наличие добавленных элементов и текста.

Также проверьте, что для разных статусов заказа выводится нужное сообщение (если реализована логика в функции).

Если используете кеширование (например, Redis или плагин кэширования), очистите кэш после изменений.

Частые ошибки и как их исправить

  • Изменения не отображаются на странице: возможно, вы редактируете шаблон в плагине WooCommerce, а не в дочерней теме. Правильно копируйте файл thankyou.php в папку дочерней темы.
  • Функция добавления текста не срабатывает: проверьте, что хук woocommerce_thankyou подключён с правильным приоритетом, и функция не конфликтует с другими плагинами.
  • Кэширование мешает увидеть изменения: очистите кэш сайта и браузера.
  • Ошибки PHP после добавления кода: проверьте синтаксис, используйте отладчик или логи (wp-content/debug.log).

Практические советы по безопасности и производительности

  • Используйте esc_html() и esc_url() для вывода текста и ссылок, чтобы избежать XSS-уязвимостей.
  • Не перегружайте страницу «Спасибо» тяжелыми скриптами — это может замедлить загрузку.
  • Для динамического контента используйте AJAX, если нужно обновлять информацию без перезагрузки.

Чек-лист для изменения страницы «Спасибо» в WooCommerce

  • Создать дочернюю тему (если ещё нет)
  • Скопировать thankyou.php в woocommerce/checkout дочерней темы
  • Добавить кастомный код в шаблон или через хук woocommerce_thankyou
  • Проверить вывод на тестовом заказе
  • Очистить кэш сайта и браузера
  • Проверить безопасность и корректность вывода данных

Сравнение методов изменения страницы «Спасибо»

МетодПлюсыМинусы
Переопределение шаблона thankyou.phpПолный контроль над выводом, гибкостьНеобходимость обновлять файл при обновлениях WooCommerce
Использование хука woocommerce_thankyouПроще и безопаснее, не ломает обновленияОграничено возможностями хука, нельзя менять весь шаблон
Как добавить новое поле в форму регистрации WordPress с примером кода
03.12.2025
Как удалить раздел из админки WordPress без потери функциональности
10.02.2026
WooCommerce: отладка проблем с оплатой через PayPal после обновления
25.04.2026
Как создать настройку для оптимизации базы данных WordPress
19.02.2026
Как использовать хуки для динамического изменения заголовков страниц в WordPress
01.03.2026