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://example.com/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:

Parametr Typ Opis
group string ID grupy ustawień

Uprawnienia: manage_woocommerce

Przykład żądania:

Okno terminala
curl -u admin:XXXX-XXXX-XXXX-XXXX \
"https://example.com/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://example.com/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:

Parametr Typ Opis
id int ID 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://example.com/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://example.com/regulamin/",
"last_modified": "2025-06-01T14:00:00",
"word_count": 3200
},
{
"id": 47,
"type": "privacy",
"title": "Polityka prywatności",
"status": "publish",
"url": "https://example.com/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:

Parametr Typ Wymagany Opis
type string Tak Typ strony: terms, privacy, withdrawal, dsa_report
company_name string Tak Nazwa firmy
company_address string Tak Adres firmy
email string Tak Adres e-mail kontaktowy
phone string Nie Numer telefonu
nip string Nie NIP 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": "[email protected]"}' \
"https://example.com/wp-json/polski/v1/legal-pages/generate"

Przykład odpowiedzi:

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

Wyszukiwanie produktów (endpoint publiczny).

Parametry query:

Parametr Typ Wymagany Opis
q string Tak Fraza wyszukiwania
limit int Nie Limit wyników (domyślnie 8)
cat int Nie ID kategorii

Uprawnienia: publiczny (nie wymaga uwierzytelnienia)

Przykład żądania:

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

Przykład odpowiedzi:

{
"results": [
{
"id": 456,
"title": "Buty sportowe Nike",
"url": "https://example.com/produkt/buty-sportowe-nike/",
"image": "https://example.com/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:

Parametr Typ Wymagany Opis
steps_completed array Tak Lista 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://example.com/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
}
}
Kod Opis
200 Sukces
201 Zasób utworzony (POST)
400 Nieprawidłowe żądanie (brakujące parametry)
401 Brak uwierzytelnienia
403 Brak uprawnień
404 Zasób nie znaleziony
500 Błą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.