{"id":62,"date":"2026-03-30T12:47:11","date_gmt":"2026-03-30T12:47:11","guid":{"rendered":"https:\/\/ph-portal.zyneventures.com\/?page_id=62"},"modified":"2026-03-30T12:55:51","modified_gmt":"2026-03-30T12:55:51","slug":"add-new-user","status":"publish","type":"page","link":"https:\/\/ph-portal.zyneventures.com\/index.php\/add-new-user\/","title":{"rendered":"Add New User"},"content":{"rendered":"<style>.kadence-column62_5822ba-f8 > .kt-inside-inner-col,.kadence-column62_5822ba-f8 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column62_5822ba-f8 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column62_5822ba-f8 > .kt-inside-inner-col{flex-direction:column;}.kadence-column62_5822ba-f8 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column62_5822ba-f8 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column62_5822ba-f8{position:relative;}@media all and (max-width: 1024px){.kadence-column62_5822ba-f8 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column62_5822ba-f8 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column62_5822ba-f8\"><div class=\"kt-inside-inner-col\"><style>.kb-row-layout-id62_138023-d8 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id62_138023-d8 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id62_138023-d8 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id62_138023-d8 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id62_138023-d8 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id62_138023-d8 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id62_138023-d8 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column62_b1381c-bc > .kt-inside-inner-col,.kadence-column62_b1381c-bc > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column62_b1381c-bc > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column62_b1381c-bc > .kt-inside-inner-col{flex-direction:column;}.kadence-column62_b1381c-bc > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column62_b1381c-bc > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column62_b1381c-bc{position:relative;}@media all and (max-width: 1024px){.kadence-column62_b1381c-bc > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column62_b1381c-bc > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column62_b1381c-bc\"><div class=\"kt-inside-inner-col\">\n<style>\n        :root {\n            --primary-blue: #0180FF;\n            --bg-body: #fdfdfd;\n            --input-border: #e2e8f0;\n            --text-main: #212529;\n            --text-muted: #8D8C9C;\n            --card-bg: #F8F9FA;\n            --white: #ffffff;\n        }\n\n        * { box-sizing: border-box; margin: 0; padding: 0; }\n        body { \n            font-family: 'Sora', sans-serif; \n            background-color: #fff; \n            color: var(--text-main); \n        }\n\n        .page-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            max-width: 1200px;\n            margin: 0 auto 40px auto;\n        }\n        .page-title { \n            font-size: 21px; \n            font-weight: 500; \n            color: var(--text-main);\n            letter-spacing: 0.5px;\n        }e\n\n        .header-actions { display: flex; gap: 30px; align-items: center; }\n        .btn-close { \n            color: var(--text-muted); \n            font-size: 12px; \n            text-decoration: none; \n            font-weight: 400;\n            padding-right: 20px; \n        }\n        .btn-submit { \n            background-color: #0180FF; \n            color: white; \n            border: none; \n            padding: 8px 15px; \n            border-radius: 6px; \n            cursor: pointer; \n            font-weight: 500; \n            font-size: 12px;\n            transition: background 0.2s;\n        }\n        .btn-submit:hover \n        { background-color: #3499FF; \n        }\n        .btn-submit:disabled { \n            background-color: #cbd5e0; \n            cursor: not-allowed; \n        }\n\n        .form-container { \n            display: grid; \n            grid-template-columns: 1fr 1fr; \n            gap: 30px; \n            max-width: 1200px; \n            margin: 0 auto; \n        }\n        .form-card { \n            background: var(--card-bg); \n            padding: 35px; \n            border-radius: 15px; \n            box-shadow: 0 2px 4px rgba(0,0,0,0.02);\n        }\n        .section-title { \n            font-size: 24px; \n            font-weight: 500; \n            margin-bottom: 30px; \n            color: #1a202c; \n        }\n\n        .form-group { margin-bottom: 20px; }\n        label { \n            display: block; \n            font-size: 14px; \n            margin-bottom: 8px; \n            color: #4a5568;\n        }\n        label span { color: #e53e3e; margin-left: 2px; }\n\n        input[type=\"text\"], input[type=\"email\"], input[type=\"date\"], select {\n            width: 100%; \n            padding: 8px 15px; \n            border: 1px solid var(--input-border); \n            border-radius: 6px;\n            background-color: var(--white); \n            font-family: 'Sora'; \n            font-size: 14px; \n            color: #4a5568;\n            outline: none;\n        }\n\n        .file-input-wrapper {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            background: var(--white);\n            border: 1px solid var(--input-border);\n            border-radius: 6px;\n            padding: 4px 8px;\n        }\n\n        .radio-group { display: flex; gap: 25px; margin-top: 5px; }\n        .radio-option { \n            display: flex; \n            align-items: center; \n            gap: 8px; \n            font-size: 14px; \n            color: #718096; \n            cursor: pointer; \n        }\n        \n        .status-row { display: flex; justify-content: space-between; align-items: center; margin-top: 25px; }\n        .switch { position: relative; display: inline-block; width: 40px; height: 20px; }\n        .switch input { opacity: 0; width: 0; height: 0; }\n        .slider { \n            position: absolute; \n            cursor: pointer; \n            top: 0; \n            left: 0; \n            right: 0; \n            bottom: 0; \n            background-color: #cbd5e0; \n            transition: .4s; \n            border-radius: 20px; \n        }\n        .slider:before { \n            position: absolute; \n            content: \"\"; height: 14px; \n            width: 14px; \n            left: 3px; \n            bottom: 3px; \n            background-color: white; \n            transition: .4s; \n            border-radius: 50%; \n        }\n        input:checked + .slider { background-color: var(--primary-blue); }\n        input:checked + .slider:before { transform: translateX(20px); }\n\n        .multi-row { \n            display: grid; \n            grid-template-columns: 1fr 1fr auto; \n            gap: 15px; \n            align-items: flex-end; \n            margin-bottom: 15px; \n        }\n      \n        .btn-add {\n            background: #F5F5F5; \n            border: 1px solid #198754; \n            color: #198754;\n            padding: 10px 15px; \n            border-radius: 4px; \n            cursor: pointer; \n            font-size: 12px; \n            font-family: 'Sora';\n            transition: all 0.3s ease;\n        }\n         .btn-add:hover { \n            background-color: #198754; \n            color: #f5f5f5; \n        }\n        .btn-delete {\n            background: #F5F5F5; \n            border: 1px solid #dc3545; \n            color: #dc3545;\n            padding: 10px 15px; \n            border-radius: 4px; \n            cursor: pointer; \n            font-size: 12px; \n            font-family: 'Sora';\n            transition: all 0.3s ease;\n        }\n        .btn-delete:hover { \n            background-color: #dc3545; \n            color: #f5f5f5; \n        }\n\n        @media (max-width: 1024px) { .form-container { grid-template-columns: 1fr; } }\n\n        @media (max-width: 768px) {\n            body {\n                padding-left: 15px;\n                padding-right: 15px;\n            }\n            .page-header {\n                flex-wrap: wrap;\n                gap: 12px;\n            }\n            .header-actions {\n                width: 100%;\n                justify-content: flex-start;\n            }\n        }\n    <\/style>\n\n\n    <div class=\"page-header\">\n        <h1 class=\"page-title\">ADD NEW USER<\/h1>\n        <div class=\"header-actions\">\n            <a href=\"https:\/\/ph-portal.zyneventures.com\/index.php\/users\/\" class=\"btn-close\">Close<\/a>\n            <button type=\"submit\" form=\"addUserForm\" class=\"btn-submit\" id=\"mainSubmitBtn\">Submit<\/button>\n        <\/div>\n    <\/div>\n\n    <form id=\"addUserForm\">\n        <div class=\"form-container\">\n            <div class=\"form-card\">\n                <h2 class=\"section-title\">Personal Information<\/h2>\n                <div class=\"form-group\">\n                    <label>Full Name<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"fullName\" placeholder=\"Enter Full Name\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Pseudo Name<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"pseudoName\" placeholder=\"Enter Pseudo Name\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Upload User Profile Image<span>*<\/span><\/label>\n                    <div class=\"file-input-wrapper\">\n                        <input type=\"file\" id=\"profileImage\" accept=\"image\/*\">\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Email<span>*<\/span><\/label>\n                    <input type=\"email\" id=\"email\" placeholder=\"Enter Email\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Phone<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"phone\" placeholder=\"Enter Phone Number\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Address<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"address\" placeholder=\"Enter Address\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Country<span>*<\/span><\/label>\n                    <select id=\"country\" required>\n                        <option value=\"\">Select Country<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>State<span>*<\/span><\/label>\n                    <select id=\"state\" required disabled>\n                        <option value=\"\">Select State<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>City<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"city\" placeholder=\"Enter City\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Gender<span>*<\/span><\/label>\n                    <div class=\"radio-group\">\n                        <label class=\"radio-option\"><input type=\"radio\" name=\"gender\" value=\"m\" required> Male<\/label>\n                        <label class=\"radio-option\"><input type=\"radio\" name=\"gender\" value=\"f\"> Female<\/label>\n                    <\/div>\n                <\/div>\n                <div class=\"status-row\">\n                    <label>User Active<span>*<\/span><\/label>\n                    <label class=\"switch\">\n                        <input type=\"checkbox\" id=\"userActive\" checked>\n                        <span class=\"slider\"><\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n\n            <div class=\"form-card\">\n                <h2 class=\"section-title\">Official Information<\/h2>\n                <div class=\"form-group\">\n                    <label>Date of Birth<span>*<\/span><\/label>\n                    <input type=\"date\" id=\"dob\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Employee ID<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"employeeId\" placeholder=\"Enter Employee ID\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Official Phone<span>*<\/span><\/label>\n                    <input type=\"text\" id=\"officialPhone\" placeholder=\"Enter Phone Number\" required>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Department<span>*<\/span><\/label>\n                    <select id=\"department\" required>\n                        <option value=\"\">Select Department<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Team<span>*<\/span><\/label>\n                    <select id=\"team\" required>\n                        <option value=\"\">Select Team<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Role<span>*<\/span><\/label>\n                    <select id=\"role\" required>\n                        <option value=\"\">Select Role<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Reports to<span>*<\/span><\/label>\n                    <select id=\"reportsTo\" required>\n                        <option value=\"\">Select Report to<\/option>\n                    <\/select>\n                <\/div>\n\n                <div id=\"projectWrapper\">\n                    <div class=\"multi-row form-group\">\n                        <div>\n                            <label>Project<span>*<\/span><\/label>\n                            <select class=\"project-select\" required>\n                                <option value=\"\">Select Project<\/option>\n                            <\/select>\n                        <\/div>\n                        <div>\n                            <label>Team Lead<span>*<\/span><\/label>\n                            <select class=\"teamlead-select\" required>\n                                <option value=\"\">Select Team Lead<\/option>\n                            <\/select>\n                        <\/div>\n                        <button type=\"button\" class=\"btn-add\" onclick=\"addRow('projectWrapper')\">Add More<\/button>\n                    <\/div>\n                <\/div>\n\n                <div id=\"projectTypeWrapper\">\n                    <div class=\"multi-row form-group\" style=\"grid-template-columns: 1fr auto;\">\n                        <div>\n                            <label>Project Type<span>*<\/span><\/label>\n                            <select class=\"project-type-select\" required>\n                                <option value=\"\">Select Project Type<\/option>\n                            <\/select>\n                        <\/div>\n                        <button type=\"button\" class=\"btn-add\" onclick=\"addRow('projectTypeWrapper')\">Add More<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/form>\n\n<script>\n    const API_BASE_URL = \"https:\/\/api-ph-portal.zyneventures.com\/api\/v1\";\n    const REDIRECT_URL = \"https:\/\/ph-portal.zyneventures.com\/index.php\/users\/\";\n    \n    const ENDPOINTS = {\n        CREATE_USER: `${API_BASE_URL}\/user\/create`,\n        DEPARTMENTS: `${API_BASE_URL}\/department\/all`,\n        TEAMS: `${API_BASE_URL}\/team\/all`,\n        ROLES: `${API_BASE_URL}\/role\/all?limit=45`,\n        TEAM_LEADS: `${API_BASE_URL}\/user\/team-leads`,\n        MANAGERS: `${API_BASE_URL}\/user\/managers`,\n        PROJECTS: `${API_BASE_URL}\/project\/all`,\n        PROJECT_TYPES: `${API_BASE_URL}\/projecttype\/all`,        \n        COUNTRIES: `${API_BASE_URL}\/country\/all`,\n        STATES_BY_COUNTRY: (id) => `${API_BASE_URL}\/state\/by-country\/${id}`\n    };\n\n    const getAuthToken = () => localStorage.getItem(\"TOKEN\");\n\n    \/\/ Dynamic dropdown populations\n    async function populateDropdown(url, selector, placeholder) {\n        try {\n            const res = await fetch(url, { \n                headers: { \n                    'Authorization': `Bearer ${getAuthToken()}`, \n                    'Accept': 'application\/json' \n                } \n            });\n            const result = await res.json();\n            const items = result.data?.data || result.data || [];\n            document.querySelectorAll(selector).forEach(select => {\n                const currentValue = select.value;\n                select.innerHTML = `<option value=\"\">${placeholder}<\/option>`;\n                items.forEach(item => {\n                    const opt = document.createElement('option');\n                    opt.value = item.id;\n                    opt.textContent = item.name || item.role || item.type || item.full_name || item.id;\n                    select.appendChild(opt);\n                });\n                select.value = currentValue;\n            });\n        } catch (e) { console.error(\"Error populating dropdown:\", e); }\n    }\n\n    \/\/ Dynamic Row logic\n    function addRow(wrapperId) {\n        const wrapper = document.getElementById(wrapperId);\n        const row = wrapper.querySelector('.multi-row').cloneNode(true);\n        row.querySelectorAll('select').forEach(s => s.value = \"\");\n        const btn = row.querySelector('.btn-add');\n        btn.className = 'btn-delete';\n        btn.innerText = 'Delete';\n        btn.onclick = function() { this.closest('.multi-row').remove(); };\n        wrapper.appendChild(row);\n    }\n\n    \/\/ State change logic\n    document.getElementById('country').addEventListener('change', function() {\n        const stateSelect = document.getElementById('state');\n        if (this.value) {\n            stateSelect.disabled = false;\n            populateDropdown(ENDPOINTS.STATES_BY_COUNTRY(this.value), '#state', 'Select State');\n        } else {\n            stateSelect.disabled = true;\n            stateSelect.innerHTML = '<option value=\"\">Select State<\/option>';\n        }\n    });\n\n    window.onload = () => {\n        populateDropdown(ENDPOINTS.COUNTRIES, '#country', 'Select Country');\n        populateDropdown(ENDPOINTS.DEPARTMENTS, '#department', 'Select Department');\n        populateDropdown(ENDPOINTS.TEAMS, '#team', 'Select Team');\n        populateDropdown(ENDPOINTS.ROLES, '#role', 'Select Role');\n        populateDropdown(ENDPOINTS.MANAGERS, '#reportsTo', 'Select Report to');\n        populateDropdown(ENDPOINTS.PROJECTS, '.project-select', 'Select Project');\n        populateDropdown(ENDPOINTS.TEAM_LEADS, '.teamlead-select', 'Select Team Lead');\n        populateDropdown(ENDPOINTS.PROJECT_TYPES, '.project-type-select', 'Select Project Type');\n    };\n\n    \/\/ FORM SUBMISSION\n    document.getElementById('addUserForm').addEventListener('submit', async (e) => {\n        e.preventDefault();\n        const btn = document.getElementById('mainSubmitBtn');\n        btn.innerText = \"Registering...\";\n        btn.disabled = true;\n\n        const formData = new FormData();\n        \n        \/\/ Finalised Field Mapping\n        formData.append('name', document.getElementById('fullName').value);\n        formData.append('pesudo_name', document.getElementById('pseudoName').value);\n        formData.append('email', document.getElementById('email').value);\n        formData.append('phone', document.getElementById('phone').value);\n        formData.append('address', document.getElementById('address').value);\n        formData.append('city', document.getElementById('city').value);\n        \n        \/\/ Location text\n        const countryEl = document.getElementById('country');\n        formData.append('country', countryEl.options[countryEl.selectedIndex].text);\n        const stateEl = document.getElementById('state');\n        formData.append('state', stateEl.options[stateEl.selectedIndex].text);\n\n        formData.append('gender', document.querySelector('input[name=\"gender\"]:checked').value);\n        formData.append('dob', document.getElementById('dob').value);\n        formData.append('employee_id', document.getElementById('employeeId').value);\n        formData.append('department_id', document.getElementById('department').value);\n        formData.append('team_id', document.getElementById('team').value);\n        formData.append('role_id', document.getElementById('role').value);\n        \n        \/\/ Official Contact & Report To\n        formData.append('official_phone', document.getElementById('officialPhone').value);\n        formData.append('report_to', document.getElementById('reportsTo').value);\n        formData.append('is_active', document.getElementById('userActive').checked ? \"1\" : \"0\");\n\n        \/\/ Dynamic Array Handling\n        document.querySelectorAll('.project-select').forEach(s => {\n            if(s.value) formData.append('project[]', s.value);\n        });\n        document.querySelectorAll('.teamlead-select').forEach(s => {\n            if(s.value) formData.append('team_lead[]', s.value);\n        });\n        document.querySelectorAll('.project-type-select').forEach(s => {\n            if(s.value) formData.append('project_type[]', s.value);\n        });\n\n        \/\/ Profile Image\n        const file = document.getElementById('profileImage').files[0];\n        if (file) formData.append('file', file);\n\n        try {\n            const res = await fetch(ENDPOINTS.CREATE_USER, {\n                method: 'POST',\n                headers: { \n                    'Authorization': `Bearer ${getAuthToken()}`, \n                    'Accept': 'application\/json' \n                    \/\/ No Content-Type header needed for FormData\n                },\n                body: formData\n            });\n\n            const result = await res.json();\n            if (res.ok) {\n                alert(\"User registered successfully!\");\n                window.location.href = REDIRECT_URL;\n            } else {\n                alert(\"Validation Failed:\\n\" + JSON.stringify(result.errors || result.message, null, 2));\n            }\n        } catch (err) {\n            console.error(err);\n            alert(\"Network error. Please try again.\");\n        } finally {\n            btn.innerText = \"Submit\";\n            btn.disabled = false;\n        }\n    });\n<\/script>\n<\/div><\/div>\n\n<\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>ADD NEW USER Close Submit Personal Information Full Name* Pseudo Name* Upload User Profile Image* Email* Phone* Address* Country* Select Country State* Select State City* Gender* Male Female User Active* Official Information Date of Birth* Employee ID* Official Phone* Department* Select Department Team* Select Team Role* Select Role Reports to* Select Report to Project* Select&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-62","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/pages\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":12,"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/pages\/62\/revisions"}],"predecessor-version":[{"id":76,"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/pages\/62\/revisions\/76"}],"wp:attachment":[{"href":"https:\/\/ph-portal.zyneventures.com\/index.php\/wp-json\/wp\/v2\/media?parent=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}