
Woocommerce Brasil
Trocou a página de finalizar compra pelo checkout em blocos e o campo de CPF sumiu. O filtro woocommerce_checkout_fields não é lido ali: o bloco é React e só desenha campo registrado pela API de campos adicionais do WooCommerce 9.x.
O registro tem que acontecer dentro de woocommerce_init, e o id precisa de namespace com barra. Isso vai no plugin do site ou no functions.php do tema filho:
add_action( 'woocommerce_init', function () {
if ( ! function_exists( 'woocommerce_register_additional_checkout_field' ) ) {
return;
}
woocommerce_register_additional_checkout_field( [
'id' => 'rtk-loja/cpf',
'label' => 'CPF',
'location' => 'contact',
'type' => 'text',
'required' => true,
] );
} );O location aceita três valores e cada um muda onde o campo aparece: contact gruda no bloco do e-mail, address se repete em cobrança e entrega, e order abre um bloco de informações extras no fim. Chamado fora do woocommerce_init, ou com id sem barra, o campo não é registrado e a tela não reclama.
A pegadinha é essa: o valor não vira uma meta com o nome que você escolheu. O WooCommerce prefixa a chave conforme o location, então procurar por cpf na meta do pedido não acha nada.
// contact e order caem no mesmo grupo
$cpf = $order->get_meta( '_wc_other/rtk-loja/cpf' );
// location address grava um par, cobrança e entrega
$cob = $order->get_meta( '_wc_billing/rtk-loja/cpf' );
$ent = $order->get_meta( '_wc_shipping/rtk-loja/cpf' );Pedido antigo não ganha o campo retroativamente. Ajuste o template da nota fiscal para tratar meta vazia antes de subir isso em produção.
Se travou nisso e precisa de ajuda, me chama aqui.
O pedido entrou às 21h e o relatório mostra 00h do dia seguinte. Onde setar date.timezone no PHP 8.3 e…
O pedido entra na loja e o e-mail nunca sai: antes de culpar o SMTP, veja o envio assíncrono, a…
O WordPress só oferece hourly, twicedaily, daily e weekly. Use o filtro cron_schedules para criar um intervalo de 5 minutos…
Dispare pela linha de comando o e-mail de um pedido que já existe na loja e descubra se a falha…
Página em branco no CodeIgniter 4, sem nenhuma mensagem? O ambiente está em production e escondeu o erro. Troque o…
O Google Ads acusa consentimento ausente porque o gtag sobe antes do banner. Veja como injetar o default denied do…