Skip to content

Pontos de Extensão

Todos os hooks públicos do WordPress fornecidos pelo plugin middag-account. Plugins de terceiros e satélites podem usá-los para estender o comportamento sem modificar o código principal.

Todo hook usa o prefixo middag. Eventos de domínio seguem o padrão middag/{domain}/{event}.

Actions de Ciclo de Vida

HookParâmetrosDescrição
middag_activatednenhumDisparado após ativação do plugin, CPTs registrados
middag_deactivatednenhumDisparado após desativação do plugin, cron limpo
php
add_action('middag_activated', function (): void {
    // Setup de plugin satélite que depende do middag-account
});

Actions de Eventos de Domínio

Eventos de domínio são despachados via do_action("middag/{domain}/{event}", ...$payload).

Eventos de Entitlement

HookParâmetros
middag/entitlement/createdEntitlementEntity $entitlement
middag/entitlement/provisionedEntitlementEntity $entitlement
middag/entitlement/status_changedEntitlementEntity $entitlement, string $old, string $new
middag/entitlement/suspendedEntitlementEntity $entitlement, string $reason
middag/entitlement/reactivatedEntitlementEntity $entitlement
middag/entitlement/cancelledEntitlementEntity $entitlement, string $reason
php
add_action('middag/entitlement/provisioned', function (EntitlementEntity $ent): void {
    if ($ent->class === 'PLG') {
        // Ativar licença automaticamente para entitlements de plugin
    }
}, 10, 1);

Eventos de Quote

HookParâmetros
middag/quote/createdQuoteEntity $quote
middag/quote/acceptedQuoteEntity $quote
middag/quote/rejectedQuoteEntity $quote
middag/quote/paidQuoteEntity $quote
middag/quote/status_changedQuoteEntity $quote, string $old, string $new

O evento middag/quote/paid aciona o pipeline de provisionamento automático. QuoteEntitlementHooks escuta na prioridade 10 para criar entitlements a partir de quotes pagos.

Eventos de Environment

HookParâmetros
middag/environment/createdEnvironmentEntity $environment
middag/environment/status_changedEnvironmentEntity $environment, string $old, string $new

Eventos de Service

HookParâmetros
middag/service/createdServiceEntity $service
middag/service/status_changedServiceEntity $service, string $old, string $new

Eventos de Ticket

HookParâmetros
middag/ticket/createdTicketEntity $sr
middag/ticket/status_changedTicketEntity $sr, string $old, string $new

Eventos de E-mail

Despachados pelo WordPressEventDispatcher e consumidos pelo EmailEventListener:

Nome do EventoTemplate de E-mail
auth.register_email_onlyAuthRegisterEmailOnly
auth.reset_passwordAuthResetPassword
auth.verify_accountAuthVerifyAccount
auth.welcomeAuthWelcome
collaborator.invite_sentCollaboratorInvite
collaborator.invite_acceptedCollaboratorAcceptedInvite
collaborator.invite_rejectedCollaboratorRejectedInvite
collaborator.permissions_updatedCollaboratorPermissionsUpdated
collaborator.removedCollaboratorRemoved

O nome do hook WordPress é middag/{eventName} (ex.: middag/auth.welcome).

Hooks de Filtro

middag_password_requirements

Sobrescreve as regras de válidação de senha (padrão segue NIST SP 800-63B):

php
add_filter('middag_password_requirements', function (array $req): array {
    $req['min_length'] = 12;
    return $req;
});

Padrão: ['min_length' => 8, 'require_uppercase' => true, 'require_lowercase' => true, 'require_number' => true]

middag_rate_limit_whitelist

IPs isentos do rate limiting da API. Padrão: ['127.0.0.1', '::1'].

php
add_filter('middag_rate_limit_whitelist', function (array $list): array {
    $list[] = '10.0.0.1';
    return $list;
});

middag_email_event_map

Adiciona ou sobrescreve mapeamentos de evento para template de e-mail:

php
add_filter('middag_email_event_map', function (array $map): array {
    $map['order.completed'] = function (array $payload): void {
        (new MyOrderEmail())->trigger($payload['email'], $payload['order_id']);
    };
    return $map;
});

middag_email_print_button_color

Sobrescreve a cor do botão CTA nos templates de e-mail de serviço. Padrão: cor base do WooCommerce.

middag_email_button_url

Sobrescreve a URL do botão CTA no e-mail de "novo site". Recebe (string $url, array $cct).

Hooks de Cron

Registrados pelo CronRegistrar, limpos na desativação:

Nome do HookIntervaloDescrição
middag_every_minute60sTarefas de background de alta frequência
middag_five_minutes5 minAlinhado ao relógio (ex.: :00, :05)
middag_fifteen_minutes15 minSincronização de frequência média
middag_thirty_minutes30 minPolling de integrações
middag_hourly1 horaTarefas horárias alinhadas ao relógio
middag_twicedaily12 horasManutenção duas vezes ao dia
middag_daily_morning24 horasDiário às 06:00 horário do servidor

Contrato de Estabilidade

Hooks existentes nunca são removidos. Novos parâmetros são sempre adicionados ao final. Esta garantia se aplica dentro do ciclo de vida v1.