Por padrão, o plugin serve os PDFs dos boletos em URLs como:
https://seusite.com.br/boleto/wc_order_abc123.pdf
O .pdf final é decorativo — o arquivo não existe fisicamente nesse caminho. O plugin usa rewrite rules pra interceptar requests /boleto/{order_key}.pdf e gerar/servir o PDF dinamicamente em PHP.
O problema
Algumas hospedagens não permitem URLs dinâmicas com extensão de arquivo. Servidores assim assumem que /boleto/{algo}.pdf é um arquivo estático e tentam servir do disco — encontram nada e devolvem 404.
A causa raiz é uma configuração de RewriteRule mal calibrada (geralmente: RewriteCond %{REQUEST_FILENAME} !-f está ausente, ou alguma regra de cache estático intercepta antes). Resolver isso na hospedagem é o ideal — mas depende do suporte do provedor.
A saída pelo PHP
Se você não consegue ajustar o servidor, remova o sufixo .pdf da URL pública:
add_filter( 'wc_banco_inter_bank_slip_preview_suffix', '__return_empty_string' );
Com isso, a URL passa a ser:
https://seusite.com.br/boleto/wc_order_abc123
Sem extensão, o servidor não tenta resolver pra arquivo estático. A request chega no PHP, o plugin gera o PDF e responde com Content-Type: application/pdf. O navegador exibe ou baixa normalmente.
Se você usa um tema filho, esse é o lugar certo. Se for tema parent, melhor criar um plugin custom de uma linha — atualizações de tema podem sobrescrever o functions.php.
Override total da URL
Pra casos onde você quer mudar a URL pra outro domínio, CDN ou caminho completamente diferente, use o filter wc_banco_inter_bank_slip_url:
add_filter( 'wc_banco_inter_bank_slip_url', function ( $url, $order_key ) {
return "https://cdn.minhaloja.com/boletos/{$order_key}";
}, 10, 2 );
Atenção: você precisa garantir que a URL final realmente entrega o PDF — o plugin não processa essa rota custom, ele só passa a URL pro cliente. Use isso quando você tem CDN/proxy próprio pra entregar o arquivo.