Pentru a îmbunătăți experiența utilizatorilor și pentru a crește interacțiunea cu conținutul publicat pe site, putem implementa un sistem automat de notificare a abonaților prin email de fiecare dată când un nou articol este publicat. Acest sistem utilizează funcția wp_mail()
din WordPress pentru a trimite un email personalizat cu titlul articolului și un link către acesta.
1. Adăugarea unui trigger la publicarea unui articol
Pentru a detecta momentul în care un articol este publicat, folosim acțiunea publish_post
, care se activează automat la publicarea unei postări noi:
add_action('publish_post', function($post_ID) {
global $wpdb;
// Verifică dacă este un articol nou (nu o actualizare)
$post = get_post($post_ID);
if ($post->post_status !== 'publish') return;
// Obține titlul și linkul articolului
$post_title = get_the_title($post_ID);
$post_link = get_permalink($post_ID);
// Selectează TOȚI abonații CONFIRMAȚI din tabelul pluginului Newsletter
$subscribers = $wpdb->get_col("SELECT email FROM {$wpdb->prefix}newsletter WHERE status = 'C'");
// Dacă nu sunt abonați, ieșim
if (empty($subscribers)) return;
// Subiectul emailului
$subject = "📰 Nou articol pe blog: $post_title";
// Conținutul emailului (HTML)
$message = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; text-align: center; background-color: #f4f4f4; padding: 20px; }
.email-container { max-width: 600px; background: #ffffff; padding: 20px; border-radius: 10px; box-shadow: 0px 4px 10px rgba(0,0,0,0.1); margin: auto; }
.email-title { font-size: 22px; color: #333; font-weight: bold; }
.email-text { font-size: 16px; color: #555; line-height: 1.5; }
.cta-button { display: inline-block; padding: 12px 20px; background: #ff6600; color: #ffffff; text-decoration: none; font-size: 18px; border-radius: 5px; margin-top: 20px; font-weight: bold; }
.cta-button:hover { background: #e65c00; }
.unsubscribe { font-size: 14px; color: #999; margin-top: 20px; }
.unsubscribe a { color: #e74c3c; text-decoration: none; }
</style>
</head>
<body>
<div class='email-container'>
<h2 class='email-title'>📰 $post_title</h2>
<p class='email-text'>Am publicat un nou articol pe blog. Citește-l acum pentru cele mai recente informații!</p>
<p><a href='$post_link' class='cta-button'>📖 Citește articolul</a></p>
<p class='unsubscribe'>Dacă nu mai dorești să primești astfel de emailuri, <a href='https://domeniu.ro/?na=unsubscribe&email={{email}}'>click aici pentru dezabonare</a>.</p>
</div>
</body>
</html>";
// Setează anteturile emailului
$headers = [
'Content-Type: text/html; charset=UTF-8',
'From: Micadan <office@micadan.ro>',
];
// Trimite emailul către TOȚI abonații confirmați
foreach ($subscribers as $email) {
$personalized_message = str_replace('{{email}}', urlencode($email), $message);
wp_mail($email, $subject, $personalized_message, $headers);
}
}, 10, 1);
2. Cum funcționează acest cod?
✅ Acțiunea publish_post
declanșează automat trimiterea emailurilor atunci când un articol este publicat.
✅ Selectează toți abonații confirmați din baza de date a pluginului Newsletter
.
✅ Trimite un email cu titlul articolului și un link direct către el.
✅ Emailul are un buton de acces rapid și o opțiune de dezabonare pentru utilizatori.
3. Beneficiile implementării acestui sistem
🔹 Automatizare completă – notificarea abonaților fără intervenție manuală.
🔹 Creșterea traficului pe site prin informarea rapidă a cititorilor despre articole noi.
🔹 Personalizare ușoară – poți edita textul emailului sau designul acestuia.
Această soluție simplifică procesul de trimitere a notificărilor pentru noile articole de pe site și asigură o comunicare eficientă cu abonații!