FernandoAcosta.Netdocs

Hooks e filtros

3 min de leituraAtualizado há 5 dias

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_code para integração com sistemas externos.
Foi útil?