add_action('rest_api_init', function () {
register_rest_route('pixup/v1', '/retorno', [
'methods' => 'POST',
'callback' => 'pixup_processar_callback',
'permission_callback' => '__return_true'
]);
});
function pixup_processar_callback($request) {
$data = $request->get_json_params();
if (!isset($data['descricao'])) {
return new WP_REST_Response(['erro' => 'Sem descrição'], 400);
}
// Extrai ID do pedido da descrição
$descricao = $data['descricao'];
preg_match('/#(\d+)/', $descricao, $matches);
if (!isset($matches[1])) {
return new WP_REST_Response(['erro' => 'Pedido não encontrado'], 400);
}
$order_id = intval($matches[1]);
$order = wc_get_order($order_id);
if ($order && $order->get_status() != 'completed') {
$order->payment_complete();
$order->add_order_note('Pagamento confirmado automaticamente via PixUP.');
}
return new WP_REST_Response(['success' => true], 200);
}