Skip to content

Instantly share code, notes, and snippets.

@pagelab
Created October 6, 2024 23:40
Show Gist options
  • Save pagelab/9506e74b5ca64bc042811968fd8aa160 to your computer and use it in GitHub Desktop.
Save pagelab/9506e74b5ca64bc042811968fd8aa160 to your computer and use it in GitHub Desktop.
Plugin que realiza apenas uma função: conclui automaticamente pedidos de produtos virtuais quando o pagamento é confirmado.
<?php
/**
* Plugin Name: Auto Complete Virtual Orders
* Description: Conclui automaticamente pedidos de produtos virtuais quando o pagamento é confirmado.
* Version: 1.1
* Author: Seu Nome
* License: GPL2
*/
// Evita o acesso direto ao arquivo
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly
}
// Função que conclui automaticamente pedidos virtuais
function auto_complete_virtual_orders($order_id) {
if (!$order_id) {
return;
}
// Obtém o objeto do pedido
$order = wc_get_order($order_id);
// Verifica se o pedido é válido e se o usuário tem permissão
if (!$order || !current_user_can('edit_shop_orders')) {
return;
}
// Verifica se o pedido contém produtos virtuais e se já está concluído
$contains_virtual = false;
$payment_completed = $order->is_paid();
foreach ($order->get_items() as $item) {
$product = $item->get_product();
if ($product && $product->is_virtual()) {
$contains_virtual = true;
break;
}
}
// Se o pedido contém produtos virtuais e o pagamento está concluído, conclui automaticamente
if ($contains_virtual && $payment_completed && $order->get_status() !== 'completed') {
$order->update_status('completed');
}
}
// Adiciona a ação para mudar o status do pedido
add_action('woocommerce_order_status_changed', 'auto_complete_virtual_orders', 10, 3);
@pagelab
Copy link
Author

pagelab commented Oct 6, 2024

Clique no botão Download zip acima depois instale e ative em Plugins → Adicionar plugin no painel administrativo do seu WordPress.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment