{"id":87,"date":"2026-06-15T21:23:59","date_gmt":"2026-06-15T21:23:59","guid":{"rendered":"https:\/\/chaseemobile.xyz\/?page_id=87"},"modified":"2026-06-15T22:25:14","modified_gmt":"2026-06-15T22:25:14","slug":"dashboard","status":"publish","type":"page","link":"https:\/\/chaseemobile.xyz\/?page_id=87","title":{"rendered":"Dashboard"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"87\" class=\"elementor elementor-87\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76343f0 e-flex e-con-boxed e-con e-parent\" data-id=\"76343f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d77180 elementor-widget elementor-widget-html\" data-id=\"2d77180\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"background: #0d0620; padding: 20px; border-radius: 15px; font-family: Inter; color: white;\">\r\n  \r\n  <!-- Balance Cards -->\r\n  <div style=\"display: flex; gap: 15px; margin-bottom: 20px; flex-wrap: wrap;\">\r\n    <div style=\"background: #6b21a8; padding: 20px; border-radius: 12px; flex: 1; min-width: 150px;\">\r\n      <p style=\"margin:0; font-size:12px; opacity:0.8;\">Virtual Balance<\/p>\r\n      <h2 id=\"user-balance\" style=\"margin:5px 0; font-size:28px;\">Loading...<\/h2>\r\n    <\/div>\r\n    <div style=\"background: #1a0a2e; padding: 20px; border-radius: 12px; flex: 1; min-width: 150px; border: 1px solid #6b21a8;\">\r\n      <p style=\"margin:0; font-size:12px; opacity:0.8;\">Portfolio Value<\/p>\r\n      <h2 style=\"margin:5px 0; font-size:28px;\">$0.00<\/h2>\r\n    <\/div>\r\n    <div style=\"background: #1a0a2e; padding: 20px; border-radius: 12px; flex: 1; min-width: 150px; border: 1px solid #6b21a8;\">\r\n      <p style=\"margin:0; font-size:12px; opacity:0.8;\">Total Profit\/Loss<\/p>\r\n      <h2 style=\"margin:5px 0; font-size:28px; color:#00C896;\">+$0.00<\/h2>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Chart -->\r\n  <div style=\"background: #1a0a2e; border-radius: 12px; padding: 15px; margin-bottom: 20px; border: 1px solid #6b21a8;\">\r\n    <div id=\"tv_chart\"><\/div>\r\n    <script src=\"https:\/\/s3.tradingview.com\/tv.js\"><\/script>\r\n    <script>\r\n    new TradingView.MediumWidget({\r\n      \"symbols\": [[\"Bitcoin\",\"BTCUSDT|1D\"],[\"Ethereum\",\"ETHUSDT|1D\"],[\"Solana\",\"SOLUSDT|1D\"],[\"Tesla\",\"TSLA|1D\"],[\"NVIDIA\",\"NVDA|1D\"]],\r\n      \"width\": \"100%\",\r\n      \"height\": 400,\r\n      \"colorTheme\": \"dark\",\r\n      \"container_id\": \"tv_chart\"\r\n    });\r\n    <\/script>\r\n  <\/div>\r\n\r\n  <!-- Buy\/Sell -->\r\n  <div style=\"background: #1a0a2e; border-radius: 12px; padding: 20px; margin-bottom: 20px; border: 1px solid #6b21a8;\">\r\n    <h3 style=\"margin:0 0 15px;\">Place Trade<\/h3>\r\n    <div id=\"trade-message\" style=\"display:none; padding:10px; border-radius:8px; margin-bottom:10px;\"><\/div>\r\n    <div style=\"display:flex; gap:10px; flex-wrap:wrap;\">\r\n      <input id=\"trade-coin\" type=\"text\" placeholder=\"Coin (e.g. BTC)\" style=\"flex:1; padding:12px; border-radius:8px; border:1px solid #6b21a8; background:#0d0620; color:white; min-width:100px;\">\r\n      <input id=\"trade-amount\" type=\"number\" placeholder=\"Amount of coins\" style=\"flex:1; padding:12px; border-radius:8px; border:1px solid #6b21a8; background:#0d0620; color:white; min-width:100px;\">\r\n      <input id=\"trade-price\" type=\"number\" placeholder=\"Price per coin ($)\" style=\"flex:1; padding:12px; border-radius:8px; border:1px solid #6b21a8; background:#0d0620; color:white; min-width:100px;\">\r\n      <button onclick=\"placeTrade('buy')\" style=\"padding:12px 25px; background:#00C896; border:none; border-radius:8px; color:white; font-weight:700; cursor:pointer;\">BUY<\/button>\r\n      <button onclick=\"placeTrade('sell')\" style=\"padding:12px 25px; background:#ef4444; border:none; border-radius:8px; color:white; font-weight:700; cursor:pointer;\">SELL<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Trade History -->\r\n  <div style=\"background: #1a0a2e; border-radius: 12px; padding: 20px; border: 1px solid #6b21a8;\">\r\n    <h3 style=\"margin:0 0 15px;\">Trade History<\/h3>\r\n    <table style=\"width:100%; border-collapse:collapse;\">\r\n      <tr style=\"border-bottom:1px solid #6b21a8;\">\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Coin<\/th>\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Type<\/th>\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Amount<\/th>\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Price<\/th>\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Total<\/th>\r\n        <th style=\"padding:10px; text-align:left; opacity:0.7;\">Date<\/th>\r\n      <\/tr>\r\n      <tbody id=\"trade-history\">\r\n        <tr><td colspan=\"6\" style=\"padding:20px; text-align:center; opacity:0.5;\">Loading...<\/td><\/tr>\r\n      <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\nfunction loadBalance() {\r\n    fetch(ajaxurl + '?action=get_user_balance')\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        if (data.success) {\r\n            document.getElementById('user-balance').innerHTML = '$' + parseFloat(data.data.balance).toLocaleString();\r\n        }\r\n    });\r\n    \r\n    fetch(ajaxurl + '?action=get_trade_history')\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        if (data.success) {\r\n            loadTradeHistory(data.data);\r\n        }\r\n    });\r\n}\r\n\r\nfunction loadTradeHistory(trades) {\r\n    var tbody = document.getElementById('trade-history');\r\n    if (trades.length === 0) {\r\n        tbody.innerHTML = '<tr><td colspan=\"6\" style=\"padding:20px; text-align:center; opacity:0.5;\">No trades yet<\/td><\/tr>';\r\n        return;\r\n    }\r\n    tbody.innerHTML = trades.map(t => `\r\n        <tr style=\"border-bottom:1px solid #2d1054;\">\r\n            <td style=\"padding:10px;\">${t.coin}<\/td>\r\n            <td style=\"padding:10px; color:${t.type=='buy'?'#00C896':'#ef4444'}\">${t.type.toUpperCase()}<\/td>\r\n            <td style=\"padding:10px;\">${t.amount}<\/td>\r\n            <td style=\"padding:10px;\">$${parseFloat(t.price).toLocaleString()}<\/td>\r\n            <td style=\"padding:10px;\">$${parseFloat(t.total).toLocaleString()}<\/td>\r\n            <td style=\"padding:10px;\">${new Date(t.created_at).toLocaleDateString()}<\/td>\r\n        <\/tr>\r\n    `).join('');\r\n}\r\n\r\nfunction placeTrade(type) {\r\n    var coin = document.getElementById('trade-coin').value;\r\n    var amount = document.getElementById('trade-amount').value;\r\n    var price = document.getElementById('trade-price').value;\r\n    \r\n    if (!coin || !amount || !price) {\r\n        showMessage('Please fill all fields!', 'error');\r\n        return;\r\n    }\r\n    \r\n    var formData = new FormData();\r\n    formData.append('action', 'process_trade');\r\n    formData.append('coin', coin);\r\n    formData.append('amount', amount);\r\n    formData.append('price', price);\r\n    formData.append('type', type);\r\n    \r\n    fetch(ajaxurl, {method: 'POST', body: formData})\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        if (data.success) {\r\n            showMessage('Trade successful! New balance: $' + parseFloat(data.data.new_balance).toLocaleString(), 'success');\r\n            document.getElementById('user-balance').innerHTML = '$' + parseFloat(data.data.new_balance).toLocaleString();\r\n            loadBalance();\r\n        } else {\r\n            showMessage(data.data, 'error');\r\n        }\r\n    });\r\n}\r\n\r\nfunction showMessage(msg, type) {\r\n    var el = document.getElementById('trade-message');\r\n    el.style.display = 'block';\r\n    el.style.background = type === 'success' ? '#00C896' : '#ef4444';\r\n    el.innerHTML = msg;\r\n}\r\n\r\nloadBalance();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Virtual Balance Loading&#8230; Portfolio Value $0.00 Total Profit\/Loss +$0.00 Place Trade BUY SELL Trade History Coin Type Amount Price Total [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-87","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/pages\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=87"}],"version-history":[{"count":13,"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/pages\/87\/revisions"}],"predecessor-version":[{"id":101,"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=\/wp\/v2\/pages\/87\/revisions\/101"}],"wp:attachment":[{"href":"https:\/\/chaseemobile.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}