métodos de pagamento

Executar ação após o pagamento ser confirmado no WooCommerce


Ai chega aquele requisito de executar uma ação apenas após a confirmação de pagamento do pedido (através do WooCommerce, é claro), como é que faz?

Há algum tempo atrás precisei fazer isso e achei aqui nas minhas anotações esses dias, então resolvi compartilhar!

O WooCommerce já tem uma action prontinha pra gente utilizar, e ela recebe o parâmetro da id do pedido que foi atualizado. Com isso, sempre que o seu gateway de pagamento enviar a info que o pagamento está ok esse gancho vai ser executado e você pode pendurar nele a ação que quiser.

No exemplo abaixo estou fazendo a atualização de algum campo do usuário, mas você pode fazer o que quiser.

function checkPayment( $order_id ) {
    $order = new WC_Order( $order_id );  
    /**
    * Faça o que você quiser aqui!
    * Exemplo atualizando dados do usuário após a confirmação do pagamento.
    */
    $user_id = $order->get_user_id();
    update_user_meta( $user_id, 'field_name', 'field_value' );    
}

add_action( 'woocommerce_payment_complete', 'checkPayment' );

Importante: essa action é executada se o método de pagamento executar woocommerce_payment_complete() ou $order->payment_complete(). A maioria faz isso, pois é um comportamento padrão/recomendado ao registrar métodos de pagamento. Mas vale a pena o lembrete.

Testa ai e me conta nos comentários!

Até a próxima!


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *