Коли ти працюєш із WordPress і WooCommerce, рано чи пізно виникає потреба відправити email не зі стандартного сценарію (типу нового замовлення), а з власної логіки. Це може бути що завгодно: створення кастомної сторінки, обробка форми, інтеграція з API або навіть внутрішня автоматизація. І тут постає вибір: або писати власний HTML-шаблон з нуля, або використати вже готову систему WooCommerce.
Якщо ти займаєшся back-end розробкою і активно використовуєш PHP у веб-розробці, другий варіант виглядає значно привабливіше. Чому? Бо WooCommerce вже має готову систему стилізації листів, яка виглядає значно краще, ніж звичайний текст.
Чому не варто використовувати стандартний mail()
Функція mail() у PHP — це базовий інструмент. Вона працює, але виглядає це… м’яко кажучи, не дуже. Листи без стилів, без структури, часто потрапляють у спам і не викликають довіри.
У сучасній веб-розробці користувач очікує гарно оформлений email із логотипом, кольорами бренду та читабельною структурою. І саме це вже є у WooCommerce «з коробки».
Готове рішення: використовуємо mailer WooCommerce
Замість того, щоб вигадувати велосипед, ти можеш використати внутрішній mailer WooCommerce. Він дозволяє:
- обгорнути повідомлення у стандартний шаблон;
- додати заголовок листа;
- застосувати inline-стилі;
- забезпечити кращу доставку листів.
Ось проста функція, яку я використовую практично в кожному проєкті:
function send_email_woocommerce_style($email, $subject, $heading, $message)
{
define("HTML_EMAIL_HEADERS", array('Content-Type: text/html; charset=UTF-8'));
$mailer = WC()->mailer();
$wrapped_message = $mailer->wrap_message($heading, $message);
$wc_email = new WC_Email;
$html_message = $wc_email->style_inline($wrapped_message);
$mailer->send($email, $subject, $html_message, HTML_EMAIL_HEADERS);
}
Куди вставити цю функцію
Найпростіший варіант — додати її у файл functions.php твоєї теми. Якщо ти працюєш більш структуровано (що рекомендую у back-end розробці), краще винести це в окремий helper-файл або навіть у власний плагін.
Як використовувати функцію
Тепер замість стандартного підходу:
mail($to, $subject, $message, $headers);
ти просто викликаєш свою функцію:
send_email_woocommerce_style($to, $subject, $heading, $message);
Що означають параметри
$to— email отримувача;$subject— тема листа;$heading— заголовок у самому листі (відображається у шапці);$message— HTML-контент повідомлення.
Приклад використання в реальному сценарії
Уявімо, що ти створюєш кастомну форму і хочеш після її відправки надіслати користувачу підтвердження:
$to = 'user@example.com';
$subject = 'Дякуємо за заявку';
$heading = 'Ми отримали твою заявку';
$message = '<p>Дякуємо за звернення! Ми зв’яжемося з тобою найближчим часом.</p>';
send_email_woocommerce_style($to, $subject, $heading, $message);
У результаті користувач отримає не сухий текст, а повноцінний брендований email у стилі WooCommerce. І це виглядає значно професійніше 😉
Чому це хороший підхід
Якщо ти серйозно займаєшся PHP і WordPress, то такі дрібниці формують загальну якість продукту. Використання WooCommerce mailer дає тобі:
- менше коду для підтримки;
- уніфікований вигляд листів;
- кращу UX-комунікацію з користувачем;
- менше шансів потрапити у спам.
Декілька нюансів, про які варто знати
- WooCommerce має бути активним — інакше
WC()не працюватиме; - не використовуй
define()всередині функції, якщо викликаєш її багато разів (краще винести глобально); - HTML у
$messageмає бути валідним; - для складніших листів можна підключати власні шаблони WooCommerce.
Підсумок
Якщо коротко: не вигадуй складні рішення там, де WooCommerce вже все зробив за тебе. Використовуючи його mailer, ти отримуєш красиві, структуровані email буквально за кілька рядків коду. Це швидше, зручніше і виглядає значно краще для користувача.
І так — отримувати такі листи набагато приємніше, ніж звичайний текст 🙂


Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.