# Poker Kat Play — WordPress плъгин

Версия 1.0.0 · Подготвен за pokerkat.com · Интерфейс на английски

## Какво получаваш

- Осемместна Texas Hold’em маса с виртуални чипове.
- Реален посетител резервира място на бот и го заменя преди следващата ръка.
- До осем човека на общата маса; свободните места се запълват с ботове.
- Скритите карти, ходовете, all-in сумите и страничните потове се обработват на PHP сървъра.
- Калкулатор за 2–8 играчи: equity, победа, равенство и pot odds.
- Три стила на ботовете, история на текущата ръка и математически подсказки.
- Контрастна виолетова/циан визия, адаптивен интерфейс и анимация за текущия ход. Уважава настройката reduced motion.
- Видими английски SEO обяснения и разгъваем FAQ в самата WordPress страница.
- Не изисква Node.js, ChatGPT, отделна MySQL база или API ключ.

## Изисквания

WordPress 6.0+, PHP 8.1+ (64-bit), HTTPS и достъпна WordPress REST API. Използва вече конфигурираната WordPress база чрез `$wpdb`. WordPress потребителят на базата трябва да може да създаде една нова таблица при активиране. Активирай на отделен сайт, не network-wide при Multisite.

Това е нов плъгин. Преди първо пускане направи архив на сайта и базата и го тествай на staging или на непубликувана страница. Нямам администраторски достъп до pokerkat.com и не съм проверил съвместимостта с инсталираните там плъгини, кеширане или реалната MySQL конфигурация.

## Инсталация

1. Влез в WordPress администрацията на pokerkat.com.
2. Отвори **Plugins → Add New Plugin → Upload Plugin**.
3. Избери **PokerKat_Play_WordPress_v1.0.0.zip**, без да го разархивираш.
4. Натисни **Install Now → Activate**.
5. Отвори **Pages → Add New** и направи тестова страница, например **Free Poker Practice**.
6. Добави блок **Shortcode** и постави:

```
[pokerkat]
```

7. Отвори Preview и провери играта и калкулатора.
8. За да го сложиш на вече съществуваща начална страница, редактирай тази страница и постави същия Shortcode блок на избраното място.

При Elementor използвай widget **Shortcode**. При друг page builder използвай неговия елемент за shortcode. Няма нужда да променяш `index.php`, `functions.php` или файловете на темата.

Плъгинът НЕ променя автоматично началната страница, менюта, съществуващи статии, заглавия или SEO настройки. Ако началната страница в момента е списък с последни публикации, първо направи отделната страница. Преминаване към статична начална страница от **Settings → Reading** променя оформлението на сайта — направи го само ако това е желаното разположение.

За най-добър изглед избери **Full Width / No Sidebar** за страницата, ако темата предлага този шаблон. Играта е изолирана в собствен прозорец на същия домейн, а видимите SEO секции се рендират като част от WordPress страницата.

## Задължителни настройки при кеширане

Добави изключения в кеш плъгина, CDN или хостинг кеша:

- URL с параметър `pokerkat_embed=1`.
- `/wp-json/pokerkat/v1/*`.
- При plain permalinks: заявки с `rest_route=/pokerkat/v1/table`.

Не кеширай POST заявките към игровия API. Не комбинирай, не отлагай и не пренаписвай JavaScript module файловете от `pokerkat-play/assets/`. WordPress страницата с текста може да се кешира, но вграденият игрови прозорец и API отговорите трябва да останат некеширани, защото са различни за всеки играч.

Плъгинът изпраща no-store headers и DONOTCACHEPAGE за игровия прозорец, но някои прокси/CDN кешове обработват заявката преди WordPress. Затова изключенията трябва да се проверят на твоя хостинг.

## Как влизат играчите

Всеки посетител отваря страницата, въвежда име и натиска **Take a seat**. Не е нужна WordPress регистрация. Използва се подписана HttpOnly cookie сесия за този браузър, до 30 дни. При изчистване на cookies или в друг браузър посетителят е нов играч.

За тест с двама човека отвори от две устройства или различни браузърни профили. Два таба в един профил споделят сесията и представляват един играч. При заета маса нов посетител чака да се освободи място.

Има една обща маса за цялата WordPress инсталация. Всички страници с shortcode показват същата маса. Начален стак 1 000, блиндове 10/20. Празен стак се презарежда между ръцете. Таймер 30 секунди: check, ако няма залог за плащане, иначе fold. След около 90 секунди без връзка ботът поема, а мястото се освобождава преди следващата ръка.

Играта се обновява чрез кратки заявки приблизително през 1.5 секунди. Без отворени браузъри няма отделен фонов часовник. Данните се пазят в таблицата `<WP_PREFIX>pokerkat_tables`; деактивирането не ги изтрива. Няма депозити, плащания, теглене или реални парични награди.

## SEO настройка за Poker Kat

Предложен адрес за отделна страница: `/free-poker/`. Предложено заглавие на страницата: **Free Poker Practice & Odds Calculator**.

В съществуващия SEO плъгин на тази страница можеш да зададеш:

**SEO title:**
Free Poker Practice & Texas Hold’em Odds Calculator | Poker Kat

**Meta description:**
Practice Texas Hold’em at an eight-seat table with bots and friends. Explore poker equity and pot odds with Poker Kat’s free play-money game and calculator.

Плъгинът не добавя скрити ключови думи, meta keywords, фиктивни оценки или различно съдържание за Googlebot. Не дублира SEO заглавия, canonical тагове или schema от Yoast/Rank Math. FAQ и обясненията са достъпни за всеки посетител и присъстват в HTML на основната страница, извън играта.

Тематичните фрази са включени естествено: free poker practice, Texas Hold’em odds calculator, poker equity, pot odds, play poker against bots, practice poker with friends, side pots. Не е правено отделно проучване на обеми/конкуренция и няма обещание за класиране.

В публично достъпния изглед на pokerkat.com беше показано съобщение за проблем с BackLinks software в долната част. Провери кой плъгин/уиджет го добавя и отстрани грешката. Poker Kat Play не го променя и не го премахва автоматично.

## Ако не работи

- **Reload the game / session error:** провери cookies, HTTPS и изключенията от кеша.
- **403 / REST blocked:** провери security плъгина и хостинга за блокиран `/wp-json/pokerkat/v1/table`; не изключвай всички защити на сайта.
- **404 / не се зарежда:** провери дали плъгинът е активен и query параметърът `pokerkat_embed=1` достига WordPress.
- **Синтактична грешка при активиране:** провери PHP версията. Нужна е 8.1+.
- **Table unavailable:** провери създаването на `<WP_PREFIX>pokerkat_tables`, DB правата и PHP error log.
- **Тясна маса:** използвай страница Full Width без странична колона.
- **Високо натоварване:** провери ограниченията на споделения хостинг. Честите заявки минават през WordPress; реалният капацитет трябва да се измери на твоя план. Пакетът е за една осемместна маса.

## Проверки преди предаване

PHP 8.3 синтаксис и изпълнение в изолирана WebAssembly среда; 1 000 сравнения на оценителя с JS версията; 250 случайни ръце със запазване на чиповете; all-in side pots; ограничения при кратък raise; скрити карти; резервиране на осем места. Допълнително: подпис на сесия, CSRF и Origin проверки, повтарящи се и остарели ходове със симулирана WordPress среда и SQLite адаптер.

Това не е пълен тест върху истински WordPress, MySQL или върху живия pokerkat.com. Необходима е проверка на staging преди включване в началната страница. При проблем изпрати снимка/съобщение от лога без пароли, cookies или wp-config.php.
