Lista de actions disparadas pelo plugin. Use no functions.php do tema, num plugin auxiliar ou num MU plugin. Os exemplos assumem PHP 7.4+.
wc_melhor_envio_new_tracking_code
Disparada quando um novo código de rastreio é gravado num pedido (seja pelo cron, seja por código manual via wc_melhor_envio_add_tracking_code).
Argumentos:
$tracking_code(string) — código de rastreio.$order(WC_Order) — pedido.
add_action( 'wc_melhor_envio_new_tracking_code', function( $tracking_code, $order ) {
// Notifica equipe interna no Slack quando o rastreio sai
wp_remote_post( 'https://hooks.slack.com/services/...', [
'body' => json_encode( [ 'text' => "Pedido #{$order->get_id()} foi postado: {$tracking_code}" ] ),
] );
}, 10, 2 );
wc_melhor_envio_ajax_before_process
Disparada antes de processar a geração de etiqueta via AJAX (clique no metabox ou ação em massa pelo painel).
Argumentos:
$order(WC_Order) — pedido.
add_action( 'wc_melhor_envio_ajax_before_process', function( $order ) {
// Bloqueia geração se cliente está bloqueado por inadimplência
if ( $order->get_meta( '_cliente_bloqueado' ) === 'yes' ) {
wp_send_json_error( [ 'message' => 'Cliente bloqueado.' ] );
}
}, 10, 1 );
wc_melhor_envio_check_posted
Cron event registrado pelo plugin. Pode ser disparado manualmente pra forçar uma verificação imediata de rastreio em todos os pedidos monitorados.
do_action( 'wc_melhor_envio_check_posted' );
A frequência da execução automática é definida pelo setting Intervalo de verificação (a cada hora, 12 horas ou diariamente). Veja rastreamento automático.
wc_melhor_envio_bling_invoice_imported
Disparada quando o plugin captura a NF de uma nota interna do Bling.
Argumentos:
$order(WC_Order) — pedido com a NF gravada nos metas.
add_action( 'wc_melhor_envio_bling_invoice_imported', function( $order ) {
// Adiciona o número da NF ao customer note pra ficar visível pro cliente
$number = $order->get_meta( '_me_invoice_number' );
$order->set_customer_note( "NF {$number} emitida." );
$order->save();
}, 10, 1 );
Veja importar nota fiscal.
wc_melhor_envio_webmania_invoice_imported
Disparada quando o plugin captura a NF de uma resposta do plugin Webmania (NFe WooCommerce).
Argumentos:
$order(WC_Order) — pedido com a NF gravada nos metas.$response(object) — objeto bruto retornado pela Webmania.
add_action( 'wc_melhor_envio_webmania_invoice_imported', function( $order, $response ) {
// Salva o XML da NFe num meta personalizado pra arquivar
if ( ! empty( $response->xml ) ) {
$order->update_meta_data( '_xml_nfe_arquivado', $response->xml );
$order->save();
}
}, 10, 2 );
wc_melhor_envio_after_metabox_fields
Disparada no final do metabox Etiquetas Melhor Envio, depois dos campos padrão. Use pra adicionar campos extras (referência interna, observação pro despacho, etc).
add_action( 'wc_melhor_envio_after_metabox_fields', function() {
echo '<p><label>Referência interna<br>';
echo '<input type="text" name="referencia_interna" /></label></p>';
} );
Pra ler o valor do campo customizado depois do submit, use o filtro wc_melhor_envio_ajax_before_process (acima) ou um listener próprio nos AJAX endpoints.
Próximos passos
- Filtros — referência de filtros pra customizar cotação, etiqueta, rastreio.
- Funções helper — funções globais pra ler/gravar dados sem mexer em meta direto.