O plugin não tem tela de configurações. Tudo o que muda o conteúdo ou o layout da declaração passa por filtros. Esta é a referência completa, agrupada pela parte do documento que cada filtro afeta.
Cole os exemplos no functions.php do tema filho ou num plugin de snippets (Code Snippets, FluentSnippets). Pra inserir conteúdo novo em pontos da declaração, veja Actions, templates e CSS.
Bugs em código customizado precisam ser depurados pelo dev que escreveu. Teste num pedido de exemplo antes de usar na operação.
Colunas e total
| Filtro | Padrão | O que controla |
|---|---|---|
wc_correios_declaration_show_price_column |
true |
Coluna Preço |
wc_correios_declaration_show_weight_column |
true |
Coluna Peso |
wc_correios_declaration_show_total |
true |
Linha Valor total |
Quando você esconde uma coluna, o plugin alarga a coluna Discriminação do Conteúdo sozinho.
add_filter( 'wc_correios_declaration_show_weight_column', '__return_false' );
Itens
wc_correios_declaration_items
Filtra a lista de itens que entra na tabela. Recebe o array de WC_Order_Item_Product e o pedido.
Exemplo: deixar produtos virtuais fora da declaração.
add_filter( 'wc_correios_declaration_items', function( $items, $order ) {
foreach ( $items as $key => $item ) {
$product = $item->get_product();
if ( $product && $product->is_virtual() ) {
unset( $items[ $key ] );
}
}
return $items;
}, 10, 2 );
O Valor total vem do subtotal do pedido e não muda quando você tira itens por aqui. Ajuste também o wc_correios_declaration_total.
wc_correios_declaration_product_name
Nome exibido em Discriminação do Conteúdo. Padrão: o nome do item no pedido.
apply_filters( 'wc_correios_declaration_product_name', $name, $item, $order );
Exemplo: nome genérico pra todos os itens.
add_filter( 'wc_correios_declaration_product_name', function( $name, $item, $order ) {
return 'Acessórios de moda';
}, 10, 3 );
wc_correios_declaration_product_name_attributes
Em variações, o plugin acrescenta ao nome os atributos globais (pa_*) que ainda não estão no nome do item, separados por /. O valor usado é o salvo no pedido, que costuma ser o slug do termo (azul-marinho). Retorne false pra não acrescentar nada.
add_filter( 'wc_correios_declaration_product_name_attributes', '__return_false' );
wc_correios_declaration_product_quantity
Quantidade exibida. Padrão: a quantidade do item no pedido.
apply_filters( 'wc_correios_declaration_product_quantity', $quantity, $item, $order );
wc_correios_declaration_product_weight
Texto da coluna Peso. Padrão: peso atual do produto × quantidade, seguido da unidade da loja, sem espaço (0.9kg). Produto sem peso mostra -.
apply_filters( 'wc_correios_declaration_product_weight', $weight_text, $item, $order );
Exemplo: vírgula como separador decimal e espaço antes da unidade.
add_filter( 'wc_correios_declaration_product_weight', function( $weight_text, $item, $order ) {
$product = $item->get_product();
if ( ! $product || ! $product->get_weight() ) {
return $weight_text;
}
$total = (float) $product->get_weight() * $item->get_quantity();
return wc_format_localized_decimal( $total ) . ' ' . get_option( 'woocommerce_weight_unit' );
}, 10, 3 );
wc_correios_declaration_total
HTML do Valor total. Padrão: wc_price( $order->get_subtotal() ), que é a soma dos itens antes dos cupons, sem frete. A coluna Preço usa o total de cada linha já com desconto, então os números divergem em pedidos com cupom.
Exemplo: total igual à soma da coluna Preço.
add_filter( 'wc_correios_declaration_total', function( $total, $order ) {
$soma = 0;
foreach ( $order->get_items() as $item ) {
$soma += $order->get_line_total( $item );
}
return wc_price( $soma );
}, 10, 2 );
wc_coreios_declaration_itens_title
Título da tabela. Padrão: Identificação dos bens. Recebe também o pedido.
O nome real do filtro é wc_coreios_declaration_itens_title, com "coreios" e "itens". Use exatamente assim.
Textos
wc_correios_declaration_text
Texto do bloco Declaração. O plugin chama este filtro duas vezes: a primeira com true, pra decidir se mostra o bloco, e a segunda com o texto padrão. Retorne uma string pra trocar o texto ou false pra esconder o bloco.
add_filter( 'wc_correios_declaration_text', function() {
return 'Seu texto da declaração.';
} );
wc_correios_declaration_observations
HTML do bloco Observações. Mesmo comportamento do filtro anterior: string troca o conteúdo, false esconde.
add_filter( 'wc_correios_declaration_observations', '__return_false' );
wc_correios_declaration_city
Cidade que aparece antes da data, acima da assinatura. Padrão: a cidade do endereço da loja. A data é sempre a do dia da impressão.
Remetente e destinatário
wc_correios_declaration_store_name
Nome do remetente. Padrão: o Título do site (get_bloginfo( 'name' )).
wc_correios_declaration_sender_address
Array com o endereço do remetente, formatado depois pelo WooCommerce. Chaves: first_name, last_name, company, billing_cpf, address_1, address_2, city, state, postcode, country, number, neighborhood. Os valores padrão vêm do Endereço da loja em WooCommerce → Configurações → Geral.
add_filter( 'wc_correios_declaration_sender_address', function( $address ) {
$address['address_1'] = 'Rua das Flores, 120';
$address['city'] = 'Joinville';
$address['state'] = 'SC';
$address['postcode'] = '89201-000';
return $address;
} );
wc_correios_declaration_store_address
Versão em HTML do remetente, com o pedido como segundo parâmetro. Basta existir um callback neste filtro e o plugin passa a usar o HTML no lugar do array do filtro anterior. Use quando o remetente depende do pedido, por exemplo em lojas com mais de um centro de distribuição.
add_filter( 'wc_correios_declaration_store_address', function( $html, $order ) {
if ( 'RJ' === $order->get_shipping_state() ) {
return '<strong>Minha Loja - CD Rio</strong><br />Rua Exemplo, 50<br />20000-000<br />Rio de Janeiro - RJ';
}
return $html;
}, 10, 2 );
wc_correios_declaration_to_address
HTML do bloco Destinatário. Padrão: endereço de entrega formatado, ou o de cobrança quando o pedido não tem entrega. Recebe o pedido como segundo parâmetro.
wc_correios_declaration_show_cpf
Mostra o CPF (_billing_cpf) no destinatário. Padrão: true.
add_filter( 'wc_correios_declaration_show_cpf', '__return_false' );
Impressão e acesso
wc_correios_declaration_auto_open_print_page
Abre a janela de impressão do navegador assim que a declaração carrega. Padrão: true. Desligue se a equipe costuma editar antes de imprimir.
add_filter( 'wc_correios_declaration_auto_open_print_page', '__return_false' );
wc_correios_declaration_permissions
Decide quem pode abrir a declaração. Recebe o resultado de current_user_can( 'edit_shop_orders' ) e, desde a 1.6.0, o array de IDs dos pedidos como inteiros.
Exemplo: só administradores imprimem.
add_filter( 'wc_correios_declaration_permissions', function( $allowed, $order_ids ) {
return current_user_can( 'manage_options' );
}, 10, 2 );
Logo e etiqueta de endereço
| Filtro | Padrão | O que faz |
|---|---|---|
wc_correios_declaration_logo |
false |
Mostra um logo ao lado do título. Desligado desde a 1.3.3, pra seguir o modelo atual dos Correios. |
wc_correios_declaration_logo_url |
logo dos Correios do plugin | URL da imagem do logo. Dá pra usar o logo da loja. |
wc_correios_declaration_print_labels |
false |
Imprime no rodapé de cada folha uma etiqueta com destinatário e remetente, pra recortar. |
wc_correios_declaration_destination_display_order_id |
true |
Mostra #ID do pedido na etiqueta. É o ID interno, não o número de plugins de numeração sequencial. |
Exemplo: etiqueta no rodapé, sem o ID do pedido.
add_filter( 'wc_correios_declaration_print_labels', '__return_true' );
add_filter( 'wc_correios_declaration_destination_display_order_id', '__return_false' );
Veja também
- Actions, templates e CSS — pra acrescentar conteúdo e mexer no layout.