Egyszerű értesítő plugin WordPress-hez előnézeti képe

Egyszerű értesítő plugin WordPress-hez

| Olvasási idő: 2 perc

Ebben a bejegyzésben azt mutatom meg, hogyan tudsz egy nagyon egyszerű értesítő plugint készíteni, ami csak bizonyos bejegyzéstípusok esetén aktiválódik. Rétegigénynek tűnhet, azonban sokféle hasznosítási lehetőség áll előtte.

Képzeljük el az alábbi szituációkat:

  • portált üzemeltetsz, ahol több cikkíró is ír tartalmat - viszont nem szeretnéd, hogy ők publikálhassanak cikket anélkül, hogy átnéznéd ezeket előtte.
  • egy olyan portált üzemeltetsz, ahova a regisztrált felhasználóid feltölthetnek tartalmat, de a publikáláshoz a jóváhagyásod kell: tipikusan ilyenek a directory jellegű site-ok

Jogosultságok tekintetében a Contributor (Közreműködő) tökéletes megoldás lehet a fentiekre, viszont "üzletmenet" szempontjából elég nehézkes az, hogy óránként ránézz az oldalra, hogy elkészült-e a bejegyzés/érkezett-e új beküldés, esetleg SMS-ben/e-mailben írja meg az íród, hogy átnézheted a munkáját... De ugyanígy hasznos lehet, ha esetleg már egyedi bejegyzéstípusban gyűjtöd az ajánlatkéréseket is.

A hosszú bevezetőt után következzen a kód (amit szokás szerint az mu-plugins mappába teszünk, mondjuk notification.php néven):

php
<?php
/*
Plugin Name: Notification plugin
Plugin URI: https://www.webmenedzser.hu
Description: Dead simple notification plugin for WordPress
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPL2
*/

function send_notification( $post_id ) {
	$post_title = get_the_title( $post_id );
	$post_edit_url = get_edit_post_link( $post_id, '' );
	$subject = 'Új, ' . get_post_type($post_id) . ' típusú bejegyzés publikálva!';

	$message = "Egy új " . get_post_type($post_id) . " típusú bejegyzést publikáltak. A megtekintéshez katt ide: \n\n";
	$message .= $post_title . ": " . $post_edit_url;

	wp_mail( 'yay@unicornsdatabase.com', $subject, $message );
}
add_action( 'publish_unicorn', 'send_notification' );

Nézzük a kódot, kezdjük a végén: a send_notification függvényt lefuttatjuk akkor, ha bekövetkezik a publish_unicorn esemény. Na és az mikor van?

A WordPress minden bejegyzéstípus állapotátmeneteihez elérhetővé teszi a {status}_{post_type} hook-ot. Ez akkor következik be, amikor a {post_type} bejegyzéstípusunk a {status} állapotba kerül.

Ugye-ugye, látod már... :) Szóval a korábban létrehozott unicorn bejegyzéstípusunk publish állapotba "érkezése" esetére a send_notification függvény le fog futni.

Na és mi van a függvényben? Semmi extra: a függvény megkapja a $post_id változót, ami az újonnan létrehozott bejegyzésünk ID-ja, majd ez alapján változókat definiálunk (cím, Vezérlőpultbeli szerkesztő URL, a kimenő levelünk tárgya illetve törzse). Amikor pedig mindezekkel végeztünk, akkor a wp_mail() függvénnyel kiküldjük a megadott e-mail címre a $subject tárggyal és $message levéltörzzsel. Yaay! :)

Megjegyzés: a wp_mail() a WordPressnek megadott levelezési beállításokat használja. Vagyis ha már megcsináltad az SMTP "pluginodat" az útmutatóm alapján, akkor az ott megadottakat tiszteletben fogja tartani és azokat használja. :)

A legjobb egyébként az egészben az, hogy teljes mértékben testreszabható, hogy milyen értesítést küldesz: nem muszáj ennek e-mailnek lennie, mehet akár Slack notification, vagy bármilyen REST API (mondjuk Mailchimp) meghívása is.

Na, ennyi volt - ahelyett, hogy "kitudjamilyen" notification plugineket kerestél volna a plugin repositoryban, megoldottad 10 sorból. Ügyes vagy! :)