# Fejlesztőknek: saját láthatósági feltétel

> Új feltétel készítése a Conditional Logic kiegészítőhöz: a BaseConditionalLogic osztály és a metódusai.

A [Láthatósági feltételek](https://hub.hellowp.io/hu/plugins/email-customizer-for-woocommerce/feltetelek/) kiegészítőhöz saját feltételt is írhatsz. Egy ilyen feltétel megjelenik a szerkesztő feltétellistájában, és a kód dönti el, hogy az elem megjelenjen-e az e-mailben. A feltétel egy osztály, amely a `YayMailAddonConditionalLogic\Abstracts\BaseConditionalLogic` osztályból öröklődik.

```php
<?php

use YayMailAddonConditionalLogic\SingletonTrait;
use YayMailAddonConditionalLogic\Abstracts\BaseConditionalLogic;

/**
 * Új feltétel
 */
class NewConditionalLogic extends YayMailAddonConditionalLogic\Abstracts\BaseConditionalLogic {
    use SingletonTrait;

    protected function __construct() {
        parent::__construct(
            'new_logic', // Egyedi kulcs.
            __( 'Conditional logic title', 'yaymail' ), // A felületen látható név.
            'single_select'
        );
    }

    public function get_options() {
        $options = [
            [
                'label' => 'Option 1',
                'value' => 'option_1',
            ],
            [
                'label' => 'Option 2',
                'value' => 'option_2',
            ],
        ];
        return $options;
    }

    public function check_logic( $args ) {
        // Ha a függvény true-t ad, a feltétel teljesül, és a feltételhez kötött elem megjelenik az elküldött e-mailben.
        $condition       = $args['condition'];
        $order           = $args['order'];
        $condition_value = $condition['value'];

        return true;
    }
}
```

## A konstruktor

A szülő konstruktorának három paramétert kell átadnod: `$logic_key`, `$title`, `$value_type`.

- **Logic key** (szöveg): a feltétel egyedi azonosítója.
- **Title** (szöveg): rövid név, amely megmondja, mire vonatkozik a feltétel. Ez látszik a felületen.
- **Value type**: az értékek típusa. A fenti példában `single_select`, vagyis egy lista egyetlen választható értékkel.

## A `get_options()` függvény

Ez adja vissza a feltétel választható értékeit: tömb, amelynek minden eleme tartalmaz egy `label` (megjelenő név) és egy `value` (érték) mezőt. Ha az érték típusa szöveg vagy szám, ezt a függvényt nem kell megírnod.

## A `check_logic()` függvény

Ez az e-mail előállításakor fut le. Ha `true`-t ad vissza, a feltétel teljesül, és az elem megjelenik. A függvény bemenete az `$args` tömb, amelyből a `order` (a rendelés) és a `condition` (a szerkesztőben beállított feltétel, benne a kiválasztott `value`) érhető el.
