{"id":14,"date":"2025-11-04T19:17:39","date_gmt":"2025-11-04T19:17:39","guid":{"rendered":"https:\/\/jaedpro.com\/wp-react-panel\/?post_type=docs&#038;p=14"},"modified":"2025-11-05T12:15:27","modified_gmt":"2025-11-05T12:15:27","password":"","slug":"installation","status":"publish","type":"docs","link":"https:\/\/jaedpro.com\/wp-react-panel\/docs\/installation\/","title":{"rendered":"Installation"},"content":{"rendered":"\n<p>Here, let me show you how easy it is to use WPReactPanel inside your WordPress projects. Here in this documentation, I am going to assume you are using it in a WordPress Plugin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Downloading WPReactPanel<\/h3>\n\n\n\n<p>You can use the WPReactPanel directly in your existing or new projects with just the build file. Download the project file from the <a href=\"https:\/\/github.com\/jaedm97\/wp-react-panel\">GitHub public repository<\/a> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"702\" src=\"https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-01.19.45@2x-1-1024x702.jpg\" alt=\"\" class=\"wp-image-18\" srcset=\"https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-01.19.45@2x-1-1024x702.jpg 1024w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-01.19.45@2x-1-300x206.jpg 300w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-01.19.45@2x-1-768x527.jpg 768w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-01.19.45@2x-1.jpg 1493w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Adding it to your Plugin<\/h3>\n\n\n\n<p>Once you download, copy the <code>wp-react-panel<\/code> directory inside your plugin&#8217;s root folder. As you are going to use the build version of the framework, you can delete the following files and folders: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/app<\/li>\n\n\n\n<li>.gitignore<\/li>\n\n\n\n<li>.git<\/li>\n\n\n\n<li>README.md<\/li>\n\n\n\n<li>.example-usage.php<\/li>\n<\/ul>\n\n\n\n<p>Just be aware that the <code>build<\/code> folder and <code>wp-react-panel.php<\/code> are safe and inside the <code>wp-react-panel<\/code> folder.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Include WPReactPanel Class<\/h3>\n\n\n\n<p>Now, inside your plugin&#8217;s main file or wherever you want to include this framework, do it. Here is an example code snippet to include inside your plugin. <\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-19lffh7\"\n     id=\"betterdocs-code-snippet-19lffh7\"\n     data-language=\"php\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">my-plugin.php<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-19lffh7 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-php\"><code>require_once PLUGIN_DIR . &#039;wp-react-panel\/wp-react-panel.php&#039;;<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-19lffh7');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">4. Define Page Data<\/h3>\n\n\n\n<p>Configure the settings page appearance and menu structure:<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-5tau3f1\"\n     id=\"betterdocs-code-snippet-5tau3f1\"\n     data-language=\"php\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">my-plugin.php<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-5tau3f1 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-php\"><code>$page_data     = array(\n\t&#039;page_title&#039; =&gt; &#039;My Settings Page&#039;,\n\t&#039;menu_title&#039; =&gt; &#039;My Settings&#039;,\n\t&#039;capability&#039; =&gt; &#039;manage_options&#039;,\n\t&#039;menu_slug&#039;  =&gt; &#039;my-settings&#039;,\n\t&#039;icon&#039;       =&gt; &#039;dashicons-admin-generic&#039;,\n\t&#039;position&#039;   =&gt; 20,\n\t&#039;configs&#039;    =&gt; array(\n\t\t&#039;show_tabs&#039;       =&gt; false,\n\t\t&#039;wrapper_classes&#039; =&gt; &#039;my-plugin-wrapper&#039;,\n\t\t&#039;page_width&#039;      =&gt; &#039;medium&#039;, \/\/ mini ~ 2xl | small ~ 4xl | medium ~ 5xl | large ~ 6xl | extra ~ 8xl\n\t),\n);<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-5tau3f1');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">5. Define Settings Data Structure<\/h3>\n\n\n\n<p>Create your settings structure with tabs, sections, and fields. You can get the fields&#8217; details from another part of this documentation.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-3994559f\"\n     id=\"betterdocs-code-snippet-3994559f\"\n     data-language=\"php\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">my-plugin.php<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-3994559f .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-php\"><code>$settings_data = array(\n\t&#039;tab_slug&#039; =&gt; array(\n\t\t&#039;name&#039;     =&gt; &#039;Tab Name&#039;,\n\t\t&#039;sections&#039; =&gt; array(\n\t\t\t&#039;section_slug&#039; =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_slug&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Section Name&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Section description&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\t\/\/ Field definitions here\n\t\t\t\t),\n\t\t\t),\n\t\t),\n\t),\n);<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-3994559f');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">6. Initialise WPReactPanel<\/h3>\n\n\n\n<p>Now it&#8217;s easy to initialise the framework in your plugin. Here is a sample code based on the above steps.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-o90hzud\"\n     id=\"betterdocs-code-snippet-o90hzud\"\n     data-language=\"php\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">my-plugin.php<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-o90hzud .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-php\"><code>$admin_settings = new WPReactPanel( $page_data, $settings_data, PLUGIN_URL, PLUGIN_VERSION );<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-o90hzud');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">7. Enjoy using different Fields<\/h3>\n\n\n\n<p>You should now see an admin menu in your WordPress dashboard. You can also enjoy different field types on your plugin&#8217;s settings page.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here, let me show you how easy it is to use WPReactPanel inside your WordPress projects. Here in this documentation, I am going to assume you are using it in a WordPress Plugin. 1. Downloading WPReactPanel You can use the WPReactPanel directly in your existing or new projects with just the build file. Download the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[3],"doc_tag":[],"class_list":["post-14","docs","type-docs","status-publish","hentry","doc_category-quick-start"],"blocksy_meta":[],"year_month":"2026-05","word_count":237,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"Jaed Mosharraf","author_nicename":"jaedm97","author_url":"https:\/\/jaedpro.com\/wp-react-panel\/author\/jaedm97\/"},"doc_category_info":[{"term_name":"Quick Start","term_url":"https:\/\/jaedpro.com\/wp-react-panel\/docs-category\/quick-start\/"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":20,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs\/14\/revisions"}],"predecessor-version":[{"id":165,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs\/14\/revisions\/165"}],"wp:attachment":[{"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/media?parent=14"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/doc_category?post=14"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/doc_tag?post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}