Coletânea de snippets PHP para situações específicas que não têm configuração no admin. Use Code Snippets ou adicione no functions.php do tema filho.
O suporte oficial não cobre snippets customizados nem revisão de código. Teste em staging antes de aplicar em produção.
Banner de cabeçalho
Exibir uma faixa promocional no topo do checkout (oferta limitada, frete grátis, etc.).
add_action( 'wc_smart_checkout_after_header', function () { ?>
<style>
.checkout-header + .checkout-header-banner::before {
position: relative;
content: "";
display: inline-flex;
width: 100%;
height: 64px;
background-image: url(https://exemplo.com.br/promo.png);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
background-color: #011032;
}
</style>
<?php } );
Você pode trocar o CSS por HTML qualquer (texto, imagem, link). Para um contador regressivo, é necessário JavaScript adicional. O timestamp de quando o cliente entrou no checkout fica disponível em:
WC()->session->get( 'smart_checkout_started_at' );
Permitir remover itens no checkout
Por padrão, o cliente não pode remover itens no checkout (a intenção é que ele finalize). Para liberar:
add_filter( 'wc_smart_checkout_quantity_input_min', '__return_zero' );
add_filter( 'woocommerce_update_order_review_fragments', function( $fragments ) {
if ( ! isset( $fragments['form.woocommerce-checkout'] ) || ! WC()->cart->is_empty() ) {
return $fragments;
}
$fragments['form.woocommerce-checkout'] .= '<script>window.location = "' . home_url() . '"</script>';
return $fragments;
});
Quando o cliente esvazia o carrinho, é redirecionado para a home.
Ativar notas do pedido
O campo "Notas do pedido" é nativo do WooCommerce. Para ativar:
add_filter( 'woocommerce_enable_order_notes_field', '__return_true' );
Integração com Customily
Customily personaliza imagens de produtos. Para exibir a imagem personalizada (em vez da imagem padrão) no resumo do checkout:
add_filter( 'wc_smart_checkout_order_items_thumbnail', function ( $image, $cart_item ) {
if ( isset( $cart_item['property[_customily-thumb]'] ) || isset( $cart_item['property___customily-thumb'] ) ) {
$property = $cart_item['property[_customily-thumb]'] ?? $cart_item['property___customily-thumb'];
return '<img src="' . esc_url( $property['value'] ) . '" style="object-fit: contain;" />';
}
return $image;
}, 100, 2 );
Exibir detalhes do pedido na página de boleto
Por padrão, a página de boleto mostra apenas o boleto. Para incluir itens, total e endereço:
add_filter( 'wc_smart_checkout_order_details_bank_slip_page', '__return_true' );
Ativar Order Bump na página de pagar pedido
Por padrão, Order Bump é desabilitado na página de pagar pedido pública. Para ativar:
add_filter( 'wc_smart_checkout_disable_order_bump_for_pay_page', '__return_false' );
Remover restrição de tamanho dos campos número/complemento
Em raros casos, a limitação interfere com auto-completar de cartão de crédito. Para desativar:
add_filter( 'wc_smart_checkout_restrict_address_fields_length', '__return_false' );
Mudar etapa padrão para clientes logados
Por padrão, clientes logados começam na etapa de endereço de entrega. Para começar diretamente em pagamento:
add_filter( 'wc_smart_checkout_default_logged_in_step', function() {
return 'payment';
});
Customizar ícone de gateway
Substituir o ícone que vem do gateway por um badge customizado:
add_filter( 'wc_smart_checkout_gateway_icon', function( $icon, $gateway ) {
if ( $gateway->id === 'interpix' ) {
return '<span class="gateway-badge">Imediato!</span>';
}
return $icon;
}, 100, 2 );
Carregar CSS externo
add_filter( 'wc_smart_checkout_custom_style_url', function() {
return 'https://example.com/style.css';
});
Carregar JS externo
add_filter( 'wc_smart_checkout_custom_script_url', function() {
return 'https://example.com/main.js';
});
Desativar fonte customizada
Quando você quer que o checkout use a fonte do tema, em vez da fonte que o plugin carrega:
add_filter( 'wc_smart_checkout_load_font', '__return_false' );
Encontrar onde uma função foi definida
Útil para diagnosticar conflitos:
if ( class_exists( 'ReflectionFunction' ) ) {
$reflFunc = new ReflectionFunction( 'woocommerce_checkout_coupon_form' );
echo $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
}
Sobrescrever templates
Para mudanças visuais que não cabem no Customizer, copie o template do plugin para o tema:
| Template original | Caminho no tema |
|---|---|
templates/smart-checkout/header.php |
seutema/smart-checkout/header.php |
templates/smart-checkout/footer.php |
seutema/smart-checkout/footer.php |
templates/checkout/thankyou-pages/pix.php |
seutema/smart-checkout/checkout/thankyou-pages/pix.php |
O plugin detecta o arquivo no tema e usa ele em vez do padrão.
Quando você sobrescreve um template, é responsabilidade sua mantê-lo compatível com novas versões do plugin. Updates podem mudar markup que o seu template assume.
Diagnosticar templates carregados de lugar errado
Se o checkout aparece com divs estranhas e você não consegue identificar a origem:
add_action( 'woocommerce_after_template_part', function() {
if ( function_exists( 'is_checkout' ) && is_checkout() ) {
$q = new \WC_Logger();
$q->add( 'debug-templates', print_r( func_get_args(), true ) );
}
}, 100, 5 );
Acesse o checkout, depois veja os logs em WooCommerce → Status → Logs → debug-templates.