Correios Automático

Filtros

Pontos para o seu plugin ajustar valores e decisões do Correios Automático. Todos seguem add_filter( $nome, $callback, $prioridade, $argumentos ): devolva sempre um valor do tipo esperado e, quando a decisão não for sua, o valor recebido.

Correios Automático 1.14.0PRO 1.6.4REST infixs-correios-automatico/v1WP 6.0+ · PHP 7.4+ · HPOSGuia de instalaçãoPlugin no WordPress.orgCorreios Automático PRO
Filtros

Selos usados na referência: ação filtro GET POST DELETE · Grátis PRO. Tudo o que não traz o selo PRO funciona no plugin grátis. Abaixo de cada gancho e de cada rota está o arquivo e a linha onde ele aparece no código da versão indicada, para você ler o docblock completo no código.

Nota fiscal e pré-postagem

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_order_invoicesrc/Services/OrderInvoiceResolver.php:147null, WC_Order $order, array $context (for, shipping_item_id, vendor_id)array|null com invoice_key, invoice_number, source, source_labelEntregar a NF-e do pedido à pré-postagem, à etiqueta e ao painel. Detalhes. Desde 1.11.0.
infixs_correios_automatico_prepost_use_order_invoicesrc/Services/PrepostService.php:1173bool $use = true, WC_Order $order, int $shipping_item_idboolfalse faz a pré-postagem seguir com DC-e, e o PRO deixa de procurar e de esperar a nota. Desde 1.11.0.
infixs_correios_automatico_auto_prepost_wait_invoice PROPRO · src/Services/AutoPrepostInvoice.php:115bool $wait = false, WC_Order $order, int $shipping_item_idbooltrue faz a pré-postagem automática esperar a NF-e. Detalhes. Desde PRO 1.3.0.
infixs_correios_automatico_order_invoice_statussrc/Services/OrderInvoiceStatus.php:125array $status, WC_Order $order, array $context (vendor_id, invoice, waiting)array com state, tone, label, detail, source, source_label, danfe, actionsEstado da NF-e na lista de pedidos. Detalhes. Desde 1.12.0.
infixs_correios_automatico_order_danfesrc/Services/OrderDanfeResolver.php:201null, WC_Order $order, array $context (for, shipping_item_id, vendor_id, invoice)array|null (bloco schema 1 ou pending)Dados da DANFE simplificada impressa com a etiqueta. Detalhes. Desde 1.12.0.
infixs_correios_automatico_reverse_prepost_fiscal_documentsrc/Services/PrepostService.php:1526array $document, WC_Order $order, int $shipping_item_id, ?Prepost $outboundarray com emiteDCe, invoice_number, invoice_key, sourceDocumento fiscal da pré-postagem reversa. Detalhes. Desde 1.14.0.
infixs_correios_automatico_order_pending_kindssrc/Utils/OrderFilterSanitizer.php:155array $kinds = []string[] (chaves [a-z_]+)Registrar pendências próprias no filtro de pendências da lista de pedidos. Desde 1.14.0.
infixs_correios_automatico_order_pending_conditionsrc/Database/OrderFilterConditions.php:158null, string $kindstring|null (SQL preparado com {order_id})Condição SQL de cada pendência própria. Exemplo. Desde 1.14.0.
infixs_correios_automatico_prepost_order_itemssrc/Services/Correios/Includes/Prepost.php:350WC_Order_Item_Product[] $items, int $order_id, Includes\Prepost $prepostarray de itensItens da declaração de conteúdo da pré-postagem (cada item vira conteúdo, quantidade e valor, com o NCM do produto).

Frete e cotação

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_product_codesrc/Core/Shipping/CorreiosShippingMethod.php:2075string $product_code, array $package, CorreiosShippingMethod $methodstringCódigo do serviço dos Correios usado na cotação.
infixs_correios_automatico_calculate_shipping_origin_postcodesrc/Core/Shipping/CorreiosShippingMethod.php:1618string $origin_postcode, array $package, CorreiosShippingMethod $methodstringCEP de origem da cotação.
infixs_correios_automatico_shipping_cost_datasrc/Core/Shipping/CorreiosShippingMethod.php:1676ShippingCost $shipping_cost, array $package, CorreiosShippingMethod $methodShippingCostAjustar os dados da cotação antes do seguro e das regras.
infixs_correios_automatico_calculate_shipping_cost_passedsrc/Core/Shipping/CorreiosShippingMethod.php:1686bool $passed = true, ShippingCost $shipping_cost, array $package, CorreiosShippingMethod $methodboolfalse deixa o método sem taxa (motivo filter_blocked).
infixs_correios_automatico_calculate_shipping_volumes_passedsrc/Core/Shipping/CorreiosShippingMethod.php:1735bool $passed = true, ShippingCost[] $volumes, array $package, CorreiosShippingMethod $methodboolfalse deixa o método sem taxa depois da divisão em volumes (volume_rule_blocked).
infixs_correios_automatico_ratesrc/Core/Shipping/CorreiosShippingMethod.php:1931array $rate (id, label, cost, package, meta_data), array $packagearrayA taxa entregue ao add_rate() do WooCommerce.
infixs_correios_automatico_calculate_shipping_has_active_contractsrc/Services/ShippingService.php:910bool $has_active_contract, ShippingCost $shipping_costbooltrue cota pelo Contrato Próprio nos Correios; false, pela cotação da Infixs.
infixs_correios_automatico_calculate_single_shipping_packagesrc/Core/Front/WooCommerce/Shipping.php:209array $package (com is_product_page), WC_Product $productarrayPacote da calculadora de frete na página do produto.
infixs_correios_automatico_linkable_method_idssrc/Core/Shipping/LinkedShippingMethod.php:44string[] $ids (padrão ['free_shipping','flat_rate'])string[]Métodos nativos que podem ser vinculados a um serviço dos Correios.
infixs_correios_automatico_transient_keysrc/Core/Shipping/CorreiosShippingMethod.php:2106string $transient_key, string $type (shipping_cost ou shipping_time), array $package, CorreiosShippingMethod $methodstringChave do cache da cotação (um marketplace inclui o vendedor nela).

Embalagem e volumes

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_volume_fillersrc/Core/Shipping/CorreiosShippingMethod.php:1259?VolumeFiller $filler = null, array $limits, array $package, CorreiosShippingMethod $method, callable $factoryVolumeFiller|nullEstratégia que divide o pacote em volumes (o PRO usa para as caixas cadastradas da loja).
infixs_correios_automatico_packing_max_unitssrc/Core/Shipping/CorreiosShippingMethod.php:1274int $max_units = 200, array $package, CorreiosShippingMethod $methodintTeto de unidades acomodadas uma a uma.
infixs_correios_automatico_max_volumessrc/Core/Shipping/CorreiosShippingMethod.php:1315int $max_volumes = 10, array $package, CorreiosShippingMethod $methodintMáximo de volumes por remessa.
infixs_correios_automatico_default_packagesrc/Services/Correios/Includes/Package.php:300 · src/Services/Correios/Packing/PackedPackage.php:89array $data (height[], width[], length[] por unidade e weight somado, em cm e kg)arrayMedidas do pacote antes do cálculo.
infixs_correios_automatico_package_heightsrc/Services/Correios/Includes/Package.php:313 · src/Services/Correios/Packing/PackedPackage.php:94float $height (cm)floatAltura final do pacote.
infixs_correios_automatico_package_widthsrc/Services/Correios/Includes/Package.php:314 · src/Services/Correios/Packing/PackedPackage.php:95float $width (cm)floatLargura final do pacote.
infixs_correios_automatico_package_lengthsrc/Services/Correios/Includes/Package.php:315 · src/Services/Correios/Packing/PackedPackage.php:96float $length (cm)floatComprimento final do pacote.
infixs_correios_automatico_package_weightsrc/Services/Correios/Includes/Package.php:316 · src/Services/Correios/Packing/PackedPackage.php:97float $weight (kg)floatPeso final do pacote.

Etiqueta e impressão

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_label_datasrc/Services/LabelService.php:343array $data, Entities\Order $order (já com escopo), array $contextarrayAcrescentar campos ao payload de cada etiqueta. O payload traz destinatário, itens com NCM, preposts[], invoice, danfe, danfe_status e sender.
infixs_correios_automatico_label_pdf_permission PROPRO · src/Routes/RestRoutes.php:76bool $allowed (padrão: current_user_can( 'manage_woocommerce' ))boolQuem pode gerar o PDF de etiquetas pela rota POST /label/pdf.
infixs_correios_automatico_pro_auto_print_enabled PROPRO · src/Services/AutoPrintService.php:117bool $enabled = true, int $order_id, object $prepostboolVetar a impressão automática de uma pré-postagem específica.

A DANFE simplificada da etiqueta vem de infixs_correios_automatico_order_danfe (Nota fiscal e pré-postagem); o remetente impresso, de infixs_correios_automatico_label_sender (Marketplace).

Rastreio e e-mails

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_add_tracking_eventsrc/Services/TrackingService.php:708array $row, array $event, TrackingCode $trackingarrayLinha de evento antes de gravar (code, type, description, detail, location_*, event_date…).
infixs_correios_automatico_sync_tracking_codesrc/Services/TrackingService.php:634null, TrackingCode $trackingTrackingCode|WP_Error|nullSincronizar um código de outra transportadora (diferente de correios); null deixa para o próximo.
infixs_correios_automatico_tracking_createsrc/Controllers/Rest/TrackingController.php:63string $code, array $paramsstringCódigo informado pela rota POST /trackings, antes de gravar.
infixs_correios_automatico_tracking_deletesrc/Controllers/Rest/TrackingController.php:94mixed $id, WP_REST_Request $requestidId do rastreio a apagar pela rota DELETE /trackings/{id}.
infixs_correios_automatico_out_for_delivery_eventssrc/Services/Correios/Enums/TrackingEventCode.php:45string[] $events (padrão OEC00, OEC01, OEC03)string[]Eventos que contam como “saiu para entrega” (e-mail, WhatsApp e status).
infixs_correios_automatico_show_order_trackingsrc/Core/Front/WooCommerce/Order.php:125bool $show_tracking, WC_Order $order, array $objectsboolMostrar ou não o rastreio na página do pedido em Minha conta.
infixs_correios_automatico_rest_shop_order_object_tracking_codessrc/Core/Admin/WooCommerce/Rest.php:54array $codes (id, code, carrier, description, category, date_created_gmt)arrayCampo tracking_codes na resposta da REST de pedidos do WooCommerce.
infixs_correios_automatico_email_tracking_messagesrc/Core/Emails/TrackingCodeEmail.php:145string $message, WC_Order $orderstringTexto do e-mail “Código de rastreio”.
infixs_correios_automatico_email_preparing_to_ship_messagesrc/Core/Emails/PreparingToShipEmail.php:133string $message, WC_Order $orderstringTexto do e-mail “Preparando para envio”.
infixs_correios_automatico_email_out_for_delivery_messagesrc/Core/Emails/OutForDeliveryEmail.php:147string $message, WC_Order $orderstringTexto do e-mail “Saiu para entrega”.
infixs_correios_automatico_email_waiting_pickup_messagesrc/Core/Emails/WaitingPickupEmail.php:137string $message, WC_Order $orderstringTexto do e-mail “Aguardando retirada”.
infixs_correios_automatico_email_delivered_messagesrc/Core/Emails/DeliveredEmail.php:132string $message, WC_Order $orderstringTexto do e-mail “Entregue”.
infixs_correios_automatico_email_returning_messagesrc/Core/Emails/ReturningEmail.php:135string $message, WC_Order $orderstringTexto do e-mail “Devolução”.
infixs_correios_automatico_email_tracking_code_urlsrc/Core/Emails/Concerns/LinksTrackingPage.php:43 · WaitingPickupEmail.php:150 · ReturningEmail.php:148 · PreparingToShipEmail.php:146string $html (o link com o código), string $tracking_code, WC_Order $orderstring HTMLLink de cada código nos e-mails.

Pedidos e painel

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_order_datasrc/Entities/Order.php:1273array $data, WC_Order $orderarrayCada pedido das rotas /orders do painel (invoice, invoice_status, shipping_items, preposts, tracking_codes…). O PRO acrescenta logplus.
infixs_correios_automatico_shipping_item_carriersrc/Entities/Order.php:311?string $carrier = null, WC_Order_Item_Shipping $itemstring|null (ex.: pex)Dizer de qual transportadora é uma linha de frete que não é dos Correios.
infixs_correios_automatico_carrier_shipping_methodssrc/Core/Shipping/CarrierRegistry.php:96array $carriers (label, method_ids[], item_metas[] por transportadora)arrayTransportadoras do filtro “Transportadora” da lista de pedidos.
infixs_correios_automatico_dashboard_noticessrc/Core/Admin/Dashboard.php:86 · :100Notice[] $noticesNotice[]Acrescentar ou ocultar avisos do painel (\Infixs\CorreiosAutomatico\Core\Support\Notice).
infixs_correios_automatico_dashboard_global_paramssrc/Core/Admin/Admin.php:381array $script_dataarrayDados do script do painel (infixsCorreiosAutomaticoGlobals: restUrl, nonce, danfe.available…).
infixs_correios_automatico_admin_script_orders_paramssrc/Core/Admin/Admin.php:195array (restUrl, nonce, adminUrl, ajaxUrl)arrayDados do script na tela de pedidos do WooCommerce (infixsCorreiosAutomaticoOrdersParams).
infixs_correios_automatico_external_shipping_line_method PROPRO · src/Services/ExternalOrder/ShippingLineLinker.php:88CorreiosShippingMethod|false $method, WC_Order_Item_Shipping $item, WC_Order $ordermétodo ou falseVincular uma linha de frete de um pedido gravado pela REST do WooCommerce a um método dos Correios; false deixa a linha como veio.

Marketplace

Para Dokan, WCFM e outros marketplaces, o caminho principal é registrar um adaptador no plugins_loaded: \Infixs\CorreiosAutomatico\Marketplace\MarketplaceRegistry::register( $adapter ), estendendo MarketplaceAdapter (getSlug, ownsOrder, getOrderVendorIds, getShippingItemVendorId, getOrderShippingItem, getOrderItemsByVendor, getVendorStoreData, getCurrentVendorId). Os filtros abaixo fazem os ajustes finos, e o grátis já responde vários deles a partir do adaptador.

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_order_scopesrc/Entities/Order.php:140array $scope (vendor_id, shipping_item_id, item_ids[], item_quantities[], contract_number, postcard), Entities\Order $order, array $context (for, vendor_id, shipping_item_id)arrayEscopo de cada pré-postagem, etiqueta e cotação: quais itens, de qual vendedor e com qual contrato. for: prepost, reverse_prepost, label, calculate ou recalculate.
infixs_correios_automatico_order_vendor_idsrc/Marketplace/VendorOrderScope.php:157int $vendor_id, int $order_id, array $context, MarketplaceAdapter $adapterintVendedor do pedido, quando um adaptador de marketplace é dono dele.
infixs_correios_automatico_package_vendor_idsrc/Marketplace/VendorRateGuard.php:80int $vendor_id = 0, array $packageintVendedor de um pacote do carrinho sem vendor_id.
infixs_correios_automatico_prepost_sendersrc/Services/PrepostService.php:256Person $sender, int $order_id, int $vendor_idPersonRemetente da pré-postagem (na reversa, o destinatário).
infixs_correios_automatico_label_sendersrc/Services/LabelService.php:327?array $sender = null, Entities\Order $order, array $contextarray|nullRemetente impresso na etiqueta; null usa o da sessão de impressão.
infixs_correios_automatico_tracking_vendor_idsrc/Services/TrackingService.php:107?int $vendor_id, int $order_id, string $code, array $dataint|nullVendedor de um código de rastreio gravado.
infixs_correios_automatico_prepost_correios_apisrc/Services/Correios/CorreiosService.php:153CorreiosApi $api, Includes\Prepost $prepostCorreiosApiCliente (contrato) que cria a pré-postagem.
infixs_correios_automatico_object_correios_apisrc/Services/Correios/CorreiosService.php:179CorreiosApi $api, string $object_code, mixed $source (Prepost ou TrackingCode)CorreiosApiCliente para cancelar, sincronizar, buscar a DC-e e rastrear um objeto.
infixs_correios_automatico_object_trackings_batchessrc/Services/Correios/CorreiosService.php:321array $batches (api, codes[]), string[] $tracking_codesarrayLotes de rastreio por contrato.
infixs_correios_automatico_shipping_time_correios_apisrc/Services/Correios/CorreiosService.php:233CorreiosApi $api, ?ShippingTime $shipping_timeCorreiosApiCliente da consulta de prazo.
infixs_correios_automatico_calculate_shipping_cost_correios_apisrc/Services/Correios/CorreiosService.php:110CorreiosApi $api, ShippingCost $shipping_costCorreiosApiCliente da consulta de preço pelo contrato.

CorreiosApi é \Infixs\CorreiosAutomatico\Services\Correios\CorreiosApi; Person fica em \Infixs\CorreiosAutomatico\Services\Correios\Includes. Os filtros de cliente trocam o contrato usado no envio, por isso servem a marketplaces com contrato por vendedor.

PRO e Correios LOG+

PRO Além destes, o PRO tem infixs_correios_automatico_auto_prepost_wait_invoice (nota fiscal), infixs_correios_automatico_label_pdf_permission e infixs_correios_automatico_pro_auto_print_enabled (etiqueta) e infixs_correios_automatico_external_shipping_line_method (pedidos), listados nos grupos acima.

FiltroArgumentosRetornoPara que serve
infixs_correios_automatico_pro_logplus_invoice_xml PROPRO · src/Integrations/LogPlus/Invoice/LogPlusInvoiceXml.php:437string $xml = '', WC_Order $order, string $correios_idstring (vazio = ainda sem XML)XML da NF-e entregue ao armazém Correios LOG+. Consultado enquanto o lojista não enviou um XML à mão. Detalhes. Desde PRO 1.6.0.
infixs_correios_automatico_pro_logplus_invoice_xml_error PROPRO · src/Integrations/LogPlus/Invoice/LogPlusInvoiceXml.php:669string $message, WP_Error $error, string $xml, WC_Order $order, string $correios_idstringMensagem ao lojista quando o XML não passa na conferência local; reason = xped quando falta o id. Desde PRO 1.6.2.
infixs_correios_automatico_pro_logplus_invoice_wait_days PROPRO · src/Integrations/LogPlus/Invoice/LogPlusInvoiceXml.php:560int $days = 10intDias, contados da criação do pedido no armazém, em que o XML segue indo sozinho enquanto o armazém não libera o pedido para faturamento. Passado o prazo, o lojista reenvia à mão. Desde PRO 1.6.4.
infixs_correios_automatico_pro_logplus_order_number PROPRO · src/Integrations/LogPlus/Orders/LogPlusOrderBuilder.php:161string $number, WC_Order $orderstring (só dígitos, até 12)Número com que o pedido vai ao armazém. É diferente do xPed, que é o id devolvido pelos Correios.
infixs_correios_automatico_pro_logplus_additional_services PROPRO · src/Integrations/LogPlus/Orders/LogPlusOrderBuilder.php:115string[] $services = [], WC_Order $orderstring[]Serviços adicionais do pedido no armazém; com 019 ou 064, o valor da mercadoria é declarado.

Uso interno

interno Filtros que ligam o grátis ao PRO ou servem ao desenvolvimento do próprio plugin. Ficam aqui para referência.

FiltroPara quê
infixs_correios_automatico_service_cancel_prepostsrc/Services/PrepostService.php:3381Cancelamento de pré-postagem (o PRO responde).
infixs_correios_automatico_prepost_get_packet_datasrc/Services/Correios/Includes/Prepost.php:522Dados de pacote internacional (PRO).
infixs_correios_automatico_prepost_metabox_cancel_button_classsrc/Presentation/admin/views/html-prepost-meta-box.php:128Classe do botão Cancelar na caixa do pedido.
infixs_correios_automatico_settingssrc/Config/plugin.php:5Valores padrão das configurações.
infixs_correios_automatico_save_general_settingssrc/Controllers/Rest/SettingsGeneralController.php:278Gravação das configurações gerais (o PRO salva licença e agente de impressão).
infixs_correios_automatico_save_debug_settingssrc/Controllers/Rest/SettingsGeneralController.php:293Gravação das configurações de depuração.
infixs_correios_automatico_prepare_general_settingssrc/Controllers/Rest/SettingsGeneralController.php:512Resposta das configurações gerais ao painel.
infixs_correios_automatico_prepaid_api_url / infixs_correios_automatico_prepaid_app_urlsrc/Prepaid/PrepaidApi.php:123 · :145Endereços do Contrato pré-pago (ambiente de desenvolvimento).
infixs_correios_automatico_iconssrc/Utils/Icons.php:23Ícones da calculadora e das configurações.
infixs_correios_automatico_active_pluginssrc/Core/Admin/Admin.php:306Extensões ativas mostradas na página Extensões do painel.
correios_automatico_get_shipping_cost (sem o prefixo infixs_)src/Services/Correios/CorreiosService.php:46Cálculo de preço pelo Contrato Próprio.
infixs_correios_automatico_pro_api_urlPRO · src/Services/InfixsProApi.php:48Endereço da API usada pelo PRO (desenvolvimento).
infixs_correios_automatico_pro_invoice_lookup_order_ids / infixs_correios_automatico_pro_invoice_waiting_sincePRO · src/Integrations/Bling/Invoice/BlingInvoiceLookup.php:255 · :284Coordenação entre a consulta de notas do Bling e o Correios LOG+.