Hooks a filters

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 amount v /track/conversion endpointu.
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.