# Funkciókapcsolók és kezelt e-mail-típusok

> Funkciók ki- és bekapcsolása a gravitysmtp_feature_flag szűrővel, és saját e-mail-típusok felvétele az E-mail-kezelésbe.

## gravitysmtp_feature_flag (filter)

Fejlesztőként letilthatsz egyes Gravity SMTP funkciókat. Alapból minden funkció be van kapcsolva.

```php
add_filter( 'gravitysmtp_feature_flag', 'fuggveny_neve', 10 );
```

| Paraméter | Típus | Leírás |
|---|---|---|
| `$enabled` | logikai | `true` vagy `false`: a funkció be- vagy kikapcsolt. |
| `$flag_name` | szöveg | A funkció neve. |

A `$flag_name` lehetséges értékei:

| Név | Elérhető |
|---|---|
| `mailchimp_integration` | 1.5.0-tól |
| `gravitysmtp_dashboard_app` | 1.4.0-tól |
| `amazon_ses_integration` | 1.4.0-tól |
| `gravityforms_entry_note` | 1.4.0-tól |
| `wp_email_management` | 1.3.0-tól |

A szűrő a Gravity SMTP 1.3.0-s verziójától érhető el.

### Példák

Minden funkció bekapcsolása:

```php
add_filter( 'gravitysmtp_feature_flag', '__return_true' );
```

Minden funkció kikapcsolása:

```php
add_action( 'plugins_loaded', function () {
    add_filter( 'gravitysmtp_feature_flag', '__return_false', PHP_INT_MAX );
}, 99 );
```

Egy adott funkció bekapcsolása:

```php
add_filter( 'gravitysmtp_feature_flag', function( $enabled, $flag_name ) {
    return $flag_name === 'funkcio_neve' ? true : $enabled;
}, 10, 2 );
```

Egy adott funkció kikapcsolása:

```php
add_action( 'plugins_loaded', function () {
    add_filter( 'gravitysmtp_feature_flag', function ( $enabled, $flag_name ) {
        return $flag_name === 'funkcio_neve' ? false : $enabled;
    }, PHP_INT_MAX, 2 );
}, 99 );
```

Funkció kikapcsolásához a `plugins_loaded` hookot és a `PHP_INT_MAX` prioritást kell használnod, mert a bővítmény belül ugyanígy kapcsolja be a funkciókat.

## gravitysmtp_managed_email_types (filter)

Módosíthatod vagy bővítheted a kezelt e-mail-típusok listáját, vagyis saját típusokat vehetsz fel az E-mail-kezelés képernyőre. Így a saját levelek is ki- és bekapcsolhatók ott.

```php
add_filter( 'gravitysmtp_managed_email_types', 'fuggveny_neve', 10, 1 );
```

A paraméter (`$email_types`) a kezelt e-mail-típusok tömbje. Egy típus elemei:

| Elem | Leírás |
|---|---|
| `key` | Egyedi azonosító. Nincs formai követelmény, de a regisztrált típusok között egyedinek kell lennie. |
| `label` | Rövid, leíró név, ez látszik az E-mail-kezelés képernyőn. |
| `category` | A kategória neve, amely csoportfejlécként jelenik meg a képernyőn. |
| `description` | Részletes leírás: mi a levél, kik a címzettek, és mi váltja ki. A címke alatt jelenik meg. |
| `disable_callback` | Meghívható (callable) függvény, amely akkor fut, amikor a levelet letiltják. Az a dolga, hogy ténylegesen megakadályozza a küldést. WordPress-magleveleknél ez általában egy action eltávolítása vagy egy szűrő `false` értékkel való visszatérése. |

Példa két egyedi e-mail-típus felvételére:

```php
add_filter( 'gravitysmtp_managed_email_types', function ( $email_types ) {
    $custom_emails = [
        [
            'key'         => 'new_user_welcome_email',
            'label'       => 'Új felhasználó üdvözlő e-mailje',
            'category'    => 'Egyedi értesítések',
            'description' => 'Sikeres regisztráció után megy az új felhasználónak.',
            'filter'      => 'wp_new_user_notification_email',
        ],
        [
            'key'         => 'comment_moderation_email',
            'label'       => 'Hozzászólás-moderálási e-mail',
            'category'    => 'Egyedi értesítések',
            'description' => 'A moderátoroknak megy, ha egy hozzászólás jóváhagyásra vár.',
            'filter'      => 'notify_moderator',
        ],
    ];

    foreach ( $custom_emails as $email ) {
        $email_types[] = new \Gravity_Forms\Gravity_SMTP\Email_Management\Managed_Email(
            key: $email['key'],
            label: $email['label'],
            category: $email['category'],
            description: $email['description'],
            disable_callback: function () use ( $email ) {
                add_filter( $email['filter'], '__return_false' );
            }
        );
    }

    return $email_types;
}, 10, 1 );
```

A felvett típusok az E-mail-kezelés képernyőn a megadott kategória alatt jelennek meg.

A szűrő a Gravity SMTP 1.3-as verziójától érhető el.
