FernandoAcosta.Net

Referência de hooks

5 min de leituraAtualizado há 4 dias3.2.0

Filtros do Simulador de Parcelas, conferidos no código da versão 3.2.0. O plugin não dispara actions próprias. As actions wcsp_before_installments_table e wcsp_after_installments_table só existem no layout antigo (Versão do plugin desmarcado).

Onde colocar o código

No functions.php do tema filho ou num plugin de snippets (como o Code Snippets). Não edite os arquivos do plugin: uma atualização apaga a mudança.

Configurações

wc_installments_simulator_settings

Filtro. Muda as configurações antes de qualquer cálculo. Recebe o produto quando há um, então serve pra regras por produto ou categoria. Vale pra vitrine, carrinho, schema, feeds e desconto do checkout (que lê as configurações de cada item).

Parâmetro Tipo Descrição
$settings array Configurações já com os padrões. Chaves principais: discount, fee, max_installments, max_installments_interest_free, min_installment, product_layout, loop_layout, enable_schema.
$product WC_Product|null Produto em questão, ou null em contextos gerais.

Retorno: array.

add_filter( 'wc_installments_simulator_settings', function ( $settings, $product ) {
  if ( $product && has_term( 'promocao', 'product_cat', $product->get_id() ) ) {
    $settings['discount'] = 15;
  }
  return $settings;
}, 10, 2 );

Mais exemplos em Regras diferentes por categoria, tag ou preço.

wc_installments_simulator_cart_settings

Filtro. Muda as configurações só na exibição do total do carrinho.

Parâmetro Tipo Descrição
$settings array Configurações do carrinho.
$order_total float Total do carrinho.
$amount_to_remove float Valor que fica fora do desconto à vista (como o frete).

Retorno: array.

add_filter( 'wc_installments_simulator_cart_settings', function ( $settings, $order_total ) {
  if ( $order_total > 1000 ) {
    $settings['max_installments'] = 12;
  }
  return $settings;
}, 10, 2 );

wc_installments_simulator_settings_fields

Filtro. Muda a lista de campos da tela de configurações. wc_simulador_parcelas_settings é o nome antigo, mantido por compatibilidade.

Parâmetro Tipo Descrição
$fields array Campos no formato da API de configurações do WooCommerce.

Retorno: array.

Disponibilidade e exibição

wcsp_is_available

Filtro. Decide se o simulador aparece pra um produto. A checagem de licença vem antes e não pode ser contornada por este filtro.

Parâmetro Tipo Descrição
$is_available bool false no painel, em produtos agrupados e sem preço.
$product WC_Product Produto.

Retorno: bool. Exemplos em Como esconder o simulador em produtos específicos.

wcsp_layout

Filtro. Troca o modelo de exibição de um produto.

Parâmetro Tipo Descrição
$slug string Modelo escolhido: default, pix_highlight, payment_tiles, savings_banner, payment_list, compact ou payment_selector.
$context string product ou loop.
$product WC_Product Produto.

Retorno: string. Um modelo que não existe no contexto cai no modelo Padrão.

add_filter( 'wcsp_layout', function ( $slug, $context, $product ) {
  if ( 'product' === $context && $product->get_price() > 1000 ) {
    return 'payment_selector';
  }
  return $slug;
}, 10, 3 );

wcsp_layouts

Filtro. Lista de modelos, com rótulo, descrição, classe, contextos e opções de cada um. Serve pra mudar padrões das opções ou registrar um modelo próprio (classe que estende WC_Installments_Simulator\Frontend\Layouts\Layout).

Parâmetro Tipo Descrição
$layouts array Modelos indexados pelo slug.

Retorno: array.

add_filter( 'wcsp_layouts', function ( $layouts ) {
  $layouts['pix_highlight']['options']['accent']['default'] = '#6d28d9';
  return $layouts;
} );

wcsp_handler

Filtro. Troca o objeto que monta a exibição. Uso avançado.

Parâmetro Tipo Descrição
$handler Prices\Product|Prices\Loop Exibição da página do produto ou da listagem.
$product WC_Product Produto.

Retorno: objeto que estende WC_Installments_Simulator\Frontend\Prices\Prices_Base.

wc_installments_simulator_icon

Filtro. Troca o SVG de um ícone. Exemplos em Como trocar os ícones de Pix, boleto e cartão.

Parâmetro Tipo Descrição
$icon string SVG atual.
$type string pix, ticket (boleto) ou card.

Retorno: string.

wcsp_incash_savings_html

Filtro. HTML da linha "Você economiza" no modelo Padrão.

Parâmetro Tipo Descrição
$html string HTML da linha.
$savings float Valor economizado.
$savings_percent float Percentual economizado.
$product WC_Product|null Produto (null no carrinho).
$settings array Configurações.
$prices Prices_Base Objeto da exibição.

Retorno: string.

wcsp_table_interest_label

Filtro. Sufixo de cada parcela com juros na tabela completa e no modal.

Parâmetro Tipo Descrição
$label string Valor de Tabela completa - sufixo parcela com juros.
$installment array amount, total, installments e interest_free.

Retorno: string.

add_filter( 'wcsp_table_interest_label', function ( $label, $installment ) {
  return 'total ' . wc_price( $installment['total'] );
}, 10, 2 );

wcsp_payment_modal_html

Filtro. HTML de dentro do modal Formas de pagamento (preço à vista e tabela de parcelas), usado com Exibição da tabela completa em Abrir em modal com as formas de pagamento. Desde a versão 3.1.0.

Parâmetro Tipo Descrição
$html string Seções à vista e do cartão.
$data array Preços do produto: card_price, incash_price, reference_price, full_price, savings, savings_percent, installments, has_multiple_prices.
$settings array Configurações.

Retorno: string. O conteúdo fica num <span> escondido dentro do preço do tema, e o script copia pro modal no clique. Use só tags de linha, como <span> e <strong>: um <div> ou <table> fecha o <p class="price"> do tema.

add_filter( 'wcsp_payment_modal_html', function ( $html ) {
  return $html . '<span class="minha-nota">Parcelamento sujeito à aprovação do cartão.</span>';
} );

Preços

wcsp_incash_price e wcsp_credit_card_price

Filtros. Preço base do cálculo à vista e do cartão, antes do desconto e dos juros.

Parâmetro Tipo Descrição
$price float Preço que o WooCommerce exibe (o menor, em produtos variáveis).
$product WC_Product Produto.
$prices Prices_Base Objeto da exibição.

Retorno: float.

wcsp_incash_price_final

Filtro. Preço à vista depois do desconto.

Parâmetro Tipo Descrição
$price string Preço com desconto.
$settings array Configurações.
$amount_to_remove float Valor que ficou fora do desconto.
$prices Prices_Base Objeto da exibição.

Retorno: string ou float.

wcsp_regular_price

Filtro. Preço normal usado no preço riscado de produtos em promoção.

Parâmetro Tipo Descrição
$regular_price string Preço normal.
$product WC_Product Produto.
$prices Prices_Base Objeto da exibição.
$settings array Configurações.

Retorno: string ou float.

wcsp_incash_savings_amount

Filtro. Valor economizado no pagamento à vista, usado na linha de economia e nos textos com {savings}.

Parâmetro Tipo Descrição
$savings float Preço base menos preço à vista.
$product WC_Product|null Produto.
$settings array Configurações.
$prices Prices_Base Objeto da exibição.

Retorno: float.

wcsp_amount_to_remove_before_apply_incash_discount

Filtro. Valor que fica fora do desconto à vista na exibição do carrinho. Não muda o desconto do checkout.

Parâmetro Tipo Descrição
$amount float 0 por padrão. O frete é somado depois, conforme a opção do carrinho.

Retorno: float.

Parcelas e juros

wcsp_is_interest_free

Filtro. Decide se uma parcela é sem juros.

Parâmetro Tipo Descrição
$is_free bool Resultado padrão.
$total float Preço base.
$fee float Taxa geral.
$installment_fee float Taxa desta parcela (da tabela dinâmica, se houver).
$i int Número de parcelas.
$max_free int Parcelas sem juros.
$max int Máximo de parcelas.
$is_sum bool Configuração interna da tabela dinâmica.
$is_pagseguro bool Parcelamento via PagSeguro marcado.

Retorno: bool.

// Até 6x sem juros acima de R$ 1.000.
add_filter( 'wcsp_is_interest_free', function ( $is_free, $total, $fee, $installment_fee, $i ) {
  return $is_free || ( $total >= 1000 && $i <= 6 );
}, 10, 5 );

wc_installments_simulator_interest_free_amount

Filtro. Valor de uma parcela sem juros.

Parâmetro Tipo Descrição
$amount float Total dividido pelas parcelas.
$total float Preço base.
$i int Número de parcelas.

Retorno: float.

wcsp_dynamic_installments_limit

Filtro. Quantas linhas a Taxas de juros dinâmica mostra na tela de configurações. Não muda a loja.

Parâmetro Tipo Descrição
$limit int Máximo de parcelas salvo.

Retorno: int.

Arquivos CSS e JS

wcsp_style

Filtro, chamado duas vezes. Na primeira recebe true: retorne false pra não carregar o CSS do plugin. Na segunda recebe a URL do CSS: retorne outra URL pra trocar o arquivo.

add_filter( 'wcsp_style', '__return_false' );

wcsp_script

Filtro. Decide se o JavaScript carrega. Padrão: is_product(). O script abre a tabela de parcelas e as abas do Seletor à vista × cartão.

add_filter( 'wcsp_script', function ( $load ) {
  return $load || is_shop() || is_product_category();
} );

wcsp_script_dependencies

Filtro. Dependências do script. Padrão: [ 'jquery' ].

wcsp_script_params

Filtro. Parâmetros enviados ao script no objeto WCInstallmentsSimulatorParams.

Feeds

wcsp_feed_integrations

Filtro. Lista de integrações de feed. Cada item implementa WC_Installments_Simulator\Integrations\Feed_Integration_Interface.

wcsp_feed_integrations_options

Filtro. Opções do campo Plugins compatíveis, no formato id => nome.

Shortcodes

  • [wcsp_open_single_product] — os preços seguintes usam o contexto da página do produto.
  • [wcsp_close_single_product] — os preços seguintes usam o contexto da listagem.

Quando usar, em Solução de problemas.

Foi útil?