Custom action hooks
affinite_daily_maintenance
- Fires: denně přes WP-Cron.
- Args: žádné.
- Default chování: pluginový handler flushuje stats transients.
- Use case: vlastní denní úklid, custom reporty.
add_action('affinite_daily_maintenance', function() {
// Smazat stará kliknutí starší než 1 rok
global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->prefix}affinite_clicks WHERE clicked_at < DATE_SUB(NOW(), INTERVAL 1 YEAR)");
});
affinite_hourly_maintenance
- Fires: hodinově přes WP-Cron.
- Args: žádné.
- Use case: drip notifikace, webhook queue, batched stat recalculation.
Custom filters
affinite_track_conversion_max_amount
- Default: 1 000 000
- Účel: upper bound pro
amountv/track/conversionendpointu.
add_filter('affinite_track_conversion_max_amount', function() {
return 50000; // Limit na 50k pro vaši aplikaci
});
affinite_trusted_proxy_headers
- Default: [‚HTTP_CF_CONNECTING_IP‘, ‚HTTP_X_FORWARDED_FOR‘, ‚HTTP_CLIENT_IP‘]
- Účel: pořadí header pro IP detekci, když je opt-in
trust_proxy_headers= yes.
allowed_redirect_hosts (scoped)
Standardní WP filter, plugin ho dočasně rozšiřuje pro /affinite_link/ redirect — povolí host uloženého target URL. Po dokončení redirectu se filter odstraní.
WP Standard hooks plugin používá
plugins_loaded— Plugin::get_instance().init— komponenty, text domain, shortcodes.template_redirect— affiliate visit tracking, link redirect.wp_enqueue_scripts— conditional frontend assets.admin_init— settings registration, notices.admin_menu— menu pages.add_meta_boxes— WC order meta box.woocommerce_*_status_*— order tracking + commission creation/refund.wp_ajax_affinite_*+wp_ajax_nopriv_affinite_*— AJAX handlery.
Příklad vlastní automation
// Po schválení provize pošli Slack notifikaci
add_action('affinite_commission_approved', function($commission) {
wp_remote_post('https://hooks.slack.com/...', [
'body' => json_encode([
'text' => sprintf('Nová schválená provize %s pro affiliate %d',
$commission->amount, $commission->affiliate_id)
])
]);
});
Poznámka: affinite_commission_approved hook je příklad — verifikujte aktuální seznam fired hooks v pluginovém kódu před produkčním nasazením.
