Forum Replies Created

Viewing 1 replies (of 1 total)
  • Se vocês est?o com problema no pix, para o cliente de vocês ter ciência que foi aprovado o pedido use o codigo que desenvolvi, após a confirma??o do pagamento em 5 segundo ele atualiza via ajax e mostra um modal falando que o pagamento foi confirmado! fa?a o teste.

    function verificar_status_pagamento() {
    if (!isset($_POST['order_id'])) {
    error_log("ERRO: Nenhum ID de pedido recebido no AJAX.");
    wp_send_json_error(['message' => 'Pedido n?o encontrado.']);
    }

    $order_id = intval($_POST['order_id']);
    error_log("Pedido recebido via AJAX: " . $order_id);

    // Obtém o status do pedido no WooCommerce
    $order = wc_get_order($order_id);

    if (!$order) {
    error_log("ERRO: Pedido inválido. ID: " . $order_id);
    wp_send_json_error(['message' => 'Pedido inválido.']);
    }

    $status = $order->get_status(); // Exemplo: "on-hold", "processing", "completed"
    error_log("Status do pedido {$order_id}: " . $status);

    wp_send_json_success(['status' => $status]);

    }

    function inserir_script_verificacao_pix_inline() {
    if (is_order_received_page()) { // Apenas na página de confirma??o do pedido
    ?>

    <!-- Overlay e Popup -->
    <div id="overlay"></div>
    <div id="popupPagamento">
    <h2> Pagamento Aprovado!</h2>
    <p>Obrigado pela sua compra.</p>
    <button onclick="fecharPopup()">Fechar</button>
    </div>

    <script type="text/javascript">
    console.log(" SCRIPT INLINE CARREGADO!");

    jQuery(document).ready(function ($) {
    console.log(" jQuery carregado e funcionando!");

    let orderId = $(".woocommerce-order-overview__order strong").text().trim();

    if (!orderId) {
    console.warn(" ID do pedido n?o encontrado no HTML. Tentando via URL...");
    let urlParams = new URLSearchParams(window.location.search);
    orderId = urlParams.get("order-received");
    }

    if (!orderId) {
    console.error(" ERRO FATAL: ID do pedido N?O encontrado! O script n?o pode continuar.");
    return;
    }

    console.log(" ID do Pedido capturado:", orderId);

    function verificarPagamento() {
    console.log(" Verificando pagamento para o pedido:", orderId);

    $.ajax({
    url: "<?php echo admin_url('admin-ajax.php'); ?>",
    type: "POST",
    data: {
    action: "verificar_status_pagamento",
    order_id: orderId
    },
    success: function (response) {
    console.log(" Resposta do AJAX recebida:", response);

    if (response.success) {
    let status = response.data.status;
    console.log(" Status atual do pedido:", status);

    if (status === "processing" || status === "completed") {
    console.log(" Pagamento aprovado! Exibindo popup...");

    // Exibir o popup e overlay
    $("#overlay").fadeIn();
    $("#popupPagamento").fadeIn();

    // Esconder QR Code e termos
    $(".mp-checkout-pix-container").hide();
    $(".mp-checkout-pix-terms-and-conditions").hide();

    clearInterval(intervalo);
    } else {
    console.log(" Pagamento ainda n?o confirmado, tentando novamente...");
    }
    } else {
    console.warn(" Erro no AJAX:", response);
    }
    },
    error: function (xhr, status, error) {
    console.error(" ERRO na requisi??o AJAX:", error);
    }
    });
    }

    let intervalo = setInterval(verificarPagamento, 5000);
    console.log(" Iniciando verifica??o automática do pagamento...");
    });

    // Fun??o para fechar o popup
    function fecharPopup() {
    document.getElementById("popupPagamento").style.display = "none";
    document.getElementById("overlay").style.display = "none";
    }
    </script>
    <?php
    }

    }
    add_action('wp_footer', 'inserir_script_verificacao_pix_inline', 100);

    Coloque em um plugin ou crie um plugin e coloque isso mercado pago, estou à disposi??o estou a procura de job em rsrs

    email: [email protected]
Viewing 1 replies (of 1 total)