Use case
Plugin umí trackovat konverze mimo WooCommerce — typicky kontaktní formuláře, lead generation, registrace na webinář, downloady. Komunikace probíhá přes REST endpoint, který volá vaše vlastní integrace (Contact Form 7, Gravity Forms, Fluent Forms, custom skripty).
API key
- Při aktivaci pluginu se vygeneruje 48-znakový API klíč.
- Klíč najdete v option
affinite_wp_affiliate_api_key— získání:
wp option get affinite_wp_affiliate_api_key
Pro regeneraci klíče smažte option a reaktivujte plugin, NEBO:
wp eval 'update_option("affinite_wp_affiliate_api_key", wp_generate_password(48, false), false);'
Endpoint
- URL:
POST /wp-json/affinite-affiliate/v1/track/conversion - Required header:
X-Affinite-API-Key: {your-key} - Per-IP rate limit: 10 requestů / 60 sekund (transient counter)
Parametry
- affiliate_code (required, string) — kód affiliate, získává se z cookie
affinite_affiliatena frontendu. - amount (required, number) — částka konverze, rozsah 0–1 000 000 (limit override přes filter
affinite_track_conversion_max_amount). - form_id (optional, string) — identifikace formuláře pro reporting.
- customer_email (optional, string, email format) — pro audit a deduplikaci.
Příklad cURL
curl -X POST https://example.com/wp-json/affinite-affiliate/v1/track/conversion
-H "X-Affinite-API-Key: abc123...your-48-char-key"
-H "Content-Type: application/json"
-d '{
"affiliate_code": "ABC123",
"amount": 1500,
"form_id": "contact-form-7",
"customer_email": "customer@example.com"
}'
Příklad JS (frontend)
// V handleru po úspěšném odeslání formuláře:
const affiliateCode = document.cookie
.split('; ')
.find(row => row.startsWith('affinite_affiliate='))
?.split('=')[1];
if (affiliateCode) {
fetch('/wp-json/affinite-affiliate/v1/track/conversion', {
method: 'POST',
headers: {
'X-Affinite-API-Key': 'YOUR_KEY_FROM_SERVER',
'Content-Type': 'application/json'
},
body: JSON.stringify({
affiliate_code: affiliateCode,
amount: 1500,
form_id: 'newsletter-signup'
})
});
}
Pozor: API klíč musí být na serveru, NIKDY ne v public JS bundle. Pro frontend tracking použijte buď server proxy, NEBO localizace klíče přes wp_localize_script jen pro authenticated users.
Response
{
"success": true,
"conversion_id": 1234,
"commission_amount": 150
}
Error codes
- 401 — chybný nebo chybějící API key
- 400 — invalid_affiliate (kód neexistuje nebo není active), invalid_amount, future amount
- 429 — rate limit překročen
- 500 — internal error (DB insert failed)
- 503 — API key neexistuje v DB
