{"id":1486837,"date":"2026-09-07T15:06:19","date_gmt":"2026-09-07T14:06:19","guid":{"rendered":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/"},"modified":"2026-09-07T15:06:19","modified_gmt":"2026-09-07T14:06:19","slug":"mihnea-radulescu","status":"publish","type":"player","link":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/","title":{"rendered":"Mihnea Radulescu"},"content":{"rendered":"<div class=\"swp-player-page\" id=\"swp-player-page-1\" data-post-id=\"1486837\">\n    <section class=\"swp-player-page__hero\">\n    <div class=\"swp-player-page__hero-head\">\n                    <span class=\"swp-player-page__hero-badge\">\n                    <img decoding=\"async\" class=\"swp-player-page__badge\" src=\"https:\/\/sc-prod.onetwenty.media\/storage\/team-logos\/cs-universitatea-craiova.png\" alt=\"Universitatea Craiova\" loading=\"lazy\">\n            <\/span>\n                <div class=\"swp-player-page__hero-title\">\n                            <span class=\"swp-player-page__name\">Mihnea Radulescu<\/span>\n                        <div class=\"swp-player-page__hero-sub\">\n                    <a class=\"swp-player-page__team-name\" href=\"https:\/\/www.squawka.com\/en\/stats\/clubs\/universitatea-craiova\/\">Universitatea Craiova<\/a>\n                            <\/div>\n        <\/div>\n            <\/div>\n    <div class=\"swp-player-page__hero-body swp-player-page__hero-body--chart\">\n        <dl class=\"swp-player-page__facts\">\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Position<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">Midfielder<\/dd>\n                <\/div>\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Shirt<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">18<\/dd>\n                <\/div>\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Age<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">21<\/dd>\n                <\/div>\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Height<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">\u2013<\/dd>\n                <\/div>\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Foot<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">\u2013<\/dd>\n                <\/div>\n                            <div class=\"swp-player-page__fact\">\n                    <dt class=\"swp-player-page__fact-label\">Country<\/dt>\n                    <dd class=\"swp-player-page__fact-value\">Romania<\/dd>\n                <\/div>\n                    <\/dl>\n                                <div class=\"swp-player-page__transfers\">\n    <div class=\"swp-player-page__transfers-head\">\n        <h2 class=\"swp-player-page__transfers-title\">Transfer value: \u20ac400k<\/h2>\n        <span class=\"swp-player-page__transfers-peak\">Highest: \u20ac400k (17 Jun 2025)<\/span>\n    <\/div>\n    <div class=\"swp-player-page__chart\" aria-hidden=\"true\">\n        <div class=\"swp-player-page__chart-plot\">\n                            <span class=\"swp-player-page__chart-grid\" style=\"bottom: 0%\">\n                    <span class=\"swp-player-page__chart-amount\">\u20ac0<\/span>\n                <\/span>\n                            <span class=\"swp-player-page__chart-grid\" style=\"bottom: 25%\">\n                    <span class=\"swp-player-page__chart-amount\">\u20ac100k<\/span>\n                <\/span>\n                            <span class=\"swp-player-page__chart-grid\" style=\"bottom: 50%\">\n                    <span class=\"swp-player-page__chart-amount\">\u20ac200k<\/span>\n                <\/span>\n                            <span class=\"swp-player-page__chart-grid\" style=\"bottom: 75%\">\n                    <span class=\"swp-player-page__chart-amount\">\u20ac300k<\/span>\n                <\/span>\n                            <span class=\"swp-player-page__chart-grid\" style=\"bottom: 100%\">\n                    <span class=\"swp-player-page__chart-amount\">\u20ac400k<\/span>\n                <\/span>\n                        <svg class=\"swp-player-page__chart-svg\" viewBox=\"0 0 1000 1000\" preserveAspectRatio=\"none\" focusable=\"false\">\n                                    <path class=\"swp-player-page__chart-area swp-player-page__chart-area--2\" d=\"M0,1000 L425.67,1000 L425.67,1000 L0,1000 Z\"\/>\n                                    <path class=\"swp-player-page__chart-area swp-player-page__chart-area--3\" d=\"M425.67,1000 L508.2,1000 L508.2,1000 L425.67,1000 Z\"\/>\n                                    <path class=\"swp-player-page__chart-area swp-player-page__chart-area--2\" d=\"M508.2,1000 L713.97,1000 L713.97,1000 L508.2,1000 Z\"\/>\n                                    <path class=\"swp-player-page__chart-area swp-player-page__chart-area--1\" d=\"M713.97,1000 L713.97,1000 L713.97,0 L1000,0 L1000,1000 L713.97,1000 Z\"\/>\n                                                    <path class=\"swp-player-page__chart-line swp-player-page__chart-line--2\" d=\"M0,1000 L425.67,1000\"\/>\n                                    <path class=\"swp-player-page__chart-line swp-player-page__chart-line--3\" d=\"M425.67,1000 L508.2,1000\"\/>\n                                    <path class=\"swp-player-page__chart-line swp-player-page__chart-line--2\" d=\"M508.2,1000 L713.97,1000\"\/>\n                                    <path class=\"swp-player-page__chart-line swp-player-page__chart-line--1\" d=\"M713.97,1000 L713.97,1000 L713.97,0 L1000,0\"\/>\n                            <\/svg>\n                            <span class=\"swp-player-page__chart-club swp-player-page__chart-club--end\" style=\"right: 0%; bottom: 100%\">Universitatea Craiova<\/span>\n                            <span class=\"swp-player-page__chart-club swp-player-page__chart-club--centre\" style=\"left: 21.28%; bottom: 0%\">Petrolul 52<\/span>\n                            <span class=\"swp-player-page__chart-club swp-player-page__chart-club--centre swp-player-page__chart-club--wide-only\" style=\"left: 46.69%; bottom: 0%\">AS FC Buz\u0103u<\/span>\n                    <\/div>\n        <div class=\"swp-player-page__chart-years\">\n                            <span class=\"swp-player-page__chart-year\" style=\"left: 20.63%\">2023<\/span>\n                            <span class=\"swp-player-page__chart-year\" style=\"left: 41.27%\">2024<\/span>\n                            <span class=\"swp-player-page__chart-year\" style=\"left: 61.96%\">2025<\/span>\n                            <span class=\"swp-player-page__chart-year\" style=\"left: 82.59%\">2026<\/span>\n                    <\/div>\n    <\/div>\n    <ul class=\"swp-player-page__sr\">\n                    <li>17 Jun 2025: Petrolul 52 to Universitatea Craiova, \u20ac400k<\/li>\n            <\/ul>\n<\/div>\n            <\/div>\n<\/section>\n    <div class=\"swp-player-page__tabs\">\n    <nav class=\"swp-player-page__tabs-list\" role=\"tablist\" aria-label=\"Mihnea Radulescu\">\n                    <a class=\"swp-player-page__tab\" href=\"#next-match\" role=\"tab\" aria-controls=\"next-match\" data-pp-tab=\"next\">Next Match<\/a>\n                    <a class=\"swp-player-page__tab\" href=\"#upcoming-matches\" role=\"tab\" aria-controls=\"upcoming-matches\" data-pp-tab=\"upcoming\">Upcoming Matches<\/a>\n                    <a class=\"swp-player-page__tab\" href=\"#comparison-matrix\" role=\"tab\" aria-controls=\"comparison-matrix\" data-pp-tab=\"matrix\">Comparison Matrix<\/a>\n                    <a class=\"swp-player-page__tab\" href=\"#career-trophies\" role=\"tab\" aria-controls=\"career-trophies\" data-pp-tab=\"trophies\">Career Trophies<\/a>\n            <\/nav>\n<\/div>\n                <section class=\"swp-player-page__panel\" id=\"next-match\" role=\"tabpanel\" data-pp-panel=\"next\">\n    <h2 class=\"swp-player-page__title\">Next Match<\/h2>\n    <div class=\"swp-player-page__card swp-player-page__next\">\n                    <div class=\"swp-player-page__next-columns\">\n                                    <div class=\"swp-player-page__next-fixture\">\n                        <template data-pp-defer><div class=\"vcsw-sports-widgets shortcode vcsw-sports-fixtures\" id=\"sports_fixtures-1\"><script type=\"application\/json\">{\"sports_type\":\"football\",\"competition\":\"\",\"participant_id\":\"6683f87b86d4075d89201e77\",\"start_date\":\"\",\"widget_type\":\"fixtures\",\"groups\":\"\",\"stage\":\"\",\"limit\":1}<\/script><\/div><\/template>\n                    <\/div>\n                                            <\/div>\n                            <div class=\"swp-player-page__boosts\">\n                <h3 class=\"swp-player-page__subtitle\">Price Boosts<\/h3>\n                <template data-pp-defer><div class=\"vcsw-sports-widgets shortcode vcsw-price-boosts\" id=\"price_boosts-1\"><script type=\"application\/json\">{\"sports_type\":\"football\",\"widget_type\":\"price-boosts\",\"mode\":\"list\",\"bookmaker\":\"\",\"course\":\"\",\"date_from\":\"\",\"date_to\":\"\",\"date_time\":\"\",\"search\":\"\",\"entity_id\":\"6a94c51abd03e2b585381e3c\",\"boost_id\":\"\",\"outcome_id\":\"\",\"sort\":\"\",\"limit\":\"\",\"see_more_url\":\"\",\"see_more_text\":\"\",\"participant\":\"\",\"per_page\":\"\",\"offer_entity_id\":\"\",\"entity\":null,\"offer\":null}<\/script><\/div><\/template>\n            <\/div>\n                <div class=\"swp-player-page__terms\">18+ | T&amp;C&#039;s Apply | begambleaware.org<\/div>\n    <\/div>\n    <\/section>\n                <section class=\"swp-player-page__panel\" id=\"upcoming-matches\" role=\"tabpanel\" data-pp-panel=\"upcoming\">\n    <h2 class=\"swp-player-page__title\">Upcoming Matches<\/h2>\n    <template data-pp-defer><div class=\"vcsw-sports-widgets shortcode vcsw-sports-fixtures\" id=\"sports_fixtures-2\"><script type=\"application\/json\">{\"sports_type\":\"football\",\"competition\":\"\",\"participant_id\":\"6683f87b86d4075d89201e77\",\"start_date\":\"\",\"widget_type\":\"fixtures\",\"groups\":\"\",\"stage\":\"\",\"limit\":10}<\/script><\/div><\/template>\n    <noscript><p class=\"swp-player-page__note\">Turn on JavaScript to see the upcoming matches.<\/p><\/noscript>\n<\/section>\n                    <section class=\"swp-player-page__panel\" id=\"comparison-matrix\" role=\"tabpanel\" data-pp-panel=\"matrix\">\n    <h2 class=\"swp-player-page__title\">Comparison Matrix<\/h2>\n    <template data-pp-defer><div class=\"vcsw-sports-widgets shortcode vcsw-cmatrix vcsw-cmatrix--profile\" id=\"cmatrix-1\"><script type=\"application\/json\">{\"sports_type\":\"football\",\"widget_type\":\"comparison-matrix\",\"compare\":\"\",\"show_sponsor\":\"false\",\"layout\":\"profile\",\"cards\":[{\"cardId\":\"6863438e566e672f1b4eacb2\",\"_id\":\"6863438e566e672f1b4eacb2\",\"type\":\"members\",\"teamId\":\"6683f87b86d4075d89201e77\",\"seasonId\":null}],\"analytics\":true,\"can_generate_shortcode\":false}<\/script><\/div><\/template>\n    <noscript><p class=\"swp-player-page__note\">Turn on JavaScript to see the comparison matrix.<\/p><\/noscript>\n<\/section>\n                <section class=\"swp-player-page__panel\" id=\"career-trophies\" role=\"tabpanel\" data-pp-panel=\"trophies\">\n    <h2 class=\"swp-player-page__title\">Career Trophies<\/h2>\n                    <div class=\"swp-player-page__trophies\">\n            <div class=\"swp-player-page__trophies-head\">\n                    <img decoding=\"async\" class=\"swp-player-page__badge\" src=\"https:\/\/sc-prod.onetwenty.media\/storage\/team-logos\/cs-universitatea-craiova.png\" alt=\"Universitatea Craiova\" loading=\"lazy\">\n                <h3 class=\"swp-player-page__trophies-team\">    <a class=\"swp-player-page__team-name\" href=\"https:\/\/www.squawka.com\/en\/stats\/clubs\/universitatea-craiova\/\">Universitatea Craiova<\/a>\n<\/h3>\n                <span class=\"swp-player-page__trophies-meta\">Romania \u00b7 3 trophies<\/span>\n            <\/div>\n            <table class=\"swp-player-page__table swp-player-page__trophies-table\">\n                <thead>\n                    <tr>\n                        <th scope=\"col\">Won<\/th>\n                        <th scope=\"col\">Competition<\/th>\n                        <th scope=\"col\">Seasons<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                                            <tr>\n                            <td>1<\/td>\n                            <th scope=\"row\">Supercupa<\/th>\n                            <td>\n                                <span class=\"swp-player-page__seasons\">\n                                                                            <span class=\"swp-player-page__season\">26\/27<\/span>\n                                                                    <\/span>\n                            <\/td>\n                        <\/tr>\n                                            <tr>\n                            <td>1<\/td>\n                            <th scope=\"row\">Liga I<\/th>\n                            <td>\n                                <span class=\"swp-player-page__seasons\">\n                                                                            <span class=\"swp-player-page__season\">25\/26<\/span>\n                                                                    <\/span>\n                            <\/td>\n                        <\/tr>\n                                            <tr>\n                            <td>1<\/td>\n                            <th scope=\"row\">Cupa Rom\u00e2niei<\/th>\n                            <td>\n                                <span class=\"swp-player-page__seasons\">\n                                                                            <span class=\"swp-player-page__season\">25\/26<\/span>\n                                                                    <\/span>\n                            <\/td>\n                        <\/tr>\n                                    <\/tbody>\n            <\/table>\n        <\/div>\n                    <div class=\"swp-player-page__trophies\">\n            <div class=\"swp-player-page__trophies-head\">\n                    <span class=\"swp-player-page__badge swp-player-page__badge--initials\" aria-hidden=\"true\">PE<\/span>\n                <h3 class=\"swp-player-page__trophies-team\">    <span class=\"swp-player-page__team-name\">Petrolul 52<\/span>\n<\/h3>\n                <span class=\"swp-player-page__trophies-meta\">1 trophy<\/span>\n            <\/div>\n            <table class=\"swp-player-page__table swp-player-page__trophies-table\">\n                <thead>\n                    <tr>\n                        <th scope=\"col\">Won<\/th>\n                        <th scope=\"col\">Competition<\/th>\n                        <th scope=\"col\">Seasons<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                                            <tr>\n                            <td>1<\/td>\n                            <th scope=\"row\">Liga II<\/th>\n                            <td>\n                                <span class=\"swp-player-page__seasons\">\n                                                                            <span class=\"swp-player-page__season\">21\/22<\/span>\n                                                                    <\/span>\n                            <\/td>\n                        <\/tr>\n                                    <\/tbody>\n            <\/table>\n        <\/div>\n    <\/section>\n    <\/div>\n\n\n\n<div class=\"vcsw-sports-widgets shortcode vcsw-team-players\" id=\"team_players-1\"><script type=\"application\/json\">{\"sports_type\":\"football\",\"team\":\"6683f87b86d4075d89201e77\",\"season\":\"\",\"title\":\"Teammates\",\"exclude\":\"6863438e566e672f1b4eacb2\",\"widget_type\":\"team-players\"}<\/script><\/div>\n\n\n<div class=\"vcsw-sports-widgets block vcsw-player-prediction\" id=\"player-prediction-player-profile\"><script type=\"application\/json\">{\"block_id\":\"player-prediction-player-profile\",\"source\":\"next_match\",\"new_badge\":true,\"widget_type\":\"match-prediction\",\"layout\":\"player\",\"sports_type\":\"football\",\"player_post_id\":0,\"player_name\":\"\",\"season\":\"\",\"competition_id\":\"\",\"event_date\":\"\",\"event_id\":\"\",\"event_name\":\"\",\"event_datetime\":\"\",\"player_markets\":[\"anytime_goalscorer\",\"first_goalscorer\",\"anytime_assist\",\"to_be_carded\"],\"bookmakers\":[],\"title\":\"\",\"subtitle\":\"\",\"post_id\":1486837}<\/script><\/div>\n\n<div class=\"vcsw-sports-widgets block vcsw-match-prediction\" id=\"match-prediction-player-profile\"><script type=\"application\/json\">{\"block_id\":\"match-prediction-player-profile\",\"source\":\"next_match\",\"markets\":[\"match_result\",\"total_goals_2.5\"],\"collapsed\":true,\"new_badge\":true,\"widget_type\":\"match-prediction\",\"sports_type\":\"football\",\"season\":\"\",\"competition_id\":\"\",\"event_date\":\"\",\"event_id\":\"\",\"event_name\":\"\",\"event_datetime\":\"\",\"bookmakers\":[],\"players_limit\":5,\"title\":\"\",\"subtitle\":\"\",\"show_team_news\":true,\"post_id\":1486837,\"hide_focus_player\":true}<\/script><\/div>\n\n\n<script>\n\/* Stats table (club + player pages), synced pattern 1498205.\n   1. Open on the newest season that has data, but only if that season is still current.\n      Retired players and defunct clubs keep All Seasons.\n   2. Club pages: hide General-tab Penalties Taken (feed returns 0 for teams) and Minutes Played.\n      Cells get a class, not removed, so the widget's Total row keeps its column alignment.\n   3. Club pages: the feed's team \"Appearances\" counts every fixture, played or not. Replace it\n      with the number of finished matches per competition season (vcsw events endpoint, which also\n      covers cup and European knockout games) and relabel the column \"Games Played\".\n   4. Club pages: player slider shows only players with a league appearance this season, in\n      squad-number order (see reshapeSquad).\n   Programmatic dropdown clicks suppress the widget's focus() call, which otherwise jumps the page.\n   No double-ampersands: WordPress texturizes them and breaks the script. *\/\n(function () {\n  var HIDE_CLUB = ['general|Penalties Taken', 'general|Minutes Played'];\n  var isClub = location.pathname.indexOf('\/stats\/clubs\/') !== -1;\n  var teamId = null;\n  \/* The profile widget's JSON config sits later in the page than this script and is removed\n     once the widgets hydrate, so watch for it while the page parses. *\/\n  function readCfg(s) {\n    if (teamId) return;\n    if (s.tagName !== 'SCRIPT') return;\n    if (s.type !== 'application\/json') return;\n    var t = s.textContent;\n    if (t.indexOf('\"entity_type\":\"team\"') === -1) return;\n    if (t.indexOf('\"widget_type\":\"profile\"') === -1) return;\n    try { teamId = JSON.parse(t).entity_id || null; } catch (e) {}\n  }\n  document.querySelectorAll('script[type=\"application\/json\"]').forEach(readCfg);\n  var mo = null;\n  if (isClub) {\n    if (!teamId) {\n      mo = new MutationObserver(function (list) {\n        list.forEach(function (m) {\n          m.addedNodes.forEach(function (n) {\n            if (n.nodeType !== 1) return;\n            readCfg(n);\n            if (n.querySelectorAll) n.querySelectorAll('script[type=\"application\/json\"]').forEach(readCfg);\n          });\n        });\n        if (teamId) mo.disconnect();\n      });\n      mo.observe(document.documentElement, { childList: true, subtree: true });\n    }\n  }\n\n  function isCurrent(v) {\n    var start = parseInt(v, 10);\n    if (isNaN(start)) return false;\n    var end = v.indexOf('-') > 0 ? start + 1 : start;\n    return end >= new Date().getFullYear();\n  }\n  function quietClick(f, opt) {\n    var btn = f.querySelector('.swp-custom-select__toggle');\n    if (btn) btn.focus = function () {};\n    opt.click();\n    if (btn) delete btn.focus;\n  }\n  function hideCols(f, list) {\n    var row = f.querySelector('tbody tr');\n    if (!row) return;\n    var tds = row.querySelectorAll('td');\n    var ths = f.querySelectorAll('thead th');\n    list.forEach(function (key) {\n      var parts = key.split('|');\n      var sel = '[data-entity=\"' + parts[0] + '\"][data-title=\"' + parts[1] + '\"]';\n      f.querySelectorAll('td' + sel).forEach(function (c) { c.classList.add('sq-hide-col'); });\n      for (var i = 0; i < tds.length; i++) {\n        if (tds[i].matches(sel)) { if (ths[i]) ths[i].classList.add('sq-hide-col'); }\n      }\n    });\n  }\n  function relabel(f, from, to) {\n    f.querySelectorAll('thead th span').forEach(function (s) {\n      if (s.textContent.trim() === from) s.textContent = to;\n    });\n  }\n  function pickSeason(f) {\n    var opts = f.querySelectorAll('.swp-custom-select__option');\n    for (var i = 0; i < opts.length; i++) {\n      var v = opts[i].dataset.value;\n      if (!v) continue;\n      if (!f.querySelector('tbody span[data-season=\"' + v + '\"]')) continue;\n      if (isCurrent(v)) quietClick(f, opts[i]);\n      break;\n    }\n  }\n  function getNonce() {\n    if (window.menuWidgetData) { if (window.menuWidgetData.nonce) return window.menuWidgetData.nonce; }\n    var found = null;\n    document.querySelectorAll('script').forEach(function (s) {\n      if (found) return;\n      var m = s.textContent.match(\/\"rest_url\":\"[^\"]*vcsw[^\"]*\"[^}]*\"nonce\":\"(\\w+)\"\/);\n      if (m) found = m[1];\n    });\n    return found;\n  }\n  function seasonKey(s) {\n    var m = String(s || '').match(\/^(\\d{4})\\\/(\\d{4})$\/);\n    return m ? m[1] + '-' + m[2].slice(2) : String(s || '');\n  }\n  function seasonStart(v) {\n    var y = parseInt(v, 10);\n    if (isNaN(y)) return null;\n    return v.indexOf('-') > 0 ? new Date(Date.UTC(y, 6, 1)) : new Date(Date.UTC(y, 0, 1));\n  }\n  \/* One fixtures lookup per page, shared by the Games Played fix and the player slider. *\/\n  var eventsCache = {};\n  function loadEvents(id) {\n    if (eventsCache[id]) return eventsCache[id];\n    var nonce = getNonce();\n    \/* Window covers the running season(s) only: calendar-year seasons from January, split seasons\n       from July. A season that starts before the window is never touched, so a partial count can't\n       overwrite a finished season. *\/\n    var now = new Date();\n    var y = now.getUTCFullYear();\n    var from = now.getUTCMonth() >= 6 ? new Date(Date.UTC(y, 0, 1)) : new Date(Date.UTC(y - 1, 6, 1));\n    var body = JSON.stringify({ sports_type: 'football', limit: 1000, skip_wp_data: true, sort: ['datetime'],\n      filters: { 'participants.participant_id': id, datetime: { $gte: from.toISOString() } } });\n    eventsCache[id] = new Promise(function (resolve) {\n      if (!nonce) { resolve(null); return; }\n      function attempt(left) {\n        fetch('\/en\/wp-json\/vcsw\/v2\/events', {\n          method: 'POST', headers: { 'Content-Type': 'application\/json', 'X-WP-Nonce': nonce }, body: body\n        }).then(function (r) { return r.ok ? r.json() : null; }).then(function (d) {\n          var good = d ? (d.http_status === 200 ? (d.items ? d.items.length > 0 : false) : false) : false;\n          if (good) { resolve({ items: d.items, from: from }); return; }\n          if (left > 0) setTimeout(function () { attempt(left - 1); }, 1500); else resolve(null);\n        }).catch(function () { if (left > 0) setTimeout(function () { attempt(left - 1); }, 1500); else resolve(null); });\n      }\n      attempt(2);\n    });\n    return eventsCache[id];\n  }\n  function fixGames(f) {\n    if (!teamId) return;\n    loadEvents(teamId).then(function (ev) { if (ev) apply(f, ev.items, ev.from); });\n  }\n  function apply(f, items, from) {\n    var played = {};\n    items.forEach(function (e) {\n      if (e.status !== 'finished') return;\n      var cs = e.competition_season || {};\n      var k = String(cs.competition || '').toLowerCase() + '|' + seasonKey(cs.season);\n      played[k] = (played[k] || 0) + 1;\n    });\n    var changed = false;\n    f.querySelectorAll('tbody tr').forEach(function (tr) {\n      var comp = tr.querySelector('td').textContent.trim().toLowerCase();\n      var cell = tr.querySelector('td[data-entity=\"general\"][data-title=\"Appearances\"]');\n      if (!cell) return;\n      var all = cell.querySelector('span[data-season=\"\"]');\n      cell.querySelectorAll('span[data-season]').forEach(function (sp) {\n        var season = sp.dataset.season;\n        if (!season) return;\n        var st = seasonStart(season);\n        if (!st) return;\n        if (st < from) return;\n        var n = played[comp + '|' + season];\n        if (n === undefined) return;\n        var old = parseFloat(sp.textContent) || 0;\n        if (old === n) return;\n        sp.textContent = n;\n        if (all) all.textContent = (parseFloat(all.textContent) || 0) - old + n;\n        changed = true;\n      });\n    });\n    if (changed) {\n      var sel = f.querySelector('.swp-custom-select__option.is-selected');\n      if (sel) quietClick(f, sel);\n    }\n  }\n  \/* Club pages: the player slider (vcsw team-players widget) lists the whole squad by position.\n     Rewrite its API response before the widget renders it: drop players with no league start or\n     sub appearance this season, then order by squad number (no number last). The league is the\n     competition with the most fixtures this season. If the appearance data fails or takes over\n     8s, the list is still put in number order, just unfiltered. Each club's league id is cached\n     in localStorage per season, so repeat visits skip the slow league lookup. *\/\n  function leagueId(items) {\n    var n = {};\n    var best = null;\n    items.forEach(function (e) {\n      var cs = e.competition_season || {};\n      if (!cs._id) return;\n      n[cs._id] = (n[cs._id] || 0) + 1;\n      if (!best) best = cs._id;\n      if (n[cs._id] > n[best]) best = cs._id;\n    });\n    return best;\n  }\n  function memberStat(compId, stat) {\n    return fetch('\/en\/wp-json\/vcsw\/v2\/statistics', {\n      method: 'POST', headers: { 'Content-Type': 'application\/json', 'X-WP-Nonce': getNonce() },\n      body: JSON.stringify({ sports_type: 'football', competition_id: compId, entity_type: 'members', top_count: 1000, stats: [stat] })\n    }).then(function (r) { return r.ok ? r.json() : null; });\n  }\n  \/* Season label for cache keys: '2026-27' from July, the previous split season before July. *\/\n  function seasonTag() {\n    var d = new Date();\n    var y = d.getUTCFullYear();\n    if (d.getUTCMonth() < 6) y = y - 1;\n    return y + '-' + String(y + 1).slice(2);\n  }\n  \/* The upstream API is slow and intermittent, so ask two endpoints for the club's league at once\n     and take whichever answers first: the team profile's current competition, or the competition\n     with the most fixtures in the events feed. *\/\n  function leagueFor(id) {\n    var key = 'sqLeague:' + id + ':' + seasonTag();\n    var cached = null;\n    try { cached = localStorage.getItem(key); } catch (e) {}\n    if (cached) return Promise.resolve(cached);\n    return new Promise(function (resolve) {\n      var pending = 2;\n      var settled = false;\n      function offer(v) {\n        if (settled) return;\n        if (v) { settled = true; try { localStorage.setItem(key, v); } catch (e) {} resolve(v); return; }\n        pending--;\n        if (pending === 0) resolve(null);\n      }\n      fetch('\/en\/wp-json\/vcsw\/v2\/profile', {\n        method: 'POST', headers: { 'Content-Type': 'application\/json', 'X-WP-Nonce': getNonce() },\n        body: JSON.stringify({ sports_type: 'football', entity_type: 'team', entity_id: id })\n      }).then(function (r) { return r.ok ? r.json() : null; }).then(function (d) {\n        var it = d ? (d.items ? d.items[0] : null) : null;\n        var cur = it ? it.current : null;\n        offer(cur ? (cur.competition ? cur.competition._id : null) : null);\n      }).catch(function () { offer(null); });\n      loadEvents(id).then(function (ev) { offer(ev ? leagueId(ev.items) : null); }, function () { offer(null); });\n    });\n  }\n  var appsCache = {};\n  function appearances(id) {\n    if (appsCache[id]) return appsCache[id];\n    appsCache[id] = leagueFor(id).then(function (comp) {\n      if (!comp) return null;\n      return Promise.all([memberStat(comp, 'Starts'), memberStat(comp, 'Subbed on')]).then(function (res) {\n        var apps = {};\n        var seen = 0;\n        res.forEach(function (d) {\n          if (!d) return;\n          if (!d.items) return;\n          d.items.forEach(function (it) {\n            if (it.participant !== id) return;\n            var v = 0;\n            (it.statistic_groups || []).forEach(function (g) {\n              (g.statistics || []).forEach(function (st) { v += parseFloat(st.value) || 0; });\n            });\n            apps[it.member] = (apps[it.member] || 0) + v;\n            seen++;\n          });\n        });\n        return seen ? apps : null;\n      });\n    });\n    return appsCache[id];\n  }\n  function byNumber(a, b) {\n    var x = a.shirt_number;\n    var y = b.shirt_number;\n    if (x == null) { if (y != null) return 1; }\n    if (y == null) { if (x != null) return -1; }\n    if (x != null) { if (y != null) { if (x !== y) return x - y; } }\n    return String(a.name || '').localeCompare(String(b.name || ''));\n  }\n  function sortOnly(text) {\n    try {\n      var data = JSON.parse(text);\n      var team = data.items[0];\n      team.players = team.players.slice().sort(byNumber);\n      return JSON.stringify(data);\n    } catch (e) { return null; }\n  }\n  function reshapeSquad(text, id) {\n    var data;\n    try { data = JSON.parse(text); } catch (e) { return Promise.resolve(null); }\n    var team = data ? (data.items ? data.items[0] : null) : null;\n    if (!team) return Promise.resolve(null);\n    if (!team.players) return Promise.resolve(null);\n    return appearances(id).catch(function () { return null; }).then(function (apps) {\n      var list = team.players.slice();\n      if (apps) {\n        var kept = list.filter(function (p) { return (apps[p._id] || 0) > 0; });\n        if (kept.length) list = kept;\n      }\n      list.sort(byNumber);\n      team.players = list;\n      team.count = list.length;\n      return JSON.stringify(data);\n    });\n  }\n  if (isClub) {\n    var xOpen = XMLHttpRequest.prototype.open;\n    var xSend = XMLHttpRequest.prototype.send;\n    XMLHttpRequest.prototype.open = function (method, url) {\n      this.sqUrl = String(url || '');\n      return xOpen.apply(this, arguments);\n    };\n    XMLHttpRequest.prototype.send = function (body) {\n      var xhr = this;\n      if (String(xhr.sqUrl || '').indexOf('team-players') !== -1) {\n        var id = null;\n        try { id = JSON.parse(body).team_id; } catch (e) {}\n        var orig = xhr.onloadend;\n        if (id) {\n          if (orig) {\n            xhr.onloadend = function () {\n              var self = this;\n              var args = arguments;\n              var done = false;\n              function finish(txt) {\n                if (done) return;\n                done = true;\n                if (txt) { try { Object.defineProperty(xhr, 'responseText', { value: txt, configurable: true }); } catch (e) {} }\n                orig.apply(self, args);\n              }\n              if (xhr.status !== 200) { finish(null); return; }\n              setTimeout(function () { finish(sortOnly(xhr.responseText)); }, 8000);\n              reshapeSquad(xhr.responseText, id).then(finish, function () { finish(null); });\n            };\n          }\n        }\n      }\n      return xSend.apply(this, arguments);\n    };\n  }\n\n  function run() {\n    if (mo) mo.disconnect();\n    if (!document.getElementById('sq-hide-col-css')) {\n      var st = document.createElement('style');\n      st.id = 'sq-hide-col-css';\n      st.textContent = '.swp-profile-stats .sq-hide-col{display:none !important}';\n      document.head.appendChild(st);\n    }\n    document.querySelectorAll('.swp-profile-stats').forEach(function (f) {\n      if (f.dataset.sqSeason) return;\n      f.dataset.sqSeason = '1';\n      if (isClub) { hideCols(f, HIDE_CLUB); relabel(f, 'Appearances', 'Games played'); }\n      pickSeason(f);\n      if (isClub) fixGames(f);\n    });\n    \/* Warm the slider's appearance data now, so it is ready when the widget asks for its squad. *\/\n    if (isClub) { if (teamId) appearances(teamId).catch(function () {}); }\n  }\n  function later() { setTimeout(run, 0); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', later);\n  else later();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":370,"featured_media":0,"template":"","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"season":[27636],"sports-type":[27407],"country":[27614],"event-competition":[],"class_list":["post-1486837","player","type-player","status-publish","hentry"],"acf":{"external_featured_image_url":"","hide_featured_image_pattern":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Mihnea Radulescu Career Stats: Goals, Assists, Cards, Tackles + More<\/title>\n<meta name=\"description\" content=\"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mihnea Radulescu\" \/>\n<meta property=\"og:description\" content=\"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/\" \/>\n<meta property=\"og:site_name\" content=\"Squawka | EN\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SquawkaFootballNews\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@squawka\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/mihnea-radulescu\\\/\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/mihnea-radulescu\\\/\",\"name\":\"Mihnea Radulescu Career Stats: Goals, Assists, Cards, Tackles + More\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/#website\"},\"datePublished\":\"2026-09-07T14:06:19+00:00\",\"description\":\"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/mihnea-radulescu\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/mihnea-radulescu\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/mihnea-radulescu\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Squawka\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Players\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/stats\\\/players\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Mihnea Radulescu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/\",\"name\":\"Squawka | EN\",\"description\":\"Football News, Stats, and More...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.squawka.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mihnea Radulescu Career Stats: Goals, Assists, Cards, Tackles + More","description":"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/","og_locale":"en_GB","og_type":"article","og_title":"Mihnea Radulescu","og_description":"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.","og_url":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/","og_site_name":"Squawka | EN","article_publisher":"https:\/\/www.facebook.com\/SquawkaFootballNews\/","twitter_card":"summary_large_image","twitter_site":"@squawka","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/","url":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/","name":"Mihnea Radulescu Career Stats: Goals, Assists, Cards, Tackles + More","isPartOf":{"@id":"https:\/\/www.squawka.com\/en\/#website"},"datePublished":"2026-09-07T14:06:19+00:00","description":"Explore Mihnea Radulescu\u2019s career, with complete stats covering goals, assists, defensive work, and discipline records.","breadcrumb":{"@id":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.squawka.com\/en\/stats\/players\/mihnea-radulescu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Squawka","item":"https:\/\/www.squawka.com\/en\/"},{"@type":"ListItem","position":2,"name":"Players","item":"https:\/\/www.squawka.com\/en\/stats\/players\/"},{"@type":"ListItem","position":3,"name":"Mihnea Radulescu"}]},{"@type":"WebSite","@id":"https:\/\/www.squawka.com\/en\/#website","url":"https:\/\/www.squawka.com\/en\/","name":"Squawka | EN","description":"Football News, Stats, and More...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.squawka.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"}]}},"core_id":"6863438e566e672f1b4eacb2","yoast_title":"","yoast_description":"","yoast_keyword":"","_links":{"self":[{"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/player\/1486837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/player"}],"about":[{"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/types\/player"}],"author":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/users\/370"}],"version-history":[{"count":0,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/player\/1486837\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/media?parent=1486837"}],"wp:term":[{"taxonomy":"season","embeddable":true,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/season?post=1486837"},{"taxonomy":"sports-type","embeddable":true,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/sports-type?post=1486837"},{"taxonomy":"country","embeddable":true,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/country?post=1486837"},{"taxonomy":"event-competition","embeddable":true,"href":"https:\/\/www.squawka.com\/en\/wp-json\/wp\/v2\/event-competition?post=1486837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}