BIBLIOTECA DE SNIPPETS
Mostrar o método de pagamento na lista de encomendas do WooCommerce
Acrescenta uma coluna com o método de pagamento às encomendas, com suporte para HPOS e para o armazenamento clássico.
Antes de começares
- Dificuldade
- Intermédio
- Requisitos
- WooCommerce ativo e acesso à administração das encomendas.
- Local de aplicação
- Snippet PHP num gestor de snippets, configurado para executar na administração ou em todo o site. Cola sem a abertura <?php.
Como aplicar
- Cria um snippet PHP e cola o código sem a tag de abertura PHP.
- Configura a execução para incluir a administração e ativa o snippet.
- Abre WooCommerce → Encomendas. Se a coluna não surgir, verifica as Opções do ecrã.
- A coluna mostra o nome do método guardado em cada encomenda; não altera dados nem precisa de migrar encomendas.
Como confirmar o resultado
- Compara a coluna com o método indicado no detalhe de uma encomenda.
- Confirma uma encomenda sem método definido: deve aparecer “Não indicado”.
- Valida com HPOS ou com armazenamento clássico num ambiente apropriado; não mudes o armazenamento da loja de produção só para testar o snippet.
Compatibilidade e limites
A coluna é informativa: não acrescenta ordenação nem filtros por método de pagamento. Usa objetos WC_Order em vez de consultar diretamente metadados de encomendas.
Como desfazer
Desativa ou remove apenas este snippet e limpa a cache relevante. No caso do CSS, remove as regras adicionadas.
Referências técnicas
Código do snippet
Faz uma cópia de segurança e testa num ambiente de desenvolvimento antes de aplicar no site principal. Consulta o local de aplicação indicado neste guia.
$ed_payment_columns = static function ($columns) {
$columns['ed_payment_method'] = 'Método de pagamento';
return $columns;
};
add_filter('manage_edit-shop_order_columns', $ed_payment_columns);
add_filter('manage_woocommerce_page_wc-orders_columns', $ed_payment_columns);
$ed_payment_cell = static function ($column, $order_or_id) {
if ('ed_payment_method' !== $column || !function_exists('wc_get_order')) {
return;
}
$order = $order_or_id instanceof WC_Order
? $order_or_id : wc_get_order($order_or_id);
if (!$order instanceof WC_Order) {
echo '—';
return;
}
$title = $order->get_payment_method_title();
echo esc_html($title !== '' ? $title : 'Não indicado');
};
add_action('manage_shop_order_posts_custom_column', $ed_payment_cell, 10, 2);
add_action('manage_woocommerce_page_wc-orders_custom_column', $ed_payment_cell, 10, 2);