woocommerce-pagarme icon indicating copy to clipboard operation
woocommerce-pagarme copied to clipboard

Produto Virtual no Cartão de Crédito - Status Processando

Open mbgaletti opened this issue 5 years ago • 0 comments

Olá Cláudio, estou a algum tempo procurando uma solução mas estou quase desistindo, mesmo tendo selecionado o produto como Virtual (até baixavel já tentei) depois de aprovado no pagar.me o status no wordpress continua como Processando. Já instalei os plugins autocomplete orders entre outros que tem por ai, já tentei colocar um código dentro de functions.php do woocommerce e também no fuctions.php do meu tema e nada do status mudar de processando para concluído.

Meu produto de venda são planos on-line, ou seja, uma vez aprovado pela instituição do cartão de crédito o usuário já pode usufruir do seu plano.

O Código que estou colocando em functions é: function virtual_order_payment_complete_order_status( $order_status, $order_id ) {

$order = wc_get_order( $order_id );

if ( 'processing' == $order_status && ( 'on-hold' == $order->status || 'pending' == $order->status || 'failed' == $order->status ) ) {

$virtual_order = null;

if ( count( $order->get_items() ) > 0 ) {

  foreach( $order->get_items() as $item ) {

    if ( 'line_item' == $item['type'] ) {

      $_product = $order->get_product_from_item( $item );

      if ( ! $_product->is_virtual() ) {
        // once we've found one non-virtual product we know we're done, break out of the loop
        $virtual_order = false;
        break;
      } else {
        $virtual_order = true;
      }
    }
  }
}

// virtual order, mark as completed
if ( $virtual_order ) {
  return 'completed';
}

}

// non-virtual order, return original status return $order_status; } add_filter( 'woocommerce_payment_complete_order_status', 'virtual_order_payment_complete_order_status', 10, 2 );

Pensei também colocar em schedule isso, mas ainda não tentei.

Tem alguma luz? Obrigado por fornecer seu plugin a comunidade.

mbgaletti avatar Aug 27 '19 15:08 mbgaletti