WooCommerce: Concluir pedidos pagos automaticamente (dependendo dos métodos de pagamento)

Normalmente, o wooCommerce deve preencher automaticamente os pedidos de produtos virtuais. Mas isso não acontece e este é um problema real, mesmo um erro.

Portanto, neste ponto, você pode encontrar algumas coisas úteis (mas não muito convenientes):

1) Um código de trecho (que você pode encontrar nos documentos do wooCommerce):

/**
 * Auto Complete all WooCommerce orders.
 */
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}

Mas esse trecho não funciona paraBACS *, Pagar na entrega eVerifica Métodos de Pagamento. Não há problema nos métodos de pagamento por gateways Paypal e cartão de crédito.

* BACSé um método de pagamento por transferência bancária direta

E ...

2) Um plugin: Pedidos de preenchimento automático do WooCommerce

Este plug-in funciona para todos os métodos de pagamento,mas não para de outrosMétodos de pagamento de gateways de cartão de crédito.

Minha pergunta:

Usando (como base) o snippet wooCommerce no ponto 1:

Como posso implementar código condicional com base nos métodos de pagamento do woocommerce?

Quero dizer algo como: se os métodos de pagamento não forem "BACS", "Pagamento na entrega" e "Cheque", aplique o código do snippet (status de atualização para "concluído" para pedidos pagos de produtos virtuais).

Como não sou um mega codificador especialista em wooCommerce, ainda não descobri como direcionar métodos de pagamento em pedidos de woocommerce.

Alguma ajuda será muito boa.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion