Referência completa de actions e filters do WC JadLog. Use para customizar comportamento sem editar o plugin.
Actions
wc_jadlog_tracking_code_added
Disparado quando um código de rastreio é adicionado a um pedido (manual, via etiqueta ou REST API).
Parâmetros:
$tracking_code(string) — código adicionado.$order(WC_Order) — objeto do pedido.
add_action( 'wc_jadlog_tracking_code_added', function( $tracking_code, $order ) {
error_log( 'Rastreio adicionado: ' . $tracking_code . ' | pedido ' . $order->get_id() );
}, 10, 2 );
Filters — rastreio
wc_jadlog_tracking_settings
Modifica o array de configurações da seção de rastreio antes de renderizar.
add_filter( 'wc_jadlog_tracking_settings', function( $settings ) {
unset( $settings['any_shipping_notify'] );
return $settings;
} );
wc_jadlog_tracking_not_allowed_statuses
Lista de status JadLog que devem ser ignorados pelo cron de atualização. Útil pra impedir que certos eventos disparem e-mail ao cliente.
add_filter( 'wc_jadlog_tracking_not_allowed_statuses', function() {
return array( 'DEVOLVIDO', 'EXTRAVIADO' );
} );
wc_jadlog_tracking_get_orders_args
Personaliza a query do wc_get_orders() que o cron usa para listar pedidos a verificar.
add_filter( 'wc_jadlog_tracking_get_orders_args', function( $args ) {
$args['limit'] = 50;
$args['date_after'] = '30 days ago';
return $args;
} );
wc_jadlog_tracking_message
Personaliza o corpo do e-mail de atualização de rastreio enviado ao cliente.
Parâmetros: $message (string), $order (WC_Order).
wc_jadlog_email_tracking_message
Personaliza o corpo do e-mail enviado quando o código de rastreio é adicionado pela primeira vez (diferente do e-mail de atualização de status).
Parâmetros: $message (string), $order (WC_Order).
wc_jadlog_email_tracking_code_url
URL base usada nos links de rastreio nos e-mails.
add_filter( 'wc_jadlog_email_tracking_code_url', function( $url ) {
return 'https://meu-rastreio.com.br/?codigo=';
} );
wc_jadlog_email_tracking_code_link
HTML completo do link de rastreio (mais flexível que ..._url).
Parâmetros: $link (string HTML), $tracking_code (string), $order (WC_Order).
add_filter( 'wc_jadlog_email_tracking_code_link', function( $link, $code, $order ) {
return str_replace( '<a ', '<a class="rastreio-button" ', $link );
}, 10, 3 );
Filters — cálculo de frete
wc_jadlog_default_package_data
Ajusta dimensões e peso antes de mandar pra API.
add_filter( 'wc_jadlog_default_package_data', function( $data ) {
$data['weight'] = $data['weight'] * 1.10; // +10% de margem
return $data;
} );
wc_jadlog_shipping_args
Ajuste fino de qualquer argumento da requisição de cotação.
wc_jadlog_origin_postcode
Sobrescreve o CEP de origem para uma chamada específica.
Parâmetros: $postcode (string), $id (string — id do método), $package (array).
wc_jadlog_destination_postcode
Sobrescreve o CEP de destino.
Parâmetros: mesmos do anterior.
wc_jadlog_token
Define dinamicamente o token enviado à API (útil pra rotacionar credenciais por loja em multisite).
Parâmetros: $token (string), $id (string), $package (array).
wc_jadlog_webservice_url
URL do endpoint de cotação. Útil para apontar para um sandbox.
Parâmetros: $url, $id, $package, $endpoint.
wc_jadlog_disable_delivery_time
Retorna true para esconder o prazo no checkout.
add_filter( 'wc_jadlog_disable_delivery_time', '__return_true' );
wc_jadlog_delivery_delivery_forecast_text
Personaliza o texto de prazo exibido no carrinho.
Parâmetros: $text (string HTML), $shipping_method.
wc_jadlog_order_delivery_method_text
Personaliza o texto de prazo exibido na tela de pedido.
Parâmetros: $text (string), $shipping_method.
Filters dinâmicos por método
Cada modalidade JadLog é uma classe com id próprio (ex: wc_jadlog_shipping_package, wc_jadlog_shipping_expresso, ...). Os filtros abaixo usam o id como prefixo.
{method_id}_form_fields
Adiciona ou modifica campos da tela de configuração daquele método na zona de envio.
add_filter( 'wc_jadlog_shipping_package_form_fields', function( $fields ) {
$fields['custom_label'] = array(
'title' => 'Texto extra',
'type' => 'text',
);
return $fields;
} );
{method_id}_cost
Custo calculado antes de virar uma rate do WooCommerce.
add_filter( 'wc_jadlog_shipping_expresso_cost', function( $cost ) {
return $cost * 1.05; // +5% sobre o expresso
} );
{method_id}_rate
A rate completa (id, label, cost) antes de ser injetada no checkout.
add_filter( 'wc_jadlog_shipping_pickup_rate', function( $rate ) {
$rate['label'] = 'Retirada — ' . $rate['label'];
return $rate;
} );
Filters — etiquetas
wc_jadlog_request_label_args
Ajusta os argumentos enviados à API JadLog na geração de etiqueta.
Parâmetros: $args (array), $order (WC_Order).
wc_jadlog_labels_webservice_url
URL do endpoint de geração de etiqueta.
wc_jadlog_order_available_methods
Filtra a lista de modalidades que aparecem no dropdown do metabox de geração de etiqueta, por pedido.
add_filter( 'wc_jadlog_order_available_methods', function( $methods, $order ) {
if ( $order->get_total() > 1000 ) {
return array( 'WC_JadLog_Shipping_Expresso' );
}
return $methods;
}, 10, 2 );
Filters — pickup
wc_jadlog_pickup_limit
Quantos pontos de retirada exibir ao cliente. Padrão: 3.
add_filter( 'wc_jadlog_pickup_limit', function() {
return 5;
} );
wc_jadlog_pickup_empty
Mensagem de erro mostrada quando o cliente não selecionou um ponto de pickup obrigatório.
add_filter( 'wc_jadlog_pickup_empty', function() {
return 'Selecione um ponto de retirada antes de finalizar.';
} );
Integração com terceiros
wc_simulador_frete_meta_delivery_time
Hook compartilhado com o plugin Simulador de Frete: o WC JadLog respeita esse filtro pra entregar o prazo correto quando os dois plugins estão na mesma loja.
Parâmetros: $time (int — dias), $meta_data (array).
Veja também
- Funções utilitárias — funções públicas (
wc_jadlog_*) que devs podem chamar diretamente. - REST API — campo
jadlog_tracking_codepara integração com sistemas externos.