FernandoAcosta.Netdocs

Acessando metadados do pedido

1 min de leituraAtualizado há 5 dias

Quando o cliente finaliza um pedido com Boleto Parcelado, o plugin grava dois metadados no pedido. Use-os pra identificar o plano escolhido em integrações, relatórios ou customizações.

Metadados gravados

Meta key Tipo Conteúdo
_ticket_installments_code string Código do plano (campo da tabela). Ex.: 3X.
_ticket_installments_description string Descrição do plano exibida pro cliente. Ex.: 3x de R$ 100,00 (total R$ 300,00).

A descrição é resolvida no momento do checkout. Se o admin remover esse plano da tabela depois, o pedido continua com a descrição original — o fallback do plugin lê _ticket_installments_description pra preservar o histórico.

Lendo os metadados

$order = wc_get_order( $order_id );

if ( 'wc_ticket_installments' === $order->get_payment_method() ) {
    $code        = $order->get_meta( '_ticket_installments_code' );
    $description = $order->get_meta( '_ticket_installments_description' );

    echo 'Plano selecionado: ' . esc_html( $description );
}

Listando todos os planos disponíveis

Pra obter os planos atuais (filtrados pelo total do carrinho) via PHP:

$gateways    = WC()->payment_gateways()->payment_gateways();
$gateway     = $gateways['wc_ticket_installments'] ?? null;

if ( $gateway ) {
    $available = $gateway->installments_available();
    // [
    //   ['value' => '3X', 'description' => '3x de R$ 100,00...'],
    //   ['value' => '6X', 'description' => '6x de R$ 100,00...'],
    // ]
}

installments_available() aplica o filtro woocommerce_wc_ticket_gateway_installments_available, então respeita customizações e a integração com o Simulador.

Lendo a tabela de planos crua

Se você precisa do array completo (ignorando filtragem por carrinho):

$options = get_option( 'wc_ticket_installments_available_options', [] );
// [
//   ['payment_code' => '3X', 'payment_description' => '...', 'payment_minimum' => 300],
//   ['payment_code' => '6X', 'payment_description' => '...', 'payment_minimum' => 600],
// ]

Verificando se o gateway está disponível no checkout

$gateways = WC()->payment_gateways()->get_available_payment_gateways();

if ( isset( $gateways['wc_ticket_installments'] ) ) {
    // método aparece pra esse cliente/carrinho
}

get_available_payment_gateways() já passa pelos filtros de visibilidade (subtotal mínimo, woocommerce_wc_ticket_installments_is_disabled, etc.).

Reportando por código de plano

Use os metadados pra cruzar com pedidos no banco:

$query = new WC_Order_Query([
    'limit'        => -1,
    'meta_key'     => '_ticket_installments_code',
    'meta_value'   => '12X',
    'return'       => 'ids',
]);

$order_ids = $query->get_orders();
HPOS

Em lojas com HPOS ativo, WC_Order_Query lê da tabela wc_orders_meta automaticamente — não precisa adaptar o código.

Constantes úteis

  • ID do gateway: wc_ticket_installments.
  • Versão do plugin: WC_Ticket_Installments::VERSION.
  • URL do admin: admin.php?page=wc-settings&tab=checkout&section=wc_ticket_installments.
  • Nome da option com a tabela de planos: wc_ticket_installments_available_options.
Foi útil?