=== Order Share Odinokov ===
Contributors: odinokov
Tags: woocommerce, share, print, pdf, web share api, order form, popup, captcha
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 5.0
Stable tag: 1.0.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.txt

Плагин объединяет функционал кнопок «Отправить», «Сохранить PDF» и «Оставить заявку» (PopUp форма). Все три кнопки в одной строке на странице товара с единым настраиваемым стилем. Совместим с Porto.

== Description ==

Плагин добавляет на Single Product Page (после meta/цены/кнопки) и на страницы записей (single post) три кнопки в одну строку:

1. **«Отправить»** — открывает нативный диалог отправки устройства (Web Share API). Если устройство/браузер не поддерживает — fallback: копирование ссылки в буфер обмена или `mailto:`.
2. **«Сохранить PDF»** — открывает диалог печати браузера. Имя файла задаётся в настройках.
3. **«Оставить заявку»** — открывает PopUp форму с капчей, защитой от ботов и AJAX-отправкой на email. Кнопка в карточке товара + в списке товаров (опционально).

Особенности:

* **Единый стиль** — фон, текст, граница (толщина/радиус/цвет), шрифт, размер, жирность, uppercase, padding, gap — настраивается в одном месте и применяется ко всем трём кнопкам.
* **Иконки** — каждая кнопка может использовать Font Awesome (по умолчанию из Porto) или свой PNG/SVG URL. По умолчанию:
  * Отправить: `fa-solid fa-share-nodes`
  * PDF: `fa-solid fa-file-pdf`
  * Заявка: `fa-regular fa-paper-plane`
* **PopUp-форма** — ИНН, Имя, Email, Комплектующие, Вложения (до 3 файлов), Доставка, Капча. Все поля включаются/выключаются чекбоксами.
* **Защита от ботов** — капча (арифметика), nonce-проверка, валидация файлов по типу и размеру.
* **Отключение add-to-cart** — опционально отключает стандартные кнопки WC (в карточке и в списке) и блокирует AJAX add-to-cart.
* **Совместим с Porto** — использует стандартные хуки `woocommerce_single_product_summary`, `porto_woocommerce_share`, плюс fallback через `the_content`.
* **SEO friendly** — кнопки не закрывают контент, валидный HTML, кэшируется.
* **Безопасный** — `ABSPATH` guard, санитизация всех опций, `esc_html/esc_attr/esc_url` на выводе, JSON через `wp_json_encode`, nonce для AJAX.
* **Без зависимости от jQuery** — публичный JS на чистом ES6 + `fetch`.

== Installation ==

1. Скопируйте папку `order-share-odinokov` в `wp-content/plugins/`.
2. Активируйте плагин в **Плагины → Установленные**.
3. Перейдите в **Настройки → Order Share Odinokov** и выполните настройку.
4. На нужных страницах появятся кнопки «Отправить», «Сохранить PDF» и «Оставить заявку».

== Changelog ==

= 1.0.5 =
* Ограничение иконки 18×18 px (CSS с !important + width/height атрибуты) — пропорциональный вид кнопки в любых списках.
* Загрузка кастомных иконок через Media Library (стандартный медиа-диалог WP, кнопки «Загрузить / Выбрать» и «Очистить», превью).
* Color picker для полей цвета (фон, текст, граница) — стандартный wp-color-picker.

= 1.0.4 =
* Share class IIFE больше не обрабатывает кнопки share/PDF (только order) — устраняет двойной вызов window.print() / navigator.share() при клике. Share/PDF обрабатываются только через прямой binding в oso-public.js.

= 1.0.3 =
* Убран отладочный визуальный feedback (розовая/зелёная вспышка при клике) — финальная версия.

= 1.0.2 =
* Прямой binding обработчиков на share и PDF кнопки (та же стратегия, что для «Оставить заявку») — устраняет конфликты с другими JS, перехватывающими capture-phase.

= 1.0.1 =
* КРИТИЧНО: после обновления обязательно очистите кэш (плагин кэширования WP, кэш браузера, CDN) — версия плагина увеличена с 1.0.0 до 1.0.1 для инвалидации кэша скриптов.
* Прямой binding обработчика клика на кнопку «Оставить заявку» в oso-public.js вместо делегирования — устраняет конфликты с другими JS.
* Видимый feedback при клике (временная подсветка кнопки) и сообщения об ошибках.
* href="javascript:void(0)" вместо href="#" — никаких прокруток при неработающем JS.
* Z-index модалки 2147483600 с !important — гарантированно поверх всех элементов.
* События click, touchend, pointerup — покрытие десктоп/мобильных.

= 1.0.0 =
* Первый релиз объединённого плагина.
* Кнопки «Отправить» (Web Share API), «Сохранить PDF» (Print), «Оставить заявку» (PopUp).
* Единый настраиваемый стиль для всех трёх кнопок.
* Капча, защита от ботов, AJAX-отправка заявок.
* Опциональное отключение WC add-to-cart.
