Почему важно кастомизировать страницу подтверждения заказа
Текст на странице подтверждения заказа (Thank You page) — это последнее взаимодействие клиента с вашим магазином. Зачастую стандартный текст WooCommerce слишком общий и не отражает уникальность вашего бренда. В GeneratePress, как в легкой и гибкой теме, можно легко настроить этот текст через хуки, не прибегая к плагинам.
Диагностика: где меняется текст подтверждения заказа в WooCommerce
По умолчанию WooCommerce выводит сообщение с помощью функции thankyou_order_received_text, которая генерирует стандартный заголовок и описание на странице thankyou. Это происходит в шаблоне woocommerce/checkout/thankyou.php.
Проверить текущий текст можно, оформив тестовый заказ и посмотрев вывод на странице благодарности. Если используется GeneratePress, убедитесь, что тема не переопределяет этот шаблон, иначе изменения могут не примениться.
Пошаговое решение: как изменить текст подтверждения заказа через хуки
WooCommerce предоставляет фильтр woocommerce_thankyou_order_received_text для замены стандартного текста. Вот минимальный пример кода, который нужно добавить в functions.php дочерней темы GeneratePress или в собственный плагин:
add_filter('woocommerce_thankyou_order_received_text', 'custom_thankyou_text', 10, 2);
function custom_thankyou_text( $text, $order ) {
if ( ! $order || ! is_wc_endpoint_url('order-received') ) {
return $text;
}
$order_id = $order->get_id();
$customer_name = $order->get_billing_first_name();
$custom_text = sprintf(
'Спасибо за заказ, %s! Ваш номер заказа: #%d. Мы свяжемся с вами в ближайшее время.',
esc_html($customer_name),
$order_id
);
return $custom_text;
}Этот код заменит стандартный текст на более персонализированное сообщение с именем клиента и номером заказа.
Дополнительная кастомизация: добавление ссылки на продолжение покупок
Чтобы добавить кнопку или ссылку после текста, используйте хук woocommerce_thankyou:
add_action('woocommerce_thankyou', 'custom_thankyou_continue_shopping', 20);
function custom_thankyou_continue_shopping( $order_id ) {
echo '<p style="margin-top:20px;"><a href="' . esc_url( home_url('/') ) . '" class="button">Вернуться на главную</a></p>';
}Проверка результата после внедрения
- Оформите тестовый заказ в магазине GeneratePress + WooCommerce.
- Перейдите на страницу благодарности и убедитесь, что отображается ваш кастомный текст с именем и номером заказа.
- Проверьте наличие кнопки «Вернуться на главную» или другого добавленного элемента.
- Убедитесь, что на других страницах сайта текст не изменился.
Частые ошибки и как их исправить
- Код не работает и выводится стандартный текст: проверьте, что код добавлен в
functions.phpдочерней темы, а не родительской, чтобы избежать перезаписи при обновлениях. - Ошибки PHP после добавления кода: убедитесь в правильности синтаксиса, особенно кавычек и точек с запятой.
- Отсутствует имя клиента: возможно, клиент оформил заказ без заполнения имени в биллинге — добавьте проверку на пустое значение.
- Кастомный текст появляется не только на странице благодарности: используйте условие
is_wc_endpoint_url('order-received')для ограничения области действия фильтра.
Практические советы по безопасности и производительности
- Всегда экранируйте вывод через
esc_html()или подобные функции, чтобы избежать XSS-уязвимостей. - Добавляйте кастомный код в дочернюю тему или плагин, чтобы не потерять изменения при обновлении GeneratePress.
- Минимизируйте количество тяжелых операций на странице благодарности — она должна грузиться быстро для лучшего UX.
Альтернативные варианты кастомизации текста подтверждения заказа
| Метод | Преимущества | Недостатки |
|---|---|---|
Фильтр woocommerce_thankyou_order_received_text | Легко реализовать, не требует плагинов, гибко | Только для замены текста, без визуальных изменений |
Переопределение шаблона thankyou.php | Полный контроль над версткой | Больше кода, требует знаний PHP и WooCommerce шаблонов |
| Плагины для кастомизации страницы благодарности | Простота для новичков, визуальные редакторы | Дополнительная нагрузка, возможные конфликты |