Regras por categoria, tag ou faixa de preço
O filtro wc_installments_simulator_settings permite sobrescrever qualquer configuração do plugin com base no produto sendo exibido. Esta página tem os exemplos mais comuns.
Por que usar este filtro
Os ajustes nas configurações do plugin valem pra todos os produtos. Quando você quer regras diferentes (ex: eletrônicos têm parcelamento maior, assinaturas não têm desconto à vista), use este filtro.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
// modifique $settings aqui
return $settings;
}, 10, 2 );
$settingsé um array com todas as configurações que aparecem no admin (mesmas chaves).$productpode sernullem alguns contextos. Sempre valide antes de usar.
Receitas práticas
Mais parcelas para uma categoria
Eletrônicos podem parcelar até 12x; o resto da loja só até 6x.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && has_term( 'eletronicos', 'product_cat', $product->get_id() ) ) {
$settings['max_installments'] = 12;
$settings['fee'] = 1.99;
}
return $settings;
}, 10, 2 );
Sem juros em produtos premium
Categoria premium ganha 6 parcelas sem juros, sem taxa.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && has_term( 'premium', 'product_cat', $product->get_id() ) ) {
$settings['max_installments_interest_free'] = 6;
$settings['fee'] = 0;
}
return $settings;
}, 10, 2 );
Desconto à vista diferente por tag
Produtos com a tag liquidacao recebem desconto extra.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && has_term( 'liquidacao', 'product_tag', $product->get_id() ) ) {
$settings['discount'] = 15; // 15% à vista
}
return $settings;
}, 10, 2 );
Parcelamento por faixa de preço
Produtos acima de R$ 500 ganham 12x; abaixo, só 6x.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && $product->get_price() >= 500 ) {
$settings['max_installments'] = 12;
} else {
$settings['max_installments'] = 6;
}
return $settings;
}, 10, 2 );
Mínimo de parcela maior em produtos baratos
Pra evitar parcelas microscópicas em produtos de baixo valor.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && $product->get_price() < 50 ) {
$settings['min_installment'] = 10;
}
return $settings;
}, 10, 2 );
Sem desconto à vista em uma categoria
Assinaturas não recebem desconto à vista.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( $product && has_term( 'assinaturas', 'product_cat', $product->get_id() ) ) {
$settings['discount'] = 0;
$settings['always_show_discount'] = 'no';
}
return $settings;
}, 10, 2 );
Combinar regras
Empilhe condições — só lembre que a última que escreve no $settings ganha.
add_filter( 'wc_installments_simulator_settings', function( $settings, $product ) {
if ( ! $product ) return $settings;
// Regra base por categoria
if ( has_term( 'eletronicos', 'product_cat', $product->get_id() ) ) {
$settings['max_installments'] = 12;
$settings['fee'] = 1.99;
}
// Override em promoções
if ( has_term( 'promo', 'product_tag', $product->get_id() ) ) {
$settings['max_installments_interest_free'] = 6;
}
// Override pra alto valor
if ( $product->get_price() >= 5000 ) {
$settings['discount'] = 8; // mais desconto pro Pix
}
return $settings;
}, 10, 2 );
Onde colocar o código
functions.phpdo tema filho (recomendado).- Plugin de snippets como Code Snippets ou WPCode.
Não coloque no tema pai — atualizações sobrescrevem.
Lista de chaves disponíveis
Todas as chaves de $settings correspondem aos campos do admin. As mais úteis:
| Chave | Tipo | Onde está no admin |
|---|---|---|
discount |
número (%) | Desconto no preço principal |
discount_icon |
string (pix ou ticket) |
Ícone do desconto |
text_after_price |
string | Texto depois do preço |
max_installments |
número | Máximo de parcelas |
max_installments_interest_free |
número | Parcelas sem juros |
min_installment |
número | Parcela mínima |
fee |
número (%) | Taxa de juros no parcelamento |
use_dynamic_fees |
yes/no |
Usar tabela dinâmica |
dynamic_fees |
array | Taxas de juros dinâmica |
using_pagseguro |
yes/no |
Parcelamento via PagSeguro |
always_show_discount |
yes/no |
Sempre exibir preço à vista |
A lista completa está disponível inspecionando wp_options na chave wc_installments_simulator_settings.