{"id":59,"date":"2025-11-04T20:31:58","date_gmt":"2025-11-04T20:31:58","guid":{"rendered":"https:\/\/jaedpro.com\/wp-react-panel\/?post_type=docs&#038;p=59"},"modified":"2025-11-04T20:43:26","modified_gmt":"2025-11-04T20:43:26","password":"","slug":"sample-plugin","status":"publish","type":"docs","link":"https:\/\/jaedpro.com\/wp-react-panel\/docs\/sample-plugin\/","title":{"rendered":"Sample Plugin"},"content":{"rendered":"\n<p>Let me share a sample plugin with you in this documentation. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Folder Structure<\/h3>\n\n\n\n<p>I assume you have already downloaded the required files and that your plugin&#8217;s file structure is as follows. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"645\" src=\"https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-1024x645.jpg\" alt=\"\" class=\"wp-image-64\" srcset=\"https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-1024x645.jpg 1024w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-300x189.jpg 300w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-768x484.jpg 768w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-1536x968.jpg 1536w, https:\/\/jaedpro.com\/wp-react-panel\/wp-content\/uploads\/sites\/2\/2025\/11\/CleanShot-2025-11-05-at-02.37.38@2x-2048x1290.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Plugin Main File<\/h3>\n\n\n\n<p>Here I am sharing a sample plugin&#8217;s main file that could help you get started right away with this framework. <\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-5677c7b3\"\n     id=\"betterdocs-code-snippet-5677c7b3\"\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\">sample-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-5677c7b3 .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>&lt;?php\n\/**\n * Plugin Name: Sample Plugin for ReactPanel\n * Description: This is an example plugin just to show how to use ReactPanel inside your WordPress projects.\n * Version: 1.0.0\n * Author: Jaed Mosharraf\n * Author URI: https:\/\/github.com\/jaedm97\/\n *\/\n\ndefined( &#039;ABSPATH&#039; ) || exit;\ndefined( &#039;PLUGIN_DIR&#039; ) || define( &#039;PLUGIN_DIR&#039;, plugin_dir_path( __FILE__ ) );\ndefined( &#039;PLUGIN_URL&#039; ) || define( &#039;PLUGIN_URL&#039;, plugin_dir_url( __FILE__ ) );\ndefined( &#039;PLUGIN_VERSION&#039; ) || define( &#039;PLUGIN_VERSION&#039;, &#039;1.0.0&#039; );\n\nrequire_once PLUGIN_DIR . &#039;wp-react-panel\/wp-react-panel.php&#039;;\n\n$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);\n$settings_data  = array(\n\t&#039;general&#039;    =&gt; array(\n\t\t&#039;name&#039;     =&gt; &#039;General Settings&#039;,\n\t\t&#039;sections&#039; =&gt; array(\n\t\t\t&#039;section_app_config&#039;   =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_app_config&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Application Configuration&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Configure the basic settings for your application.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;app_name&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Application Name&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Enter the name of your application&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;text&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;My Awesome App&#039;,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; &#039;My App&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;app_name&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;app_status&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Application&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Turn on to activate the application features&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;app_status&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;max_users&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Maximum Users&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Set the maximum number of concurrent users allowed&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;number&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; 100,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; 50,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;max_users&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;app_mode&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Application Mode&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Select the mode in which the application should run&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;radio&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;development&#039; =&gt; &#039;Development&#039;,\n\t\t\t\t\t\t\t&#039;staging&#039;     =&gt; &#039;Staging&#039;,\n\t\t\t\t\t\t\t&#039;production&#039;  =&gt; &#039;Production&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; &#039;production&#039;,\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;app_mode&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_notification&#039; =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_notification&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Notification Settings&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Manage how and when notifications are sent to users.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;notification_method&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Notification Method&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Choose how notifications should be delivered&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;select&#039;,\n\t\t\t\t\t\t&#039;options&#039;     =&gt; array(\n\t\t\t\t\t\t\t&#039;email&#039; =&gt; &#039;Email&#039;,\n\t\t\t\t\t\t\t&#039;sms&#039;   =&gt; &#039;SMS&#039;,\n\t\t\t\t\t\t\t&#039;push&#039;  =&gt; &#039;Push Notification&#039;,\n\t\t\t\t\t\t\t&#039;all&#039;   =&gt; &#039;All Methods&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select method&#039;,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; &#039;email&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;notification_method&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;notification_frequency&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Notification Frequency&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Send notifications in real-time&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;notification_frequency&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;notification_emails&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Additional Email Recipients&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Add email addresses to receive notifications&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;tags&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;email@example.com&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;notification_emails&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;notification_channels&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Notification Channels&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Select which channels should be enabled for notifications&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;checkbox&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;email_alerts&#039; =&gt; &#039;Email Alerts&#039;,\n\t\t\t\t\t\t\t&#039;sms_alerts&#039;   =&gt; &#039;SMS Alerts&#039;,\n\t\t\t\t\t\t\t&#039;push_alerts&#039;  =&gt; &#039;Push Notifications&#039;,\n\t\t\t\t\t\t\t&#039;in_app&#039;       =&gt; &#039;In-App Notifications&#039;,\n\t\t\t\t\t\t\t&#039;webhook&#039;      =&gt; &#039;Webhook Notifications&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; array( &#039;email_alerts&#039;, &#039;in_app&#039; ),\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;notification_channels&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_security&#039;     =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_security&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Security Settings&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Configure security and access control settings.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;api_key&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;API Key&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Your secure API key for authentication&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;password&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;************&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;api_key&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;allowed_ips&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Allowed IP Addresses&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Whitelist IP addresses that can access the API&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;tags&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;192.168.1.1&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;allowed_ips&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;session_timeout&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Session Timeout (minutes)&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Time before user sessions expire&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;number&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; 30,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; 15,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;session_timeout&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;security_features&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Security Features&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Enable additional security features for enhanced protection&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;checkbox&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;two_factor&#039;    =&gt; &#039;Two-Factor Authentication&#039;,\n\t\t\t\t\t\t\t&#039;ip_whitelist&#039;  =&gt; &#039;IP Whitelisting&#039;,\n\t\t\t\t\t\t\t&#039;ssl_enforce&#039;   =&gt; &#039;Enforce SSL\/TLS&#039;,\n\t\t\t\t\t\t\t&#039;rate_limiting&#039; =&gt; &#039;Rate Limiting&#039;,\n\t\t\t\t\t\t\t&#039;audit_logging&#039; =&gt; &#039;Audit Logging&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; array( &#039;two_factor&#039;, &#039;ssl_enforce&#039; ),\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;security_features&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t),\n\t),\n\t&#039;users&#039;      =&gt; array(\n\t\t&#039;name&#039;     =&gt; &#039;User Management&#039;,\n\t\t&#039;sections&#039; =&gt; array(\n\t\t\t&#039;section_user_roles&#039;   =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_user_roles&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;User Roles &amp; Permissions&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Define which user roles have access to the system.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;enable_role_restrictions&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Role Restrictions&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Restrict access based on user roles&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;enable_role_restrictions&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;allowed_roles&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Allowed User Roles&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Select which user roles can access the system&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;select&#039;,\n\t\t\t\t\t\t&#039;options&#039;     =&gt; array(\n\t\t\t\t\t\t\t&#039;administrator&#039; =&gt; &#039;Administrator&#039;,\n\t\t\t\t\t\t\t&#039;editor&#039;        =&gt; &#039;Editor&#039;,\n\t\t\t\t\t\t\t&#039;author&#039;        =&gt; &#039;Author&#039;,\n\t\t\t\t\t\t\t&#039;contributor&#039;   =&gt; &#039;Contributor&#039;,\n\t\t\t\t\t\t\t&#039;subscriber&#039;    =&gt; &#039;Subscriber&#039;,\n\t\t\t\t\t\t\t&#039;customer&#039;      =&gt; &#039;Customer&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select user roles&#039;,\n\t\t\t\t\t\t&#039;multiple&#039;    =&gt; true,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; array( &#039;administrator&#039;, &#039;editor&#039; ),\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;allowed_roles&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;default_permission_level&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Default Permission Level&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Choose the default permission level for new users&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;radio&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;read_only&#039;   =&gt; &#039;Read Only&#039;,\n\t\t\t\t\t\t\t&#039;read_write&#039;  =&gt; &#039;Read &amp; Write&#039;,\n\t\t\t\t\t\t\t&#039;full_access&#039; =&gt; &#039;Full Access&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; &#039;read_only&#039;,\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;default_permission_level&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_registration&#039; =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_registration&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;User Registration&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Control how new users can register on your platform.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;allow_registration&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Allow User Registration&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Enable self-registration for new users&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;allow_registration&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;registration_message&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Registration Welcome Message&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Message displayed to users after successful registration&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;text&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Welcome to our platform!&#039;,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; &#039;Thank you for registering!&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;registration_message&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;blocked_email_domains&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Blocked Email Domains&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Email domains that are not allowed to register&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;tags&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;spam.com&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;blocked_email_domains&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;default_role&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Default User Role&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Role assigned to new users upon registration&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;select&#039;,\n\t\t\t\t\t\t&#039;options&#039;     =&gt; array(\n\t\t\t\t\t\t\t&#039;subscriber&#039;  =&gt; &#039;Subscriber&#039;,\n\t\t\t\t\t\t\t&#039;customer&#039;    =&gt; &#039;Customer&#039;,\n\t\t\t\t\t\t\t&#039;contributor&#039; =&gt; &#039;Contributor&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select default role&#039;,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; &#039;subscriber&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;default_role&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;registration_requirements&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Registration Requirements&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Select which fields are required during registration&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;checkbox&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;email_verification&#039; =&gt; &#039;Email Verification&#039;,\n\t\t\t\t\t\t\t&#039;phone_verification&#039; =&gt; &#039;Phone Verification&#039;,\n\t\t\t\t\t\t\t&#039;terms_acceptance&#039;   =&gt; &#039;Terms &amp; Conditions Acceptance&#039;,\n\t\t\t\t\t\t\t&#039;profile_photo&#039;      =&gt; &#039;Profile Photo&#039;,\n\t\t\t\t\t\t\t&#039;bio&#039;                =&gt; &#039;Bio\/Description&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; array( &#039;email_verification&#039;, &#039;terms_acceptance&#039; ),\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;registration_requirements&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_user_limits&#039;  =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_user_limits&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;User Activity Limits&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Set limits on user activities to prevent abuse.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;enable_activity_limits&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Activity Limits&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Track and limit user activities&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;enable_activity_limits&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;max_login_attempts&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Maximum Login Attempts&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Number of failed login attempts before account lockout&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;number&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; 5,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; 3,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;max_login_attempts&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;lockout_duration&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Lockout Duration (hours)&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;How long accounts remain locked after exceeding login attempts&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;number&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; 24,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; 1,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;lockout_duration&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t),\n\t),\n\t&#039;scheduling&#039; =&gt; array(\n\t\t&#039;name&#039;     =&gt; &#039;Scheduling&#039;,\n\t\t&#039;sections&#039; =&gt; array(\n\t\t\t&#039;section_maintenance&#039; =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_maintenance&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Maintenance Window&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Schedule regular maintenance windows for system updates.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;enable_maintenance_mode&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Maintenance Mode&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Activate maintenance mode during scheduled windows&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;no&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;enable_maintenance_mode&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;maintenance_start&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Maintenance Start Time&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Select the date and time when maintenance should begin&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;datetime&#039;,\n\t\t\t\t\t\t&#039;settings&#039;    =&gt; array(\n\t\t\t\t\t\t\t&#039;timePicker&#039; =&gt; false,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select start date and time&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;maintenance_start&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;maintenance_end&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Maintenance End Time&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Select the date and time when maintenance should end&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;datetime&#039;,\n\t\t\t\t\t\t&#039;settings&#039;    =&gt; array(\n\t\t\t\t\t\t\t&#039;timePicker&#039; =&gt; true,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select end date and time&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;maintenance_end&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;maintenance_frequency&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Maintenance Frequency&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;How often should maintenance occur&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;radio&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;weekly&#039;    =&gt; &#039;Weekly&#039;,\n\t\t\t\t\t\t\t&#039;biweekly&#039;  =&gt; &#039;Bi-weekly&#039;,\n\t\t\t\t\t\t\t&#039;monthly&#039;   =&gt; &#039;Monthly&#039;,\n\t\t\t\t\t\t\t&#039;quarterly&#039; =&gt; &#039;Quarterly&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; &#039;monthly&#039;,\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;maintenance_frequency&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_backup&#039;      =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_backup&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Automated Backups&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Configure automated backup schedules for your data.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;enable_auto_backup&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Automated Backups&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Automatically backup data on schedule&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;enable_auto_backup&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;backup_time&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Backup Time&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Select the time when daily backups should run&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;datetime&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select backup time&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;backup_time&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;backup_frequency&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Backup Frequency&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;How often should backups be created&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;radio&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;hourly&#039;  =&gt; &#039;Hourly&#039;,\n\t\t\t\t\t\t\t&#039;daily&#039;   =&gt; &#039;Daily&#039;,\n\t\t\t\t\t\t\t&#039;weekly&#039;  =&gt; &#039;Weekly&#039;,\n\t\t\t\t\t\t\t&#039;monthly&#039; =&gt; &#039;Monthly&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; &#039;daily&#039;,\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;backup_frequency&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;backup_types&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Backup Types&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Select what should be included in backups&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;checkbox&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;database&#039;  =&gt; &#039;Database&#039;,\n\t\t\t\t\t\t\t&#039;files&#039;     =&gt; &#039;Files &amp; Media&#039;,\n\t\t\t\t\t\t\t&#039;config&#039;    =&gt; &#039;Configuration Files&#039;,\n\t\t\t\t\t\t\t&#039;logs&#039;      =&gt; &#039;System Logs&#039;,\n\t\t\t\t\t\t\t&#039;user_data&#039; =&gt; &#039;User Data&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; array( &#039;database&#039;, &#039;files&#039;, &#039;config&#039; ),\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;backup_types&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;backup_retention&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Backup Retention (days)&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Number of days to retain backups before deletion&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;number&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; 30,\n\t\t\t\t\t\t&#039;default&#039;     =&gt; 30,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;backup_retention&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\t&#039;section_reports&#039;     =&gt; array(\n\t\t\t\t&#039;id&#039;     =&gt; &#039;section_reports&#039;,\n\t\t\t\t&#039;name&#039;   =&gt; &#039;Scheduled Reports&#039;,\n\t\t\t\t&#039;desc&#039;   =&gt; &#039;Configure automated report generation and delivery.&#039;,\n\t\t\t\t&#039;fields&#039; =&gt; array(\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;      =&gt; &#039;enable_scheduled_reports&#039;,\n\t\t\t\t\t\t&#039;title&#039;   =&gt; &#039;Enable Scheduled Reports&#039;,\n\t\t\t\t\t\t&#039;label&#039;   =&gt; &#039;Automatically generate and send reports&#039;,\n\t\t\t\t\t\t&#039;type&#039;    =&gt; &#039;switch&#039;,\n\t\t\t\t\t\t&#039;default&#039; =&gt; &#039;yes&#039;,\n\t\t\t\t\t\t&#039;value&#039;   =&gt; get_option( &#039;enable_scheduled_reports&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;report_generation_time&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Report Generation Time&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;When should reports be generated&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;datetime&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;Select report time&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;report_generation_time&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;report_types&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Report Types&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Select which reports should be generated&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;checkbox&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;usage_stats&#039;    =&gt; &#039;Usage Statistics&#039;,\n\t\t\t\t\t\t\t&#039;user_activity&#039;  =&gt; &#039;User Activity&#039;,\n\t\t\t\t\t\t\t&#039;security_audit&#039; =&gt; &#039;Security Audit&#039;,\n\t\t\t\t\t\t\t&#039;performance&#039;    =&gt; &#039;Performance Metrics&#039;,\n\t\t\t\t\t\t\t&#039;financial&#039;      =&gt; &#039;Financial Summary&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; array( &#039;usage_stats&#039;, &#039;user_activity&#039; ),\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;report_types&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;       =&gt; &#039;report_format&#039;,\n\t\t\t\t\t\t&#039;title&#039;    =&gt; &#039;Report Format&#039;,\n\t\t\t\t\t\t&#039;subTitle&#039; =&gt; &#039;Choose the format for generated reports&#039;,\n\t\t\t\t\t\t&#039;type&#039;     =&gt; &#039;radio&#039;,\n\t\t\t\t\t\t&#039;options&#039;  =&gt; array(\n\t\t\t\t\t\t\t&#039;pdf&#039;   =&gt; &#039;PDF&#039;,\n\t\t\t\t\t\t\t&#039;csv&#039;   =&gt; &#039;CSV&#039;,\n\t\t\t\t\t\t\t&#039;excel&#039; =&gt; &#039;Excel (XLSX)&#039;,\n\t\t\t\t\t\t\t&#039;json&#039;  =&gt; &#039;JSON&#039;,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t&#039;default&#039;  =&gt; &#039;pdf&#039;,\n\t\t\t\t\t\t&#039;value&#039;    =&gt; get_option( &#039;report_format&#039; ),\n\t\t\t\t\t),\n\t\t\t\t\tarray(\n\t\t\t\t\t\t&#039;id&#039;          =&gt; &#039;report_recipients&#039;,\n\t\t\t\t\t\t&#039;title&#039;       =&gt; &#039;Report Recipients&#039;,\n\t\t\t\t\t\t&#039;desc&#039;        =&gt; &#039;Email addresses to receive scheduled reports&#039;,\n\t\t\t\t\t\t&#039;type&#039;        =&gt; &#039;tags&#039;,\n\t\t\t\t\t\t&#039;placeholder&#039; =&gt; &#039;admin@example.com&#039;,\n\t\t\t\t\t\t&#039;value&#039;       =&gt; get_option( &#039;report_recipients&#039; ),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t),\n\t),\n);\n$admin_settings = new WPReactPanel( $page_data, $settings_data, PLUGIN_URL, PLUGIN_VERSION );\n\n\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-5677c7b3');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Let me share a sample plugin with you in this documentation. Folder Structure I assume you have already downloaded the required files and that your plugin&#8217;s file structure is as follows. Plugin Main File Here I am sharing a sample plugin&#8217;s main file that could help you get started right away with this framework.<\/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-59","docs","type-docs","status-publish","hentry","doc_category-quick-start"],"blocksy_meta":[],"year_month":"2026-05","word_count":55,"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\/59","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=59"}],"version-history":[{"count":7,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs\/59\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/docs\/59\/revisions\/67"}],"wp:attachment":[{"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/media?parent=59"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/doc_category?post=59"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/jaedpro.com\/wp-react-panel\/wp-json\/wp\/v2\/doc_tag?post=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}