# Horgok: időpontok

> Az időpontok hozzáadásához, módosításához, státuszváltásához, lekéréséhez és törléséhez kapcsolódó szűrők és műveletek.

Az időpontok horgaival módosíthatod az időpont adatait mentés vagy lekérés előtt, vagy saját kódot futtathatsz, amikor egy időpont létrejön, módosul, státuszt vált, lekérésre kerül vagy törlődik. A bővítmény fájljaihoz nem kell nyúlnod, így a testreszabásaid a frissítések után is megmaradnak. A horgokhoz programozási ismeret kell, a támogatás csak általános tanácsot ad. A szűrők és műveletek közötti különbséget a [WordPress-horgok áttekintése](https://hub.hellowp.io/hu/plugins/ameliabooking/fejlesztoknek-horgok-attekintes/) írja le.

Az alábbi horgok a háttérfelületről (adminból) végzett műveleteknél futnak.

| Horog | Típus | Mikor fut | Paraméterek |
|---|---|---|---|
| `amelia_before_appointment_added_filter` | szűrő | az időpont hozzáadása előtt, módosíthatod az időpont adatait | `$appointment`, `$service`, `$paymentData` |
| `amelia_before_appointment_added` | művelet | az időpont hozzáadása előtt | `$appointment`, `$service`, `$paymentData` |
| `amelia_after_appointment_added` | művelet | az időpont hozzáadása után | `$appointment`, `$service`, `$paymentData` |
| `amelia_before_appointment_updated_filter` | szűrő | az időpont módosítása előtt, módosíthatod az időpont adatait | `$appointment`, `$removedBookings`, `$service` |
| `amelia_before_appointment_updated` | művelet | az időpont módosítása előtt | `$appointment`, `$removedBookings`, `$service` |
| `amelia_after_appointment_updated` | művelet | az időpont módosítása után | `$appointment`, `$oldAppointment`, `$removedBookings`, `$service`, `$paymentData` |
| `amelia_before_appointment_status_updated` | művelet | az időpont státuszának módosítása előtt | `$appointment`, `$requestedStatus` |
| `amelia_after_appointment_status_updated` | művelet | az időpont státuszának módosítása után | `$appointment`, `$requestedStatus` |
| `amelia_get_appointments_filter` | szűrő | az időpontok lekérése előtt, módosíthatod a listát | `$appointments` |
| `amelia_get_appointments` | művelet | az időpontok lekérése előtt | `$appointments` |
| `amelia_get_appointment_filter` | szűrő | egy időpont lekérése előtt, módosíthatod az adatait | `$appointment` |
| `amelia_get_appointment` | művelet | egy időpont lekérése előtt | `$appointment` |
| `amelia_before_appointment_deleted` | művelet | az időpont törlése előtt | `$appointment` |
| `amelia_after_appointment_deleted` | művelet | az időpont törlése után | `$appointment` |

A paraméterek száma mindig szerepel a `add_filter` és az `add_action` negyedik argumentumában.

## Példák

Időpont módosítása hozzáadás előtt (szűrő, mindig visszaadod az időpontot):

```php
function example($appointment, $service, $paymentData)
{
    // az időpont adatainak módosítása
    return $appointment;
}

add_filter('amelia_before_appointment_added_filter', 'example', 10, 3);
```

Saját kód futtatása hozzáadás után (művelet, nem adsz vissza semmit):

```php
function example($appointment, $service, $paymentData)
{
    // saját művelet
}

add_action('amelia_after_appointment_added', 'example', 10, 3);
```

Módosítás utáni művelet, amely a régi időpontot is megkapja:

```php
function example($appointment, $oldAppointment, $removedBookings, $service, $paymentData)
{
    // saját művelet
}

add_action('amelia_after_appointment_updated', 'example', 10, 5);
```

Státuszváltás utáni művelet:

```php
function example($appointment, $requestedStatus)
{
    // saját művelet
}

add_action('amelia_after_appointment_status_updated', 'example', 10, 2);
```

Az időpontlista módosítása lekérés előtt:

```php
function example($appointments)
{
    // az időpontok módosítása
    return $appointments;
}

add_filter('amelia_get_appointments_filter', 'example', 10, 1);
```
