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); }