Schimbarea Template-urilor de Email în WooCommerce cu Code Snippets

YouTube Logo Urmărește canalul nostru de YouTube

WooCommerce oferă emailuri standard pentru notificarea clienților și administratorilor în legătură cu comenzile plasate, procesate și finalizate. Totuși, aceste emailuri sunt generice și pot fi personalizate pentru a oferi o experiență mai profesionistă și adaptată brandului tău.

În acest articol, îți voi explica cum să personalizezi template-urile de email din WooCommerce folosind Code Snippets, fără a modifica fișierele pluginului sau a crea un child theme. Astfel, vei putea îmbunătăți aspectul și conținutul emailurilor trimise automat clienților.


Avantajele personalizării template-urilor de email prin Code Snippets

✅ Nu este necesar să editezi fișierele pluginului WooCommerce (care s-ar reseta la fiecare actualizare);

✅ Poți implementa modificările rapid și ușor, fără riscuri;

✅ Poți folosi HTML și CSS pentru a îmbunătăți designul emailurilor;

✅ Permite integrarea de informații suplimentare utile pentru client (link factură, detalii livrare, metode de plată, suport, etc.).



YouTube Logo
Vezi tutorialul pe YouTube

Cum să modifici emailurile WooCommerce cu Code Snippets

WooCommerce oferă mai multe tipuri de notificări prin email. Cele mai utilizate sunt:

1️⃣ Emailul de confirmare a comenzii (procesare comandă) – Acesta este trimis clientului după plasarea unei comenzi și confirmarea plății.

2️⃣ Emailul de finalizare a comenzii – Acest email este trimis clientului după ce comanda este finalizată și expediată.

Folosind Code Snippets, poți personaliza aceste emailuri pentru a include informații utile, un design personalizat și chiar emoji-uri sau link-uri interactive.


Personalizarea emailului de confirmare a comenzii (procesare comandă)

➡️ Acesta este codul pentru emailul de confirmare a comenzii, care se trimite automat după ce un client finalizează o achiziție:

„Acesta este codul pentru înregistrare comandă/procesare.”

<?php

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

    $order = wc_get_order($order_id);
    $customer_email = $order->get_billing_email();
    $customer_name = $order->get_billing_first_name();
    $order_date = wc_format_datetime($order->get_date_created());
    $order_total = $order->get_formatted_order_total();
    $payment_method = $order->get_payment_method_title();
    $billing_address = nl2br($order->get_formatted_billing_address());
    $shipping_address = nl2br($order->get_formatted_shipping_address()) ?: 'Aceeași cu adresa de facturare';
	$customer_phone = $order->get_billing_phone(); // Telefonul clientului
    $shipping_phone = $order->get_shipping_phone(); // Telefonul pentru livrare (dacă este diferit)


   // Adresa de facturare cu simboluri
$billing_address = "
    👤 " . $order->get_billing_first_name() . " " . $order->get_billing_last_name() . "<br>
    📞 " . $customer_phone . "<br>
    📍 " . $order->get_billing_address_1() . " " . $order->get_billing_address_2() . "<br>
    🏙️ " . $order->get_billing_city() . "<br>
    ✉️ " . $order->get_billing_postcode() . "<br>
    🌍 " . $order->get_billing_state() . "<br>
    🏳️ 🇷🇴"; // Steagul României

// Adresa de livrare cu simboluri
$shipping_address = "
    👤 " . $order->get_shipping_first_name() . " " . $order->get_shipping_last_name() . "<br>
    📞 " . (!empty($shipping_phone) ? $shipping_phone : $customer_phone) . "<br>
    📍 " . $order->get_shipping_address_1() . " " . $order->get_shipping_address_2() . "<br>
    🏙️ " . $order->get_shipping_city() . "<br>
    ✉️ " . $order->get_shipping_postcode() . "<br>
    🌍 " . $order->get_shipping_state() . "<br>
    🏳️ 🇷🇴"; // Steagul României


	
	
	// Preluare metodă și cost transport
    $shipping_method = [];
    $shipping_cost = 0;

    foreach ($order->get_shipping_methods() as $shipping_item) {
        $shipping_method[] = $shipping_item->get_name();
        $shipping_cost += floatval($shipping_item->get_total());
    }

    $shipping_method_text = !empty($shipping_method) ? implode(', ', $shipping_method) : 'Nu este specificată metoda de livrare';
    $shipping_cost_text = ($shipping_cost > 0) ? wc_price($shipping_cost) : 'Livrare gratuită';

    // Construim lista de produse din comandă
    $order_items = '';
    foreach ($order->get_items() as $item) {
        $product_name = $item->get_name();
        $product_quantity = $item->get_quantity();
        $product_price = wc_price($item->get_total());
        $order_items .= "<tr>
                            <td style='padding: 10px; border-bottom: 1px solid #ddd;'>$product_quantity × <strong>$product_name</strong></td>
                            <td style='padding: 10px; text-align: right; border-bottom: 1px solid #ddd;'>$product_price</td>
                         </tr>";
    }

    $tracking_url = "https://yourwebsite.com/tracking?order=$order_id";
    $invoice_url = "https://yourwebsite.com/factura?order=$order_id"; 
    $logo_url = "https://tutoriale.site/wp-content/uploads/2025/02/Logo-tutoriale-website-e1739320596200.png";

    if (!empty($customer_email)) {
        $mailer = WC()->mailer();
        $subject = "🎉 Comanda #$order_id a fost înregistrată cu succes!";

        $message = "
        <html>
        <body style='font-family: Arial, sans-serif; background-color: #f4f4f4; padding: 20px; margin: 0;'>
            <!-- Chenar email -->
            <div style='max-width: 600px; margin: auto; background: white; padding: 20px; border-radius: 10px; 
                        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); border: 2px solid #27ae60;'>
                <div style='text-align: center; padding: 20px; border-bottom: 1px solid #ddd;'>
    <img src='$logo_url' alt='Logo' style='max-width: 150px; height: auto; display: block; margin: auto;'>
</div>

<h2 style='color: #27ae60; text-align: center; padding: 10px 0; border-bottom: 1px solid #ddd;'>✔️ Comanda #$order_id a fost înregistrată!</h2>
<p style='text-align: center; font-size: 16px; padding: 10px 20px;'>
    Salut <strong>$customer_name</strong>, îți mulțumim pentru comanda ta plasată pe <strong>$order_date</strong>!<br> 
    Urmărește detaliile mai jos.
</p>

                <h3 style='color: #333; text-align: center; padding-top: 10px;'>📦 Detalii Comandă</h3>
                <table style='width: 100%; border-collapse: collapse; background-color: #fafafa; border-radius: 5px;'>
                    <thead>
                        <tr>
                            <th style='text-align: left; padding: 10px; background: #eee;'>Produs</th>
                            <th style='text-align: right; padding: 10px; background: #eee;'>Preț</th>
                        </tr>
                    </thead>
                    <tbody>
                        $order_items
                    </tbody>
                </table>

                <!-- Detalii livrare și plată pe o singură linie -->
                <div style='background-color: #f7f7f7; padding: 10px; margin-top: 15px; text-align: center; font-size: 16px; border-radius: 5px;'>
                    🚚 <strong>Livrare:</strong> <span style='color: #27ae60;'>$shipping_method_text</span> | 💰 <strong>Cost:</strong> <span style='color: #e67e22;'>$shipping_cost_text</span> <br>
                </div>


                <div style='background-color: #27ae60; color: white; text-align: center; padding: 15px; font-size: 20px; font-weight: bold; border-radius: 5px; margin: 20px 0;'>
                    💰 Total comandă: $order_total
                </div>

               <!-- Metoda de plată -->
<div style='background-color: #f7f7f7; padding: 10px; margin-top: 15px; text-align: center; font-size: 16px; border-radius: 5px;'>
    <p style='text-align: center; font-size: 16px;'><strong>💳 Metodă de plată:</strong> $payment_method</p>
</div>


                <h3 style='color: #333; text-align: center;'>📍 Adrese:</h3>
                <table style='width: 100%; border-radius: 5px;'>
                    <tr>
                        <td style='width: 50%; padding: 10px; border: 1px solid #ddd; background-color: #fafafa; vertical-align: top;'>
                            <h4>🏠 Facturare</h4>
                            <p>$billing_address</p>
                        </td>
                        <td style='width: 50%; padding: 10px; border: 1px solid #ddd; background-color: #fafafa; vertical-align: top;'>
                            <h4>🚚 Livrare</h4>
                            <p>$shipping_address</p>
                        </td>
                    </tr>
                </table>

                <div style='background-color: #e3f2fd; padding: 20px; border-radius: 8px; text-align: center; border: 2px solid #2196F3; margin-top: 20px;'>
    <h3 style='color: #0d47a1; text-align: center; font-size: 20px; font-weight: bold;'>❓ Ai întrebări despre comanda ta?</h3>
    <p style='color: #333; font-size: 16px;'>Suntem aici să te ajutăm! Contactează-ne rapid pe WhatsApp.</p>
    <a href='https://wa.me/407xxxxxxxx' 
       style='background-color: #25D366; color: white; padding: 12px 20px; text-decoration: none; border-radius: 5px; font-size: 16px; display: inline-block; font-weight: bold; margin-top: 10px;'>
       📲 Scrie-ne pe WhatsApp
    </a>
</div>

				
				<div style='background-color: #f7f7f7; padding: 20px; border-radius: 5px;'>
                    <h3 style='color: #333; text-align: center;'>📢 Următorii pași:</h3>
                    <ul style='padding: 0 20px; list-style: none;'>
                        <li>✅ Comanda ta este în procesare și vei primi actualizări prin email.</li>
                        <li>🚚 Dacă ai ales livrare prin curier, vei primi un tracking link când coletul este expediat.</li>
                        <li>ℹ️ Dacă ai întrebări, ne poți contacta oricând.</li>
                    </ul>
                </div>

                <h3 style='color: #333; text-align: center;'>📞 Contact:</h3>
                <p style='text-align: center;'>☎️ Telefon: <a href='tel:+407xxxxxxxx' style='color: #27ae60;'>+40 7xx xxx xxx</a><br>
                   📧 Email: <a href='mailto:support@magazin.ro' style='color: #27ae60;'>support@magazin.ro</a></p>

                <p style='text-align: center; color: #27ae60; font-weight: bold;'>Îți mulțumim că ai ales magazinul nostru! ❤️</p>
                <p style='text-align: center; font-size: 12px; color: #777;'>Acest email este generat automat, te rugăm să nu răspunzi la el.</p>
                 <p style='text-align: center; font-size: 14px; color: #333; font-weight: bold; margin-top: 15px;'>
   📌 Vizitează-ne pe <a href='https://tutorialewebsite.ro' 
   style='color: #27ae60; text-decoration: none; font-weight: bold; font-size: 16px;'>tutorialewebsite.ro</a>.
</p>
			</div> <!-- Sfârșit Chenar -->
			</div>
        </body>
        </html>";

        $mailer->send($customer_email, $subject, $message, array('Content-Type: text/html; charset=UTF-8'));
    }
});

// Oprește emailul implicit trimis de WooCommerce la procesarea comenzii
add_filter('woocommerce_email_enabled_customer_processing_order', '__return_false');

 


Personalizarea emailului de finalizare a comenzii

➡️ Acesta este codul care personalizează emailul trimis clientului atunci când comanda a fost finalizată și produsul a fost expediat:

„Acesta este codul de finalizare.”

<?php

add_action('woocommerce_order_status_completed', function($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    $customer_email = $order->get_billing_email();
    $customer_name = $order->get_billing_first_name();
    $order_date = wc_format_datetime($order->get_date_created());
    $order_total = $order->get_formatted_order_total();
    $payment_method = $order->get_payment_method_title();
	$customer_phone = $order->get_billing_phone(); // Telefonul clientului
    $shipping_phone = $order->get_shipping_phone(); // Telefonul pentru livrare (dacă este diferit)


   // Adresa de facturare cu simboluri
$billing_address = "
    👤 " . $order->get_billing_first_name() . " " . $order->get_billing_last_name() . "<br>
    📞 " . $customer_phone . "<br>
    📍 " . $order->get_billing_address_1() . " " . $order->get_billing_address_2() . "<br>
    🏙️ " . $order->get_billing_city() . "<br>
    ✉️ " . $order->get_billing_postcode() . "<br>
    🌍 " . $order->get_billing_state() . "<br>
    🏳️ 🇷🇴"; // Steagul României

// Adresa de livrare cu simboluri
$shipping_address = "
    👤 " . $order->get_shipping_first_name() . " " . $order->get_shipping_last_name() . "<br>
    📞 " . (!empty($shipping_phone) ? $shipping_phone : $customer_phone) . "<br>
    📍 " . $order->get_shipping_address_1() . " " . $order->get_shipping_address_2() . "<br>
    🏙️ " . $order->get_shipping_city() . "<br>
    ✉️ " . $order->get_shipping_postcode() . "<br>
    🌍 " . $order->get_shipping_state() . "<br>
    🏳️ 🇷🇴"; // Steagul României


    $shipping_method = [];
    $shipping_cost = 0;
    foreach ($order->get_shipping_methods() as $shipping_item) {
        $shipping_method[] = $shipping_item->get_name();
        $shipping_cost += floatval($shipping_item->get_total());
    }
    $shipping_method_text = !empty($shipping_method) ? implode(', ', $shipping_method) : 'Nu este specificată metoda de livrare';
    $shipping_cost_text = ($shipping_cost > 0) ? wc_price($shipping_cost) : 'Livrare gratuită';

    $order_items = '';
    foreach ($order->get_items() as $item) {
        $product_name = $item->get_name();
        $product_quantity = $item->get_quantity();
        $product_price = wc_price($item->get_total());
        $order_items .= "<tr>
                            <td style='padding: 10px; border-bottom: 1px solid #ddd;'>$product_quantity × <strong>$product_name</strong></td>
                            <td style='padding: 10px; text-align: right; border-bottom: 1px solid #ddd;'>$product_price</td>
                         </tr>";
    }

    $tracking_url = "https://yourwebsite.com/tracking?order=$order_id";
    $invoice_url = "https://yourwebsite.com/factura?order=$order_id"; 
    $logo_url = "https://tutoriale.site/wp-content/uploads/2025/02/Logo-tutoriale-website-e1739320596200.png";

    if (!empty($customer_email)) {
        $mailer = WC()->mailer();
        $subject = "🎉 Comanda #$order_id a fost finalizată!";

        $message = "
        <html>
        <body style='font-family: Arial, sans-serif; background-color: #f4f4f4; padding: 20px; margin: 0;'>
            <!-- Chenar email -->
            <div style='max-width: 600px; margin: auto; background: white; padding: 20px; border-radius: 10px; 
                        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); border: 2px solid #27ae60;'>
				<!-- Chenar interior -->
        <div style='border: 2px solid #1e8449; padding: 20px; border-radius: 8px;'>	

                <div style='text-align: center; padding: 20px; border-bottom: 1px solid #ddd;'>
                    <img src='$logo_url' alt='Logo' style='max-width: 150px; height: auto; display: block; margin: auto;'>
                </div>

                <h2 style='color: #27ae60; text-align: center; padding: 10px 0; border-bottom: 1px solid #ddd;'>✔️ Comanda #$order_id a fost finalizată!</h2>
                <p style='text-align: center; font-size: 16px; padding: 10px 20px;'>Salut <strong>$customer_name</strong>, comanda ta este acum finalizată!<br> 
                   Îți mulțumim pentru încrederea acordată. Mai jos sunt detaliile comenzii:</p>

                <h3 style='color: #333; text-align: center; padding-top: 10px;'>📦 Detalii Comandă</h3>
                <table style='width: 100%; border-collapse: collapse; background-color: #fafafa; border-radius: 5px;'>
                    <thead>
                        <tr>
                            <th style='text-align: left; padding: 10px; background: #eee;'>Produs</th>
                            <th style='text-align: right; padding: 10px; background: #eee;'>Preț</th>
                        </tr>
                    </thead>
                    <tbody>
                        $order_items
                    </tbody>
                </table>

                <div style='background-color: #f7f7f7; padding: 10px; margin-top: 15px; text-align: center; font-size: 16px; border-radius: 5px;'>
                    🚚 <strong>Livrare:</strong> <span style='color: #27ae60;'>$shipping_method_text</span> | 💰 <strong>Cost:</strong> <span style='color: #e67e22;'>$shipping_cost_text</span>
                </div>

                <div style='background-color: #27ae60; color: white; text-align: center; padding: 15px; font-size: 20px; font-weight: bold; border-radius: 5px; margin: 20px 0;'>
                    💰 Total comandă: $order_total
                </div>
				
				<!-- Metoda de plată -->
<div style='background-color: #f7f7f7; padding: 10px; margin-top: 15px; text-align: center; font-size: 16px; border-radius: 5px;'>
    <p style='text-align: center; font-size: 16px;'><strong>💳 Metodă de plată:</strong> $payment_method</p>
</div>

<h3 style='color: #333; text-align: center;'>
    <img src='https://cdn-icons-png.flaticon.com/512/684/684908.png' 
         alt='Harta' 
         style='width: 24px; height: 24px; display: inline-block; vertical-align: middle; margin-right: 8px;'>
    Adrese
</h3>
                <table style='width: 100%; border-radius: 5px;'>
                    <tr>
                        <td style='width: 50%; padding: 10px; border: 1px solid #ddd; background-color: #fafafa; vertical-align: top;'>
                            <h4>🏠 Facturare</h4>
                            <p>$billing_address</p>
                        </td>
                        <td style='width: 50%; padding: 10px; border: 1px solid #ddd; background-color: #fafafa; vertical-align: top;'>
                            <h4>🚚 Livrare</h4>
                            <p>$shipping_address</p>
                        </td>
                    </tr>
                </table>

            <div style='text-align: center; margin: 20px 0;'>
                    <a href='$tracking_url' 
                       style='background-color: #27ae60; color: white; padding: 12px 20px; text-decoration: none; border-radius: 5px; font-size: 16px; display: inline-block; margin-right: 10px;'>
                       🔍 Urmărește comanda
                    </a>
                    <a href='$invoice_url' 
                       style='background-color: #ff9800; color: white; padding: 12px 20px; text-decoration: none; border-radius: 5px; font-size: 16px; display: inline-block;'>
                       📄 Descarcă factura
                    </a>
                </div>
				
				<div style='background-color: #e3f2fd; padding: 20px; border-radius: 8px; text-align: center; border: 2px solid #2196F3; margin-top: 20px;'>
    <h3 style='color: #0d47a1; text-align: center; font-size: 20px; font-weight: bold;'>❓ Ai întrebări despre comanda ta?</h3>
    <p style='color: #333; font-size: 16px;'>Suntem aici să te ajutăm! Contactează-ne rapid pe WhatsApp.</p>
    <a href='https://wa.me/407xxxxxxxx' 
       style='background-color: #25D366; color: white; padding: 12px 20px; text-decoration: none; border-radius: 5px; font-size: 16px; display: inline-block; font-weight: bold; margin-top: 10px;'>
       📲 Scrie-ne pe WhatsApp
    </a>
</div>
			
				<div style='background-color: #f7f7f7; padding: 20px; border-radius: 5px;'>
    <h3 style='color: #333; text-align: center;'>📢 Ce urmează?</h3>
    <ul style='padding: 0 20px; list-style: none;'>
        <li>📦 Comanda ta a fost procesată și livrată cu succes.</li>
        <li>✅ Dacă ai ales livrare prin curier, coletul va ajunge în curând la destinație.</li>
        <li>ℹ️ Dacă ai întrebări sau întâmpini probleme, ne poți contacta oricând.</li>
    </ul>
</div>


                <h3 style='color: #333; text-align: center;'>📞 Contact:</h3>
                <p style='text-align: center;'>☎️ Telefon: <a href='tel:+407xxxxxxxx' style='color: #27ae60;'>+40 7xx xxx xxx</a><br>
                   📧 Email: <a href='mailto:support@magazin.ro' style='color: #27ae60;'>support@magazin.ro</a></p>

                <p style='text-align: center; color: #27ae60; font-weight: bold;'>Îți mulțumim că ai ales magazinul nostru! ❤️</p>
                <p style='text-align: center; font-size: 12px; color: #777;'>Acest email este generat automat, te rugăm să nu răspunzi la el.</p>
                <p style='text-align: center; font-size: 14px; color: #333; font-weight: bold; margin-top: 15px;'>
   📌 Vizitează-ne pe <a href='https://tutorialewebsite.ro' 
   style='color: #27ae60; text-decoration: none; font-weight: bold; font-size: 16px;'>tutorialewebsite.ro</a>.
</p>
			</div> <!-- Sfârșit interior -->
			</div> <!-- Sfârșit Chenar -->
			</div>
        </body>
        </html>";

        $mailer->send($customer_email, $subject, $message, array('Content-Type: text/html; charset=UTF-8'));
    }
});

// Oprește emailul implicit trimis de WooCommerce la finalizarea comenzii
add_filter('woocommerce_email_enabled_customer_completed_order', '__return_false');

Cum să adaugi aceste coduri în WordPress folosind Code Snippets

1️⃣ Accesează WordPress AdminSnippets Code (dacă nu ai acest plugin, îl poți instala din „Pluginuri” → „Adaugă nou” → „Code Snippets”).

2️⃣ Dă click pe „Add New” pentru a crea un nou snippet.

3️⃣ Copiază și inserează codul dorit.

4️⃣ Asigură-te că snippet-ul este setat să ruleze „Run Everywhere”.

5️⃣ Salvează și activează snippet-ul.


Personalizare suplimentară pentru emailuri

Dacă dorești să faci emailurile mai atractive, poți adăuga:

Un logo – Pentru un aspect profesional;

Link către factura comenzii – Pentru a permite clientului să descarce factura direct din email;

Detalii despre metodele de plată și livrare – Pentru a evita întrebările ulterioare;

Un buton de WhatsApp – Pentru suport rapid cu un singur click.


Concluzie

Prin personalizarea emailurilor WooCommerce cu Code Snippets, poți îmbunătăți semnificativ experiența clientului și crește rata de fidelizare. Metoda este sigură, rapidă și permite ajustări constante fără a afecta funcționarea site-ului.

Dacă ai nevoie de asistență suplimentară sau vrei să vezi exact cum se face, urmărește tutorialul video detaliat!

× YouTube Logo

🔔 Abonează-te la canalul nostru!

Primește cele mai noi tutoriale WordPress direct pe YouTube!

×