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).

middag_account_password_reset_url ​

Sobrescreve a URL de redefinição de senha incluída no e-mail de recuperação da conta. O padrão aponta para wp-login.php do WordPress. Recebe (string $url, WP_User $user, string $key); $key é a chave de redefinição do WordPress consumida pelos endpoints validate-reset-token e reset-password.

php
add_filter('middag_account_password_reset_url', function (string $url, WP_User $user, string $key): string {
    return sprintf(
        'https://portal.example/change-password?email=%s&key=%s',
        rawurlencode($user->user_email),
        rawurlencode($key)
    );
}, 10, 3);

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.