Tovább a tartalomhoz

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.

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 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:

  1. Konkrét sablonazonosítók tömbje, például new_order, customer_processing_order.
  2. YAYMAIL_WITH_ORDER_EMAILS: csak a rendelési adatot tartalmazó sablonok.
  3. YAYMAIL_NON_ORDER_EMAILS: csak a rendelési adat nélküli sablonok.
  4. 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 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 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 a render_data, a template és az is_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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások