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
}

Tworzy cztery strony prawne (regulamin, polityka prywatności, zwroty, reklamacje) jako puste szkice. Istniejąca strona jest używana ponownie, nigdy nie jest duplikowana ani nadpisywana. Szkice nie zawierają treści prawnej. Żądanie nie przyjmuje parametrów i nic nie robi, gdy moduł Strony prawne jest wyłączony.

Uprawnienia: manage_woocommerce

Przykładowe żądanie:

Okno terminala
curl -X POST \
-u admin:XXXX-XXXX-XXXX-XXXX \
"https://twojsklep.pl/wp-json/polski/v1/legal-pages/generate"

Odpowiedź: ta sama lista co w GET /polski/v1/legal-pages, z nowymi stronami w statusie 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.