Fejlesztőknek: shortcode-ok regisztrálása
Saját shortcode a YayMailhez: a BaseShortcode osztály, a get_shortcodes() és a visszahívó függvények.
Regisztráció
Szekció neve “Regisztráció”A shortcode-osztályt a yaymail_register_shortcodes akcióban példányosítod:
function register_shortcodes() { YourNewShortcodes::get_instance();}add_action( 'yaymail_register_shortcodes', 'register_shortcodes' );Az osztály
Szekció neve “Az osztály”Az osztály a \YayMail\Abstracts\BaseShortcode osztályból öröklődik. A konstruktorban az $available_email_ids tömb adja meg, mely sablonokban használható a shortcode. Négy módon adhatod meg:
- Konkrét sablonazonosítók tömbje, például
new_order,customer_processing_order. YAYMAIL_WITH_ORDER_EMAILS: csak a rendelési adatot tartalmazó sablonok.YAYMAIL_NON_ORDER_EMAILS: csak a rendelési adat nélküli sablonok.YAYMAIL_ALL_EMAILS: minden sablon.
A konstruktor végén hívd a parent::__construct()-ot, és az osztálynak legyen instance() metódusa (egypéldányos minta).
A get_shortcodes()
Szekció neve “A get_shortcodes()”A metódus a shortcode-ok listáját adja vissza. Minden elem mezői:
| Mező | Jelentés |
|---|---|
name |
Egyedi azonosító (ez lesz a [név] a szövegben). |
description |
Rövid leírás. |
group |
Csoport, amely alatt a shortcode a listában megjelenik. |
callback |
A függvény, amely előállítja a kimenetet. |
attributes |
Nem kötelező: a shortcode attribútumai alapértékkel (például text_link → here). |
A visszahívó függvény
Szekció neve “A visszahívó függvény”A függvény a szerkesztőben és a kiküldött e-mailben is ezzel állítja elő a kimenetet. Paraméterei:
$data: fő tulajdonságai arender_data, atemplateés azis_placeholder.$shortcode_atts: az attribútumok tömbje (csak attribútumos shortcode-nál).
A render_data a szerkesztőben a rendelést, az is_sample és az is_customized_preview jelzőt tartalmazza; kiküldött e-mailnél a get_content_html függvény adatait is hordozza. A jelzők:
| Jelző | Mikor igaz |
|---|---|
is_placeholder |
Ha az értéket helyőrzőként kell kezelni. |
is_sample |
Ha a szerkesztőben mintarendelés van kiválasztva. |
is_customized_preview |
Tesztlevél küldésekor vagy előnézetkor a szerkesztőben. |
Egy attribútumos példa: a függvény a text_link attribútumból és a sablon hivatkozásszínéből ($template->get_text_link_color(), ennek hiányában YAYMAIL_COLOR_WC_DEFAULT) egy linket ad vissza, az URL-t és a színt escape-elve:
public function new_shortcode_2_render_function( $data, $shortcode_atts = [] ) { $template = ! empty( $data['template'] ) ? $data['template'] : null; $text_link = $shortcode_atts['text_link'] ?? ''; $color = $template ? $template->get_text_link_color() : YAYMAIL_COLOR_WC_DEFAULT; return '<a style="color: ' . esc_attr( $color ) . ';" href="' . esc_url( get_home_url() ) . '">' . $text_link . '</a>';}A regisztrált shortcode-ok a szerkesztő shortcode-listájában a megadott csoport alatt jelennek meg (lásd a Shortcode-ok fejezetet).
Készült: