# Woo - termékek widget fejlesztőknek

> Action- és filter-horgok a termékkártya elemeihez, a lekérdezéshez, a szerkezethez és a gyorsnézethez.

A **Woo - termékek** widget kimenetét PHP-horgokkal módosíthatod. A kódot a gyermektéma `functions.php` fájljába vagy egy saját bővítménybe tedd.

## Action-horgok

Minden action két paramétert kap: a termék azonosítóját (`$product_id`) és a widget beállításait (`$settings`). Az első szám a prioritás, a második a paraméterek száma.

| Horog | Mikor fut le |
|---|---|
| `uael_woo_products_before_summary_wrap` | A termékösszegzés elején. |
| `uael_woo_products_after_summary_wrap` | A termékösszegzés végén. |
| `uael_woo_products_title_before` | A termék címe előtt. |
| `uael_woo_products_title_after` | A termék címe után. |
| `uael_woo_products_price_before` | Az ár előtt. |
| `uael_woo_products_price_after` | Az ár után. |
| `uael_woo_products_rating_before` | Az értékelés előtt. |
| `uael_woo_products_rating_after` | Az értékelés után. |
| `uael_woo_products_short_description_before` | A rövid leírás előtt. |
| `uael_woo_products_short_description_after` | A rövid leírás után. |
| `uael_woo_products_add_to_cart_before` | A kosárba tétel gomb előtt. |
| `uael_woo_products_add_to_cart_after` | A kosárba tétel gomb után. |
| `uael_woo_products_category_before` | A kategória előtt. |
| `uael_woo_products_category_after` | A kategória után. |

Példa: szöveg a termékösszegzés elejére.

```php
function summary_wrap( $product_id, $settings ) {
    echo '<div>Ez a termékösszegzés eleje.</div>';
}
add_action( 'uael_woo_products_before_summary_wrap', 'summary_wrap', 10, 2 );
```

A többi horog ugyanígy működik, csak a horog nevét kell kicserélni.

## Filter-horgok

A lekérdezés argumentumainak módosítása:

```php
add_filter( 'uael_woo_product_query_args', function( $query, $settings ) {
    // Itt módosíthatod a lekérdezést.
    return $query;
}, 10, 2 );
```

Az „Elfogyott” felirat módosítása:

```php
add_filter( 'uael_woo_out_of_stock_string', function( $modified_string ) {
    // Itt módosíthatod a szöveget.
    return $modified_string;
}, 10, 2 );
```

A termékcím hivatkozásának módosítása:

```php
add_filter( 'uael_woo_title_link', function( $title_link ) {
    // Itt módosíthatod a hivatkozást.
    return $title_link;
}, 10, 2 );
```

A termékkártya elemeinek sorrendje. A tömbben szereplő elemek cseréjével átrendezheted a kártyát:

```php
add_filter( 'uael_woo_products_content_structure', function( $shop_structure, $settings ) {
    $shop_structure = [ 'category', 'ratings', 'title', 'price', 'add_cart', 'short_desc' ];
    return $shop_structure;
}, 10, 2 );
```

A termékkép hivatkozásának kikapcsolása (`false` visszaadásával):

```php
add_filter( 'uael_product_disable_link', function( $is_enable ) {
    // Térj vissza false értékkel a hivatkozás kikapcsolásához.
    return $is_enable;
}, 10, 2 );
```

A gyorsnézet szerkezete. Itt is a tömb elemeinek cseréjével alakíthatod:

```php
add_filter( 'uael_quick_view_product_structure', function( $quick_view_structure ) {
    $quick_view_structure = [ 'title', 'ratings', 'price', 'short_desc', 'add_cart' ];
    return $quick_view_structure;
}, 10, 2 );
```

### A „Gyorsnézet” szöveg átírása

A gyorsnézet gombjának szövege nem állítható a widget beállításaiból, de a `gettext` szűrővel átírhatod. A kód a WordPress fordítási rendszerébe kapcsolódik, és a bővítmény szövegtárában (`uael`) keresi a megadott szöveget.

1. Készíts biztonsági másolatot a téma `functions.php` fájljáról.
2. Lépj be a WordPress admin felületére, és nyisd meg a **Megjelenés → Témafájl-szerkesztő** oldalt (vagy használj gyermektémát).
3. A jobb oldali fájllistában válaszd ki a `functions.php` fájlt.
4. Illeszd be a lenti kódot, és mentsd a fájlt. A változás azonnal érvényesül.
5. Nyisd meg a boltoldalt, és vidd az egeret a termékképre: a gyorsnézet gombján az új szöveg áll.

A példa a szöveget „Megnézem”-re cseréli (a `case` ágban a felületen most látható szöveg áll):

```php
add_filter( 'gettext', function( $translated_text, $text, $domain ) {
    if ( $domain === 'uael' ) {
        switch ( $translated_text ) {
            case 'Quick View':
                $translated_text = __( 'Megnézem', 'uael' );
                break;
        }
    }
    return $translated_text;
}, 20, 3 );
```

A `case` ágban annak a szövegnek kell állnia, amelyet a felületen most látsz, a magyar felületen tehát a magyar felirat.
