FernandoAcosta.Netdocs

Ocultar o simulador em produtos específicos

2 min de leituraAtualizado há 5 dias

Ocultar o simulador em produtos específicos

Use o filtro wcsp_is_available para impedir que o simulador apareça em produtos com determinados critérios — categoria, SKU, tipo de produto, faixa de preço, qualquer regra que faça sentido.

Ocultar o simulador não desativa o parcelamento no checkout. O gateway de pagamento ainda vai permitir parcelar, se for permitido por ele. Esta configuração é só visual.

Como funciona

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( /* condição */ ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Retorne false pra ocultar, mantenha $is_available pra herdar o comportamento padrão.

Casos comuns

Ocultar para tipos de produto (assinatura, agrupado, etc.)

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  $tipos_ocultos = array( 'subscription', 'variable-subscription' );
  if ( $product && $product->is_type( $tipos_ocultos ) ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Ocultar por SKU

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  $skus_ocultos = array( 'sku-001', 'voucher-presente', 'gift-card' );
  if ( $product && in_array( $product->get_sku(), $skus_ocultos, true ) ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Ocultar por categoria

Por slug:

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( $product && has_term( array( 'vouchers', 'gift-cards' ), 'product_cat', $product->get_id() ) ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Por ID:

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  $categorias_ocultas = array( 12, 13 );
  if ( $product && array_intersect( $categorias_ocultas, $product->get_category_ids() ) ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Ocultar abaixo de um preço mínimo

Produtos baratos podem não fazer sentido ter parcelamento.

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( $product && $product->get_price() < 50 ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Ocultar acima de um preço máximo

Caso oposto: produtos caríssimos têm cotação manual.

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( $product && $product->get_price() > 100000 ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Ocultar produtos em promoção

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( $product && $product->is_on_sale() ) {
    return false;
  }
  return $is_available;
}, 10, 2 );

Combinar várias regras

add_filter( 'wcsp_is_available', function( $is_available, $product ) {
  if ( ! $product ) return $is_available;

  // Sem simulador em vouchers
  if ( has_term( 'vouchers', 'product_cat', $product->get_id() ) ) {
    return false;
  }

  // Sem simulador em assinaturas
  if ( $product->is_type( array( 'subscription', 'variable-subscription' ) ) ) {
    return false;
  }

  // Sem simulador em produtos abaixo de R$ 30
  if ( $product->get_price() < 30 ) {
    return false;
  }

  return $is_available;
}, 10, 2 );

Quando o simulador some, o que aparece no lugar?

O HTML padrão do WooCommerce — só o preço normal, sem nenhum bloco extra. O preço cheio do produto fica visível como em qualquer loja Woo padrão.

Diferença pro filtro wc_installments_simulator_settings

Comportamento wcsp_is_available wc_installments_simulator_settings
Esconde o plugin completamente Sim Não
Modifica o que o plugin exibe Não Sim
Caso de uso "Não quero ver nada do plugin aqui" "Quero o plugin aqui, mas com regras diferentes"

Se você quer só uma exibição diferente (ex: sem desconto, mas com parcelamento), use wc_installments_simulator_settings — veja Regras por categoria, tag ou preço.

Próximos passos

Foi útil?