As configurações da tela valem pra loja inteira. Pra mudar só em parte dos produtos, use o filtro wc_installments_simulator_settings, que recebe o produto.
Onde colocar o código
No functions.php do tema filho ou num plugin de snippets. Não edite os arquivos do plugin.
O que muda e onde
O filtro roda pra cada produto na página do produto, na listagem, no schema, nos feeds e no desconto do checkout (item a item). Quando não há produto, como no total do carrinho, $product chega null e vale a regra geral.
Chaves mais usadas:
| Chave | Tipo | Campo da tela |
|---|---|---|
discount |
float | Desconto no preço principal |
fee |
float | Taxa de juros no parcelamento |
max_installments |
int | Máximo de parcelas |
max_installments_interest_free |
int | Parcelas sem juros |
min_installment |
float | Parcela mínima |
product_layout / loop_layout |
string | Modelo de exibição |
enable_schema |
yes/no |
Preço do Pix no schema (sem campo na tela) |
Desconto diferente por categoria
add_filter( 'wc_installments_simulator_settings', function ( $settings, $product ) {
if ( $product && has_term( 'eletronicos', 'product_cat', $product->get_id() ) ) {
$settings['discount'] = 5;
}
return $settings;
}, 10, 2 );
O checkout aplica 5% nos itens dessa categoria e o desconto geral nos outros.
Mais parcelas sem juros acima de um valor
add_filter( 'wc_installments_simulator_settings', function ( $settings, $product ) {
if ( $product && (float) $product->get_price() >= 500 ) {
$settings['max_installments_interest_free'] = 6;
}
return $settings;
}, 10, 2 );
Sem desconto no Pix pra uma tag
add_filter( 'wc_installments_simulator_settings', function ( $settings, $product ) {
if ( $product && has_term( 'sem-desconto', 'product_tag', $product->get_id() ) ) {
$settings['discount'] = 0;
}
return $settings;
}, 10, 2 );
Produtos variáveis
Em variações, $product é a variação. Pra checar categoria ou tag, use o produto pai:
$id = $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id();