ikarocalixto
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)