{"id":302479,"date":"2026-04-29T03:54:38","date_gmt":"2026-04-29T03:54:38","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/royal-ledger\/"},"modified":"2026-05-13T05:52:29","modified_gmt":"2026-05-13T05:52:29","slug":"royal-ledger","status":"publish","type":"plugin","link":"https:\/\/es-do.wordpress.org\/plugins\/royal-ledger\/","author":23435753,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"1.0.3","tested":"7.0","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Royal Ledger \u2013 WordPress Cost Tracker & License Key Manager","header_author":"Royal Plugins","header_description":"Track WordPress site costs (plugins, hosting, domains, SaaS) and securely store the license keys you receive from third-party vendors. Know exactly what your site costs.","assets_banners_color":"454d64","last_updated":"2026-05-13 05:52:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/royalplugins.com\/royal-ledger","header_author_uri":"https:\/\/royalplugins.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":95,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"royalpluginsteam","date":"2026-05-13 05:52:29"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3517930,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3517930,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3517930,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3517930,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3530555,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Royal Ledger \\u2014 Live Demo\",\"description\":\"Try the cost tracker and encrypted license key vault live in your browser. Pre-populated with 10 sample WordPress costs and 4 license keys \\u2014 no signup.\",\"author\":\"royalplugins\",\"categories\":[\"Site Management\"]},\"landingPage\":\"\\\/?p=1\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"login\":{\"username\":\"admin\",\"password\":\"password\"},\"steps\":[{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Royal Ledger Demo\",\"blogdescription\":\"Click into the WordPress admin to see the cost dashboard, renewal calendar, and license vault.\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"royal-ledger\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\n\\nglobal $wpdb;\\n$items_table = $wpdb->prefix . 'rledger_items';\\n$keys_table  = $wpdb->prefix . 'rledger_keys';\\n\\n$items = [\\n  ['WPForms Pro',          'plugins', 199.50, 'annual',  '+45 days',  'https:\\\/\\\/wpforms.com'],\\n  ['Yoast SEO Premium',    'plugins',  99.00, 'annual',   '+8 days',  'https:\\\/\\\/yoast.com'],\\n  ['Elementor Pro',        'plugins',  59.00, 'annual', '+200 days',  'https:\\\/\\\/elementor.com'],\\n  ['Astra Pro',            'themes',   59.00, 'annual', '+178 days',  'https:\\\/\\\/wpastra.com'],\\n  ['SiteGround GoGeek',    'hosting',  14.99, 'monthly', '+22 days',  'https:\\\/\\\/siteground.com'],\\n  ['Cloudflare Pro',       'saas',     25.00, 'monthly',  '+5 days',  'https:\\\/\\\/cloudflare.com'],\\n  ['Mailgun Email API',    'saas',     35.00, 'monthly', '+12 days',  'https:\\\/\\\/mailgun.com'],\\n  ['Google Workspace',     'saas',     12.00, 'monthly', '+30 days',  'https:\\\/\\\/workspace.google.com'],\\n  ['mybusiness.com',       'domains',  12.99, 'annual',  '+90 days',  'https:\\\/\\\/namecheap.com'],\\n  ['AWS S3 Storage',       'saas',      8.50, 'monthly', '+18 days',  'https:\\\/\\\/aws.amazon.com'],\\n];\\n\\n$item_ids = [];\\nforeach ( $items as $i => $row ) {\\n  $wpdb->insert( $items_table, [\\n    'name'             => $row[0],\\n    'category'         => $row[1],\\n    'cost'             => $row[2],\\n    'currency'         => 'USD',\\n    'billing_cycle'    => $row[3],\\n    'renewal_date'     => gmdate( 'Y-m-d', strtotime( $row[4] ) ),\\n    'status'           => 'active',\\n    'url'              => $row[5],\\n    'is_auto_detected' => 0,\\n  ] );\\n  $item_ids[ $i ] = (int) $wpdb->insert_id;\\n}\\n\\nif ( class_exists( 'RLEDGER_Crypto' ) ) {\\n  $keys = [\\n    [0, 'WPForms Pro License',       'wpfp-7N3K-9X2M-A8FH-PDJ4-Q7K5L9MNV3CB'],\\n    [1, 'Yoast SEO Premium License', 'YSPRM-A8X2-B7K3-CD45-EF67-GH89IJ12'],\\n    [2, 'Elementor Pro License',     'ELP-7K3X9N-2M8B4D-A6F1J5-PQR8-2026'],\\n    [3, 'Astra Pro License',         'ASTRA-9X2K-7N3M-A8B4-PQ1J'],\\n  ];\\n  foreach ( $keys as $k ) {\\n    $encrypted = RLEDGER_Crypto::encrypt( $k[2] );\\n    if ( false !== $encrypted ) {\\n      $wpdb->insert( $keys_table, [\\n        'item_id'     => $item_ids[ $k[0] ] ?? null,\\n        'key_name'    => $k[1],\\n        'license_key' => $encrypted,\\n        'expiry_date' => gmdate( 'Y-m-d', strtotime( '+1 year' ) ),\\n      ] );\\n    }\\n  }\\n}\\n\\n$body = <<<HTML\\n<h2>Royal Ledger &mdash; live demo<\\\/h2>\\n<p>This demo is pre-populated with <strong>10 sample WordPress costs<\\\/strong> across plugins, themes, hosting, domains, and SaaS, plus <strong>4 encrypted license keys<\\\/strong>. Click into the WordPress admin to explore the dashboard, calendar, and vault.<\\\/p>\\n<p><a class=\\\"button button-primary\\\" href=\\\"\\\/wp-admin\\\/admin.php?page=royal-ledger\\\">Open Royal Ledger Dashboard<\\\/a><\\\/p>\\n<h3>What to try<\\\/h3>\\n<ul>\\n  <li><strong>Dashboard<\\\/strong>: Monthly burn (\\\\$131), annual cost (\\\\$1,575), and a doughnut chart of spending by category.<\\\/li>\\n  <li><strong>Cost Items<\\\/strong>: Filter by category or status, search, edit, or delete any of the 10 sample items.<\\\/li>\\n  <li><strong>License Keys<\\\/strong>: AES-256 encrypted vault &mdash; click the eye icon to reveal a key, copy with one click.<\\\/li>\\n  <li><strong>Renewal Calendar<\\\/strong>: Color-coded month view of upcoming renewals so nothing catches you off guard.<\\\/li>\\n  <li><strong>Settings<\\\/strong>: Currency switcher, email reminder settings, full CSV \\\/ JSON export and import.<\\\/li>\\n<\\\/ul>\\n<h3>Real-world use<\\\/h3>\\n<p>Track every cost associated with your WordPress site &mdash; premium plugins, hosting, domains, CDNs, email services, SaaS tools &mdash; in one place. License keys you receive from third-party vendors (WPForms, Yoast, Elementor, etc.) are encrypted with AES-256-CBC + HMAC, derived from your WordPress security salts. No external service, no account, no phone-home.<\\\/p>\\n<p>Log in with <code>admin<\\\/code> \\\/ <code>password<\\\/code>.<\\\/p>\\nHTML;\\n\\nwp_update_post( [\\n  'ID'           => 1,\\n  'post_title'   => 'Royal Ledger \\u2014 Live Demo',\\n  'post_content' => $body,\\n  'post_status'  => 'publish',\\n  'post_author'  => 1,\\n] );\\n\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3517930,"resolution":"1","location":"assets","locale":"","width":1253,"height":738},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3517930,"resolution":"2","location":"assets","locale":"","width":1262,"height":774},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3517930,"resolution":"3","location":"assets","locale":"","width":1256,"height":564},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3517930,"resolution":"4","location":"assets","locale":"","width":1258,"height":813},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3517930,"resolution":"5","location":"assets","locale":"","width":1254,"height":1644},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3530555,"resolution":"6","location":"assets","locale":"","width":508,"height":316}},"screenshots":{"1":"Dashboard with cost summary and category breakdown","2":"Cost items list with filtering and search","3":"License key vault with masked keys","4":"Renewal calendar view","5":"Settings and import\/export","6":"WordPress dashboard widget \u2014 at-a-glance monthly and annual cost totals with upcoming renewals"},"jetpack_post_was_ever_published":false},"plugin_section":[262246],"plugin_tags":[240238,67301,147431,197618,261340],"plugin_category":[],"plugin_contributors":[253970],"plugin_business_model":[],"class_list":["post-302479","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-cost-tracker","plugin_tags-expenses","plugin_tags-license-keys","plugin_tags-renewals","plugin_tags-site-costs","plugin_contributors-royalpluginsteam","plugin_committers-royalpluginsteam","plugin_support_reps-rpteam"],"banners":{"banner":"https:\/\/ps.w.org\/royal-ledger\/assets\/banner-772x250.png?rev=3517930","banner_2x":"https:\/\/ps.w.org\/royal-ledger\/assets\/banner-1544x500.png?rev=3517930","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/royal-ledger\/assets\/icon-128x128.png?rev=3517930","icon_2x":"https:\/\/ps.w.org\/royal-ledger\/assets\/icon-256x256.png?rev=3517930","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-1.png?rev=3517930","caption":"Dashboard with cost summary and category breakdown"},{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-2.png?rev=3517930","caption":"Cost items list with filtering and search"},{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-3.png?rev=3517930","caption":"License key vault with masked keys"},{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-4.png?rev=3517930","caption":"Renewal calendar view"},{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-5.png?rev=3517930","caption":"Settings and import\/export"},{"src":"https:\/\/ps.w.org\/royal-ledger\/assets\/screenshot-6.png?rev=3530555","caption":"WordPress dashboard widget \u2014 at-a-glance monthly and annual cost totals with upcoming renewals"}],"raw_content":"<!--section=description-->\n<p>https:\/\/youtu.be\/UMrWwKqG2V0<\/p>\n\n<p>Royal Ledger is the simple, free WordPress cost tracker that finally answers \"what does my site actually cost?\" Track every recurring expense \u2014 premium plugins, web hosting, domains, CDN, email, SaaS subscriptions \u2014 and securely store the license keys you receive from third-party vendors with AES-256 encryption. No signup, no phone-home, no premium tier, no upsell.<\/p>\n\n<p>Royal Ledger itself is 100% free, fully functional, and has no premium tier, no license check, no usage limits, and no external service. Every feature works out of the box on activation.<\/p>\n\n<p><strong>Stop losing track of what you're paying for.<\/strong><\/p>\n\n<p>Most WordPress site owners have no idea how much their site actually costs. Between premium plugins, hosting, domains, CDNs, email services, and SaaS tools, expenses add up fast. Royal Ledger gives you a clear picture of your total site spend in one place.<\/p>\n\n<h4>What You Can Track<\/h4>\n\n<p>Royal Ledger isn't tied to any specific vendor \u2014 track anything that bills you on a monthly, quarterly, or annual cycle. Common examples:<\/p>\n\n<ul>\n<li><strong>Premium WordPress plugins<\/strong> \u2014 WPForms Pro, Yoast Premium, Elementor Pro, Rank Math Pro, Astra Pro, ACF Pro, Gravity Forms, WP Rocket, Smush Pro, MonsterInsights, OptinMonster, WP Fastest Cache Premium, and any other paid plugin renewal.<\/li>\n<li><strong>WordPress hosting<\/strong> \u2014 HostGator, Hostinger, SiteGround, Bluehost, GoDaddy, WP Engine, Kinsta, Cloudways, Pressable, Pantheon, Flywheel, Liquid Web, A2 Hosting \u2014 managed WordPress, shared, VPS, or dedicated.<\/li>\n<li><strong>Domain registrars<\/strong> \u2014 Namecheap, GoDaddy Domains, Google Domains, Cloudflare Registrar, Hover, Porkbun, Dynadot, Name.com.<\/li>\n<li><strong>CDN and performance<\/strong> \u2014 Cloudflare Pro \/ Business, KeyCDN, BunnyCDN, StackPath, Fastly, Amazon CloudFront.<\/li>\n<li><strong>Security and monitoring<\/strong> \u2014 Sucuri, Wordfence Premium, MalCare, iThemes Security Pro, Patchstack, Jetpack Security.<\/li>\n<li><strong>Email and SMTP<\/strong> \u2014 Google Workspace, Microsoft 365, Mailgun, SendGrid, Postmark, Amazon SES, Brevo (Sendinblue), Resend.<\/li>\n<li><strong>Premium themes<\/strong> \u2014 Astra Pro, GeneratePress Premium, Kadence Pro, Divi (Elegant Themes), Avada, Genesis Pro.<\/li>\n<li><strong>SaaS subscriptions<\/strong> \u2014 anything else tied to your site: page builders, analytics, search, AI services, design tools, file storage, anything billed on a recurring cycle.<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Cost Dashboard<\/strong> - See your monthly burn rate, annual costs, and active subscriptions at a glance<\/li>\n<li><strong>Visual Breakdown<\/strong> - Doughnut chart showing spending by category (plugins, hosting, domains, SaaS, etc.)<\/li>\n<li><strong>Renewal Calendar<\/strong> - Month-by-month calendar view of upcoming renewals so nothing catches you off guard<\/li>\n<li><strong>License Key Vault<\/strong> - Store the license keys you receive from third-party plugin and service vendors with AES-256 encryption. Copy with one click, auto-hides after 30 seconds<\/li>\n<li><strong>Plugin Auto-Detection<\/strong> - Automatically scans your installed plugins and adds them as trackable cost items<\/li>\n<li><strong>Email Reminders<\/strong> - Get notified before renewals are due (configurable: 7, 14, or 30 days ahead)<\/li>\n<li><strong>Export &amp; Import<\/strong> - CSV export for spreadsheets, JSON backup for migration between sites<\/li>\n<li><strong>Dashboard Widget<\/strong> - Quick overview right on your WordPress dashboard<\/li>\n<\/ul>\n\n<h4>Categories<\/h4>\n\n<p>Track costs across six categories:\n* Plugins\n* Themes\n* Hosting\n* Domains\n* SaaS Services\n* Other<\/p>\n\n<h4>Security<\/h4>\n\n<p>License keys are encrypted using AES-256-CBC with HMAC tamper detection, derived from your WordPress security salts. Keys are never stored in plaintext.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Royal Ledger stores all data locally in your WordPress database. No data is sent to external servers. No account required.<\/p>\n\n<h4>External Services<\/h4>\n\n<p>Royal Ledger does not connect to any external services. The plugin makes no outbound HTTP requests, does not call any API, does not check any license server, and does not phone home. All processing \u2014 cost calculations, encryption, plugin scanning, renewal reminders \u2014 happens entirely on your own WordPress site. The \"Plugin Auto-Detection\" feature reads your locally installed plugins via the standard <code>get_plugins()<\/code> WordPress function and uses the existing <code>update_plugins<\/code> site transient that WordPress core already maintains; it sends nothing externally.<\/p>\n\n<h4>GPL Compliance and Free Functionality<\/h4>\n\n<p>Royal Ledger is licensed under GPLv2 or later, and every feature is fully unlocked for every user on activation. There is no free-vs-premium split, no feature gated behind a license key, no trial period, no usage quota, and no time limit. The plugin's source code contains no calls to any license server and no conditional code paths that disable functionality based on payment, registration, or activation status.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>royal-ledger<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu<\/li>\n<li>Go to <strong>Royal Ledger<\/strong> in the admin menu to start tracking costs<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20royal%20ledger%20really%20100%25%20free%3F\"><h3>Is Royal Ledger really 100% free?<\/h3><\/dt>\n<dd><p>Yes. Royal Ledger has no premium tier, no license check, no usage limits, no time limit, and no paid features. Every feature is unlocked the moment you activate the plugin. There is no Pro version to upsell.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>All data is stored in your own WordPress database. Nothing is sent to external servers, no account is required, and the plugin makes zero outbound HTTP requests.<\/p><\/dd>\n<dt id=\"are%20my%20license%20keys%20secure%3F\"><h3>Are my license keys secure?<\/h3><\/dt>\n<dd><p>Yes. License keys are encrypted using AES-256-CBC with HMAC integrity verification before they touch the database. The encryption key is derived from your WordPress security salts (AUTH_KEY and AUTH_SALT), so each site has unique encryption that survives database backups and migrations between hosts.<\/p><\/dd>\n<dt id=\"can%20i%20track%20my%20web%20hosting%20cost%20%28hostgator%2C%20hostinger%2C%20siteground%2C%20wp%20engine%2C%20etc.%29%3F\"><h3>Can I track my web hosting cost (HostGator, Hostinger, SiteGround, WP Engine, etc.)?<\/h3><\/dt>\n<dd><p>Yes. Royal Ledger supports any cost source \u2014 managed WordPress hosting (WP Engine, Kinsta, Pressable, Flywheel, Pantheon), shared hosting (HostGator, Hostinger, SiteGround, Bluehost, GoDaddy, A2 Hosting), VPS, dedicated servers, or anything else billed monthly or annually. Add it as a \"Hosting\" cost item with the renewal date and Royal Ledger handles the rest.<\/p><\/dd>\n<dt id=\"can%20i%20store%20license%20keys%20for%20plugins%20like%20wpforms%2C%20yoast%2C%20elementor%2C%20rank%20math%2C%20or%20gravity%20forms%3F\"><h3>Can I store license keys for plugins like WPForms, Yoast, Elementor, Rank Math, or Gravity Forms?<\/h3><\/dt>\n<dd><p>Yes. The License Key Vault is designed exactly for this use case. Store the keys you received from any third-party plugin or service vendor \u2014 WPForms Pro, Yoast Premium, Elementor Pro, Rank Math Pro, Astra Pro, ACF Pro, Gravity Forms, WP Rocket, MonsterInsights, OptinMonster, Sucuri, Wordfence Premium, and so on. Keys are encrypted at rest, masked in the UI, and revealed with one click for copy\/paste when you need them.<\/p><\/dd>\n<dt id=\"does%20royal%20ledger%20send%20any%20data%20to%20external%20services%3F\"><h3>Does Royal Ledger send any data to external services?<\/h3><\/dt>\n<dd><p>No. The plugin makes no outbound HTTP requests, does not call any API, does not check any license server, and does not phone home. All processing \u2014 cost calculations, encryption, plugin scanning, renewal reminders \u2014 happens entirely on your own WordPress site. There is nothing to opt out of because there is nothing being sent.<\/p><\/dd>\n<dt id=\"will%20royal%20ledger%20slow%20down%20my%20site%3F\"><h3>Will Royal Ledger slow down my site?<\/h3><\/dt>\n<dd><p>No. Royal Ledger only loads its admin assets on its own admin pages. There is zero frontend impact \u2014 no scripts, styles, or database queries run on visitor-facing pages. The optional WordPress dashboard widget runs a single small SQL query.<\/p><\/dd>\n<dt id=\"how%20do%20email%20renewal%20reminders%20work%3F\"><h3>How do email renewal reminders work?<\/h3><\/dt>\n<dd><p>The plugin schedules a daily WordPress cron event. Each day it checks for cost items renewing within your alert window (7, 14, or 30 days) and sends a single summary email to your chosen recipient. Royal Ledger uses WordPress's standard <code>wp_mail()<\/code> function and detects an active SMTP plugin (Royal SMTP, WP Mail SMTP, Post SMTP, FluentSMTP, Easy WP SMTP, Mailgun, SendGrid, Gmail SMTP, MailerSend, etc.) so you can confirm reliable delivery before relying on the alerts.<\/p><\/dd>\n<dt id=\"can%20i%20import%20my%20existing%20cost%20spreadsheet%3F\"><h3>Can I import my existing cost spreadsheet?<\/h3><\/dt>\n<dd><p>Yes. Royal Ledger imports CSV (with the same columns as the export) and JSON backup files. Paste CSV data directly into the import field \u2014 useful for migrating from a spreadsheet you've been keeping in Google Sheets, Excel, Notion, or Airtable.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20data%3F\"><h3>Can I export my data?<\/h3><\/dt>\n<dd><p>Yes. CSV export gives you a clean spreadsheet of cost items (license keys excluded for safety). JSON full backup includes every cost item plus encrypted license keys for migration to a new WordPress install or off-site backup.<\/p><\/dd>\n<dt id=\"will%20royal%20ledger%20auto-detect%20my%20installed%20plugins%3F\"><h3>Will Royal Ledger auto-detect my installed plugins?<\/h3><\/dt>\n<dd><p>Yes. The Plugin Auto-Detection scanner reads your installed plugins via WordPress's standard <code>get_plugins()<\/code> function and adds paid or custom plugins as cost items. Free plugins from wordpress.org are skipped automatically so the scanner only surfaces things you're likely paying for.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20deactivate%20or%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I deactivate or uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deactivation preserves all cost items and encrypted license keys. Full uninstall (Plugins \u2192 Delete) removes the plugin's database tables and options \u2014 make a JSON backup first if you want to keep the data.<\/p><\/dd>\n<dt id=\"does%20royal%20ledger%20work%20on%20wordpress%20multisite%3F\"><h3>Does Royal Ledger work on WordPress multisite?<\/h3><\/dt>\n<dd><p>Yes, on a per-site basis. Each site in a multisite network tracks its own costs independently with its own database tables and settings.<\/p><\/dd>\n<dt id=\"can%20agencies%20use%20royal%20ledger%20to%20track%20costs%20across%20multiple%20client%20sites%3F\"><h3>Can agencies use Royal Ledger to track costs across multiple client sites?<\/h3><\/dt>\n<dd><p>Yes. Install Royal Ledger on each client site and use the JSON export to consolidate cost data into a master spreadsheet, or treat each client site's costs separately for transparent monthly invoicing. Royal Ledger is GPL \u2014 no per-site fees.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>No. Royal Ledger is intentionally a single, fully-featured free plugin. There is no upsell, no nag, no feature gate.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Feature: SMTP plugin detection on the Email Alerts settings page so users know whether renewal alerts will deliver reliably.<\/li>\n<li>Docs: Clarified in description and feature list that the License Key Vault stores license keys the user receives from third-party plugin and service vendors, not any kind of license check on Royal Ledger itself.<\/li>\n<li>Docs: Added an \"External Services\" section confirming the plugin makes no outbound HTTP requests and does not connect to any external service.<\/li>\n<li>Docs: Added a \"GPL Compliance and Free Functionality\" section confirming every feature is unlocked for every user on activation.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: WordPress Plugin Check (PCP) compliance \u2014 all warnings resolved<\/li>\n<li>Fix: Prefixed all global variables in view files (WordPress naming convention)<\/li>\n<li>Fix: Added phpcs:ignore annotations for safe database table interpolation<\/li>\n<li>Fix: Corrected nonce verification ignore placement in AJAX handlers<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Improved: Plugin scanner now skips free wordpress.org plugins automatically<\/li>\n<li>Improved: Only paid\/custom plugins are added as cost items (reduces clutter)<\/li>\n<li>Improved: Scan feedback message shows how many free plugins were skipped<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Cost tracking with 6 categories<\/li>\n<li>AES-256 encrypted license key vault<\/li>\n<li>Renewal calendar with color-coded dots<\/li>\n<li>Plugin auto-detection scanner<\/li>\n<li>Email renewal reminders<\/li>\n<li>CSV and JSON export\/import<\/li>\n<li>Dashboard widget<\/li>\n<\/ul>","raw_excerpt":"Track WordPress site costs (plugins, hosting, domains, CDN, SaaS) and securely vault license keys with AES-256 encryption. 100% free, no signup.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302479"}],"author":[{"embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/royalpluginsteam"}],"wp:attachment":[{"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302479"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302479"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302479"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302479"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302479"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-do.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}