Przejdź do głównej zawartości

REST API

REST API w namespace polski/v1/. Zarządzaj ustawieniami, checkboxami prawnymi, stronami prawnymi i wyszukiwaniem produktów.

Endpointy modyfikujące dane (POST, PUT, DELETE) wymagają uwierzytelnienia. Endpoint /search jest publiczny.

Obsługiwane metody uwierzytelniania:

  • Application Passwords (WordPress 5.6+) - zalecane
  • Cookie + nonce - dla żądań z panelu admina
  • Basic Auth (z wtyczką Basic Auth) - tylko dla developmentu

Wymagane uprawnienie: manage_woocommerce (domyślnie rola Administrator i Menedżer sklepu).

Pobiera wszystkie grupy ustawień wtyczki.

Uprawnienia: manage_woocommerce

Przykład żądania:

Okno terminala
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://twojsklep.pl/wp-json/polski/v1/settings"

Przykład odpowiedzi:

{
"groups": [
{
"id": "general",
"label": "Ustawienia ogólne",
"description": "Podstawowa konfiguracja wtyczki"
},
{
"id": "compliance",
"label": "Wymogi prawne",
"description": "Ustawienia wymogów prawa UE i polskiego"
},
{
"id": "storefront",
"label": "Moduły sklepowe",
"description": "Moduły rozszerzające sklep"
},
{
"id": "checkout",
"label": "Kasa i zamówienia",
"description": "Ustawienia kasy i procesu zamówienia"
}
]
}

Pobiera ustawienia z wybranej grupy.

Parametry URL:

ParametrTypOpis
groupstringID grupy ustawień

Uprawnienia: manage_woocommerce

Przykład żądania:

Okno terminala
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://twojsklep.pl/wp-json/polski/v1/settings/compliance"

Przykład odpowiedzi:

{
"group": "compliance",
"settings": {
"omnibus_enabled": true,
"omnibus_days": 30,
"gpsr_enabled": true,
"withdrawal_enabled": true,
"withdrawal_days": 14,
"dsa_enabled": true,
"ksef_enabled": false,
"greenwashing_enabled": true
}
}

Aktualizuje ustawienia w wybranej grupie.

Uprawnienia: manage_woocommerce

Przykład żądania:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"omnibus_days": 30, "withdrawal_days": 14}' \
"https://twojsklep.pl/wp-json/polski/v1/settings/compliance"

Przykład odpowiedzi:

{
"updated": true,
"group": "compliance",
"changes": {
"omnibus_days": 30,
"withdrawal_days": 14
}
}

Pobiera listę wszystkich checkboxów prawnych (kasa, rejestracja, kontakt).

Uprawnienia: manage_woocommerce

Przykład odpowiedzi:

{
"checkboxes": [
{
"id": 1,
"label": "Akceptuję regulamin sklepu",
"required": true,
"location": "checkout",
"enabled": true,
"position": 10,
"legal_page_id": 45
},
{
"id": 2,
"label": "Zapoznałem się z polityką prywatności",
"required": true,
"location": "checkout",
"enabled": true,
"position": 20,
"legal_page_id": 47
}
],
"total": 2
}

Pobiera statystyki akceptacji checkboxów.

Uprawnienia: manage_woocommerce

Przykład odpowiedzi:

{
"stats": [
{
"checkbox_id": 1,
"label": "Akceptuję regulamin sklepu",
"total_shown": 1250,
"total_accepted": 1180,
"acceptance_rate": 94.4
}
]
}

Pobiera szczegóły pojedynczego checkboxa.

Parametry URL:

ParametrTypOpis
idintID checkboxa

Uprawnienia: manage_woocommerce

Przykład odpowiedzi:

{
"id": 1,
"label": "Akceptuję regulamin sklepu",
"required": true,
"location": "checkout",
"enabled": true,
"position": 10,
"legal_page_id": 45,
"created_at": "2025-01-15T10:30:00",
"updated_at": "2025-06-01T14:22:00",
"stats": {
"total_shown": 1250,
"total_accepted": 1180,
"acceptance_rate": 94.4
}
}

Aktualizuje checkbox.

Uprawnienia: manage_woocommerce

Przykład żądania:

Okno terminala
curl -X PUT \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"label": "Akceptuję regulamin", "required": true}' \
"https://twojsklep.pl/wp-json/polski/v1/checkboxes/1"

Pobiera listę stron prawnych (regulamin, polityka prywatności itp.).

Uprawnienia: manage_woocommerce

Przykład odpowiedzi:

{
"pages": [
{
"id": 45,
"type": "terms",
"title": "Regulamin sklepu",
"status": "publish",
"url": "https://twojsklep.pl/regulamin/",
"last_modified": "2025-06-01T14:00:00",
"word_count": 3200
},
{
"id": 47,
"type": "privacy",
"title": "Polityka prywatności",
"status": "publish",
"url": "https://twojsklep.pl/polityka-prywatnosci/",
"last_modified": "2025-05-15T09:30:00",
"word_count": 2800
}
],
"total": 2
}

Generuje stronę prawną na podstawie szablonu.

Uprawnienia: manage_woocommerce

Parametry body:

ParametrTypWymaganyOpis
typestringTakTyp strony: terms, privacy, withdrawal, dsa_report
company_namestringTakNazwa firmy
company_addressstringTakAdres firmy
emailstringTakAdres e-mail kontaktowy
phonestringNieNumer telefonu
nipstringNieNIP firmy

Przykład żądania:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"type": "terms", "company_name": "Mój Sklep Sp. z o.o.", "company_address": "ul. Przykładowa 1, 00-001 Warszawa", "email": "kontakt@mojsklep.pl"}' \
"https://twojsklep.pl/wp-json/polski/v1/legal-pages/generate"

Przykład odpowiedzi:

{
"page_id": 120,
"type": "terms",
"title": "Regulamin sklepu",
"url": "https://twojsklep.pl/regulamin/",
"status": "draft"
}

Wyszukiwanie produktów (endpoint publiczny).

Parametry query:

ParametrTypWymaganyOpis
qstringTakFraza wyszukiwania
limitintNieLimit wyników (domyślnie 8)
catintNieID kategorii

Uprawnienia: publiczny (nie wymaga uwierzytelnienia)

Przykład żądania:

Okno terminala
curl "https://twojsklep.pl/wp-json/polski/v1/search?q=buty&limit=5"

Przykład odpowiedzi:

{
"results": [
{
"id": 456,
"title": "Buty sportowe Nike",
"url": "https://twojsklep.pl/produkt/buty-sportowe-nike/",
"image": "https://twojsklep.pl/wp-content/uploads/buty-nike.jpg",
"price_html": "<span class=\"amount\">299,00&nbsp;zł</span>",
"category": "Obuwie",
"in_stock": true,
"rating": 4.8
}
],
"total": 1,
"query": "buty"
}

Oznacza kreator konfiguracji jako ukończony.

Uprawnienia: manage_woocommerce

Parametry body:

ParametrTypWymaganyOpis
steps_completedarrayTakLista ukończonych kroków

Przykład żądania:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
-H "Content-Type: application/json" \
-d '{"steps_completed": ["company_info", "legal_pages", "checkboxes", "compliance"]}' \
"https://twojsklep.pl/wp-json/polski/v1/wizard/complete"

Przykład odpowiedzi:

{
"completed": true,
"completed_at": "2025-06-15T12:00:00",
"steps": {
"company_info": true,
"legal_pages": true,
"checkboxes": true,
"compliance": true
}
}
KodOpis
200Sukces
201Zasób utworzony (POST)
400Nieprawidłowe żądanie (brakujące parametry)
401Brak uwierzytelnienia
403Brak uprawnień
404Zasób nie znaleziony
500Błąd serwera

Każdy endpoint ma filtr do modyfikacji odpowiedzi:

add_filter('polski/rest/settings_response', function (array $response, WP_REST_Request $request): array {
// Modyfikacja odpowiedzi
return $response;
}, 10, 2);

Brak wbudowanego rate limitingu. Użyj Cloudflare, Nginx lub wtyczki do limitowania publicznych endpointów.

Zgłaszanie problemów: github.com/wppoland/polski/issues

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.