FernandoAcosta.Netdocs

Hooks: actions e filtros

2 min de leituraAtualizado há 5 dias

Lista de actions e filtros expostos pelo plugin, com a assinatura, onde dispara, e um exemplo curto. Use no seu tema (functions.php) ou em um plugin separado.

Actions

wcasn_tracking_added

Dispara depois que um código de rastreio novo é gravado no pedido — vale pra adição via metabox, lista de pedidos e REST API.

do_action( 'wcasn_tracking_added', $order, $tracking_code, $shipping_company_slug );
Argumento Tipo Descrição
$order WC_Order Objeto do pedido
$tracking_code string Código adicionado
$shipping_company_slug string Slug interno da transportadora (índice numérico)

Use pra disparar webhook externo, criar registro em sistema próprio, enviar SMS, etc.

add_action( 'wcasn_tracking_added', function( $order, $code, $slug ) {
  wp_remote_post( 'https://meu-sistema.com/webhook/rastreio', [
    'body' => [
      'order_id' => $order->get_id(),
      'tracking_code' => $code,
      'company_slug' => $slug,
    ],
  ] );
}, 10, 3 );

wcasn_form_fields

Dispara enquanto o metabox Código de rastreio está sendo renderizado, dentro do formulário de adicionar. Use pra injetar campos custom no formulário (ex: peso, observação interna).

do_action( 'wcasn_form_fields', $order_id );
Argumento Tipo Descrição
$order_id int ID do pedido sendo editado

Os campos que você injetar não são processados pelo plugin — você precisa capturar via JS ou no action wcasn_tracking_added pra fazer algo com eles.

add_action( 'wcasn_form_fields', function( $order_id ) {
  echo '<input type="text" name="custom_observacao" placeholder="Observação interna">';
} );

Filtros

wcasn_tracking_title

Título do bloco Acompanhe sua entrega na conta do cliente. Veja rastreio na conta do cliente.

$title = apply_filters( 'wcasn_tracking_title', 'Acompanhe sua entrega' );

wc_any_shipping_get_tracking_codes

Roda em cima do array de códigos de rastreio recuperado de um pedido. Use pra ocultar códigos condicionalmente, anexar dados, ou normalizar legado.

$codes = apply_filters( 'wc_any_shipping_get_tracking_codes', $codes );
Argumento Tipo Descrição
$codes array [ 'CODIGO' => 'slug_transportadora' ]

wc_any_shipping_notify_available_companies

Lista de transportadoras cadastradas. Use pra adicionar transportadoras dinamicamente (ex: vindas de outro plugin, de outra opção, de uma API), ou pra esconder algumas em um contexto específico.

$companies = apply_filters( 'wc_any_shipping_notify_available_companies', $companies );
Argumento Tipo Descrição
$companies array [ slug => [ 'name' => '...', 'url' => '...' ] ]
add_filter( 'wc_any_shipping_notify_available_companies', function( $companies ) {
  $companies['custom'] = [
    'name' => 'Transportadora Custom',
    'url'  => 'https://exemplo.com/?codigo={tracking_code}',
  ];
  return $companies;
} );

wc_any_shipping_notify_shipping_company_name

Nome de exibição de uma transportadora.

$name = apply_filters( 'wc_any_shipping_notify_shipping_company_name', $name );

wc_any_shipping_notify_shipping_company_url

URL final de rastreio, depois das substituições de {tracking_code} e {order_number}. Use pra reescrever URLs (ex: forçar HTTPS, trocar domínio em ambiente de teste, redirecionar via encurtador interno).

$url = apply_filters( 'wc_any_shipping_notify_shipping_company_url', $url, $slug, $tracking_code, $order );
Argumento Tipo Descrição
$url string URL já com placeholders substituídos
$slug string Slug interno da transportadora
$tracking_code string|false O código (ou false se ainda não tem)
$order WC_Order|null Objeto do pedido (ou null)
add_filter( 'wc_any_shipping_notify_shipping_company_url', function( $url, $slug ) {
  return str_replace( 'http://', 'https://', $url );
}, 10, 4 );

wc_any_shipping_notify_email_tracking_message

Conteúdo final da mensagem do e-mail de rastreio, depois da substituição de placeholders. Use pra customizar dinamicamente (ex: saudação por horário, bloco extra dependendo da transportadora). Veja e-mail de notificação.

$message = apply_filters( 'wc_any_shipping_notify_email_tracking_message', $message, $order, $tracking_code, $company_name );

wc_any_shipping_get_tracking_codes_email

Roda quando o e-mail vai renderizar a lista de códigos e os dados não vieram em formato de array (caso raro). Use pra normalizar ou retornar HTML alternativo.

$result = apply_filters( 'wc_any_shipping_get_tracking_codes_email', $tracking_codes, $company_name );

wc_any_shipping_get_tracking_codes_email_html

HTML final da lista de códigos no corpo do e-mail. Use pra trocar a <ul> por algo customizado.

$html = apply_filters( 'wc_any_shipping_get_tracking_codes_email_html', $html, $tracking_codes );
Argumento Tipo Descrição
$html string HTML default (<ul><li>codigo</li>...</ul>)
$tracking_codes array [ 'CODIGO' => 'slug' ]

wc_any_shipping_notify_myaccount_button

Texto do botão Acompanhar entrega na conta do cliente.

$text = apply_filters( 'wc_any_shipping_notify_myaccount_button', 'Acompanhar entrega', $details );
Argumento Tipo Descrição
$details array [ 'code' => '...', 'company' => '...', 'url' => '...' ]

Veja exemplo de uso em rastreio na conta do cliente.

Próximo passo

Pra chamar lógica do plugin diretamente (sem hook), veja funções helper.

Foi útil?