Chat en assistent hooks
Deze pagina toont de 16 hooks van deze groep. Elke hook laat zijn type zien, de versie waarin hij verscheen, waar hij draait, zijn argumenten en een beginpunt.
addochat_active_minutesaddochat_backend_replyaddochat_backend_requestaddochat_backendsaddochat_challenge_passedaddochat_conversation_updatedaddochat_handoffaddochat_handoff_emailaddochat_limit_reachedaddochat_message_receivedaddochat_message_storedaddochat_providersaddochat_reply_sentaddochat_rule_matchedaddochat_system_promptaddochat_visitor_ip
addochat_active_minutes
FilterSinds 0.1.0 Draait in src/Data/Conversations.php.
Filtert hoeveel minuten na het laatste bericht een gesprek als actief telt (tabblad Live now).
| Argument | Type | Beschrijving |
|---|---|---|
$minutes | int | Minuten. Standaard 15. |
add_filter( 'addochat_active_minutes', function ( $minutes ) {
return $minutes;
} );
addochat_backend_reply
FilterSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Filtert het antwoord van de backend voordat het wordt opgeslagen en getoond.
| Argument | Type | Beschrijving |
|---|---|---|
$reply | \Addochat\Agent\Reply | Het antwoord (of de fout). |
$request | \Addochat\Agent\Request | Wat de backend kreeg. |
add_filter( 'addochat_backend_reply', function ( $reply, $request ) {
return $reply;
}, 10, 2 );
addochat_backend_request
FilterSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Filtert wat de backend krijgt, voordat het verstuurd wordt. Bij een webhook is dit de JSON-body (contract 1).
| Argument | Type | Beschrijving |
|---|---|---|
$payload | array<string, mixed> | Velden van het verzoek (zie docs/webhook.md). |
$conversation | array<string, mixed> | Rij van het gesprek. |
add_filter( 'addochat_backend_request', function ( $payload, $conversation ) {
return $payload;
}, 10, 2 );
addochat_backends
FilterSinds 0.1.0 Draait in src/Agent/Backends.php.
Filtert de assistent-backends per id. Voeg je eigen klasse toe die \Addochat\Agent\Backend implementeert, en zet het id bij de opties van de instelling backend met addochat_settings_fields.
| Argument | Type | Beschrijving |
|---|---|---|
$backends | array<string, \Addochat\Agent\Backend> | Backends per id. |
add_filter( 'addochat_backends', function ( $backends ) {
return $backends;
} );
addochat_challenge_passed
FilterSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Filtert of de bezoeker een controle (bijvoorbeeld Cloudflare Turnstile) heeft gehaald nadat hij te veel berichten in een uur stuurde. Geef true terug als $challenge geldig is; de teller van de bezoeker begint dan opnieuw.
| Argument | Type | Beschrijving |
|---|---|---|
$passed | bool | Of de controle gehaald is. Standaard false. |
$challenge | string | Controletoken dat de widget meestuurde. |
$request | \WP_REST_Request | Het verzoek. |
add_filter( 'addochat_challenge_passed', function ( $passed, $challenge, $request ) {
return $passed;
}, 10, 3 );
addochat_conversation_updated
ActionSinds 0.1.0 Draait in src/Data/Conversations.php.
Gaat af nadat een gesprek is gewijzigd (modus, status, eigenaar, contactgegevens). Het netwerk gebruikt dit om de centrale site te informeren.
| Argument | Type | Beschrijving |
|---|---|---|
$id | int | Id van het gesprek. |
$fields | array<string, mixed> | Gewijzigde kolommen. |
add_action( 'addochat_conversation_updated', function ( $id, $fields ) {
// ...
}, 10, 2 );
addochat_handoff
ActionSinds 0.1.0 Draait in src/Chat/Handoff.php.
Gaat een keer per gesprek af als een bezoeker een e-mailadres achterlaat voor een collega. Gebruik het om een ticket in je eigen systeem te maken.
| Argument | Type | Beschrijving |
|---|---|---|
$conversation | array<string, mixed> | Rij van het gesprek (contact_email, contact_name, page_url, uuid). |
$reason | string | Waarom: "contact" (e-mailadres achtergelaten). |
add_action( 'addochat_handoff', function ( $conversation, $reason ) {
// ...
}, 10, 2 );
addochat_handoff_email
FilterSinds 0.1.0 Draait in src/Chat/Handoff.php.
Filtert de e-mail aan het team als een bezoeker een e-mailadres achterlaat. Geef een lege to terug om er geen te sturen.
| Argument | Type | Beschrijving |
|---|---|---|
$mail | array{to: string[], subject: string, body: string, headers: string[]} | E-mail. |
$conversation | array<string, mixed> | Rij van het gesprek. |
add_filter( 'addochat_handoff_email', function ( $mail, $conversation ) {
return $mail;
}, 10, 2 );
addochat_limit_reached
ActionSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Gaat af als een bezoeker of de site een limiet bereikt.
| Argument | Type | Beschrijving |
|---|---|---|
$state | string | offer_human (per gesprek), challenge (per bezoeker per uur) of closed (AI-antwoorden per dag). |
add_action( 'addochat_limit_reached', function ( $state ) {
// ...
} );
addochat_message_received
ActionSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Gaat af nadat een bericht van een bezoeker is opgeslagen.
| Argument | Type | Beschrijving |
|---|---|---|
$conversation | array<string, mixed> | Rij van het gesprek. |
$message_id | int | Id van het bericht. |
$message | string | Tekst van het bericht. |
add_action( 'addochat_message_received', function ( $conversation, $message_id, $message ) {
// ...
}, 10, 3 );
addochat_message_stored
ActionSinds 0.1.0 Draait in src/Data/Messages.php.
Gaat af nadat een bericht is opgeslagen. Het netwerk gebruikt dit om berichten door te sturen naar de centrale site.
| Argument | Type | Beschrijving |
|---|---|---|
$conversation_id | int | Id van het gesprek. |
$message_id | int | Id van het bericht. |
$role | string | Rol. |
$payload | array<string, mixed> | Extra gegevens (herkomst als het van een andere site kwam). |
add_action( 'addochat_message_stored', function ( $conversation_id, $message_id, $role, $payload ) {
// ...
}, 10, 4 );
addochat_providers
FilterSinds 0.1.0 Draait in src/Agent/Providers.php.
Filtert de AI-diensten van Direct op id. Voeg een eigen class toe die \Addochat\Agent\Provider implementeert, en zet het id bij de opties van de instelling provider met addochat_settings_fields.
| Argument | Type | Beschrijving |
|---|---|---|
$providers | array<string, \Addochat\Agent\Provider> | Diensten op id. |
add_filter( 'addochat_providers', function ( $providers ) {
return $providers;
} );
addochat_reply_sent
ActionSinds 0.1.0 Draait in src/Chat/Endpoint.php.
Gaat af nadat een antwoord van de assistent is opgeslagen.
| Argument | Type | Beschrijving |
|---|---|---|
$conversation | array<string, mixed> | Rij van het gesprek. |
$reply | \Addochat\Agent\Reply | Het antwoord. |
add_action( 'addochat_reply_sent', function ( $conversation, $reply ) {
// ...
}, 10, 2 );
addochat_rule_matched
ActionSinds 0.2.0 Draait in src/Chat/Endpoint.php.
Gaat af als een regel past bij een bericht van de bezoeker, voordat de actie draait.
| Argument | Type | Beschrijving |
|---|---|---|
$rule | array<string, mixed> | Regel. |
$conversation | array<string, mixed> | Rij van het gesprek. |
$message_id | int | Bericht van de bezoeker. |
add_action( 'addochat_rule_matched', function ( $rule, $conversation, $message_id ) {
// ...
}, 10, 3 );
addochat_system_prompt
FilterSinds 0.1.0 Draait in src/Agent/Prompt.php.
Filtert de systeemprompt van de Direct-backend. Houd hem gelijk voor elk verzoek van een site en taal: een vaste prompt wordt door de API gecachet en kost veel minder.
| Argument | Type | Beschrijving |
|---|---|---|
$prompt | string | De systeemprompt. |
$request | Request | Het verzoek. |
add_filter( 'addochat_system_prompt', function ( $prompt, $request ) {
return $prompt;
}, 10, 2 );
addochat_visitor_ip
FilterSinds 0.1.0 Draait in src/Chat/Token.php.
Filtert het IP-adres voor de limiet per bezoeker. Achter een proxy zonder echte-IP-afhandeling delen alle bezoekers het adres van de proxy; geef hier het doorgestuurde adres terug als je de proxy vertrouwt.
| Argument | Type | Beschrijving |
|---|---|---|
$ip | string | IP-adres uit REMOTE_ADDR. |
add_filter( 'addochat_visitor_ip', function ( $ip ) {
return $ip;
} );