[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fn1zBbt7t63FUZQrHN8IjBKGc3Ak8AkHrdoX-kRa_eBE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":37,"analysis":130,"fingerprints":215},"metadata-viewer","Metadata Viewer","2.1.1","PluginizeLab","https:\u002F\u002Fprofiles.wordpress.org\u002Fpluginizelab\u002F","\u003Cp>The Metadata Viewer plugin displays post, user (ie. posts, pages, and custom post types, user, WooCommerce products & orders) meta keys and their values at the bottom of the post & user editing page. There is also integrated realtime search feature.\u003Cbr \u002F>\nJust install a single plugin to solve multiple purpose like to show posts, pages, custom post types & user meta.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Posts Metadata Viewer\u003C\u002Fli>\n\u003Cli>Custom Post Types Metadata Viewer\u003C\u002Fli>\n\u003Cli>Pages Metadata Viewer\u003C\u002Fli>\n\u003Cli>Users Metadata Viewer\u003C\u002Fli>\n\u003Cli>WooCommerce Products Metadata Viewer\u003C\u002Fli>\n\u003Cli>WooCommerce Orders Metadata Viewer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Up-Comming Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Comment Metadata Viewer\u003C\u002Fli>\n\u003Cli>Term Metadata Viewer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>If you find this plugin useful, consider supporting its development through a \u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Faiarnob\" rel=\"nofollow ugc\">donation\u003C\u002Fa>.\u003C\u002Fp>\n","A plugin or theme developer can view metadata by this plugin easily.",300,2682,100,2,"2025-12-24T10:56:00.000Z","6.9.4","6.0.0","7.4",[20,21,22,23,24],"custom-post-type-meta","meta-viewer","metadata","post-meta","user-meta","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmetadata-viewer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmetadata-viewer.2.1.1.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"pluginizelab",1,30,94,"2026-04-06T09:28:03.095Z",[38,60,78,95,113],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":57,"download_link":58,"security_score":59,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"custom-metadata","Custom Metadata Manager","0.7.1","Mohammad Jangda","https:\u002F\u002Fprofiles.wordpress.org\u002Fbatmoo\u002F","\u003Cp>An easy way to add custom fields to your object types (post, pages, custom post types, users) & to generate option pages.\u003C\u002Fp>\n\u003Cp>The goal of this plugin is to help you rapidly build familiar, intuitive interfaces for your users in a very WordPress-native way.\u003C\u002Fp>\n\u003Cp>The custom field panel is nice, but not quite the easiest thing for users to work with. Adding your own metaboxes and fields involves a lot of time and repetitive code that could be better used elsewhere.\u003C\u002Fp>\n\u003Cp>This plugin handles all that heavy-lifting for you behind-the-scenes, so that you can focus on more on building out and connecting your data rather than all the minor details. This single piece of code \u003Ccode>x_add_metadata_field( 'my-field-name', 'post' );\u003C\u002Fcode> generates a metabox with a text field inside it, with the necessary hooks to save the entered values.\u003C\u002Fp>\n\u003Cp>The API is similar to that used for registering custom post types and taxonomies so it should be familiar territory.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: The plugin now requires WordPress 3.3+ (chiefly for the wysiwyg & datepicker fields)\u003C\u002Fp>\n\u003Cp>Like what you see? Want more field types and features added? \u003Ca href=\"mailto:tech@stresslimitdesign.com\" rel=\"nofollow ugc\">Get in touch\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjkudish\u002Fcustom-metadata\" rel=\"nofollow ugc\">contribute on github\u003C\u002Fa>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cem>See “Other Notes” section for usage information\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch4>Object Types\u003C\u002Fh4>\n\u003Cp>The main idea behind this plugin is to have a single API to work with regardless of the object type. Currently, Custom Metadata Manager works with \u003Ccode>user\u003C\u002Fcode>, \u003Ccode>comment\u003C\u002Fcode> and any built-in or custom post types, e.g. \u003Ccode>post\u003C\u002Fcode>, \u003Ccode>page\u003C\u002Fcode>, etc.\u003C\u002Fp>\n\u003Ch4>Registering your fields\u003C\u002Fh4>\n\u003Cp>For the sake of performance (and to avoid potential race conditions), always register your custom fields in the \u003Ccode>admin_menu\u003C\u002Fcode> hook. This way your front-end doesn’t get bogged down with unnecessary processing and you can be sure that your fields will be registered safely. Here’s a code sample:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'admin_menu', 'my_theme_init_custom_fields' );\n\nfunction my_theme_init_custom_fields() {\n    if( function_exists( 'x_add_metadata_field' ) && function_exists( 'x_add_metadata_group' ) ) {\n        x_add_metadata_field( 'my_field', array( 'user', 'post' ) );\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Getting the data\u003C\u002Fh4>\n\u003Cp>You can get the data as you normally would using the \u003Ccode>get_metadata\u003C\u002Fcode> function. Custom Metadata manager stores all data using the WordPress metadata APIs using the slug name you provide. That way, even if you decide to deactivate this wonderful plugin, your data is safe and accessible. For options, you can use \u003Ccode>get_option\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$value = get_metadata( 'post', get_the_ID(), 'featured', true ); \u002F\u002F Returns post metadata value for the field 'featured'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Adding Metadata Groups\u003C\u002Fh4>\n\u003Cp>A group is essentially a metabox that groups together multiple fields. Register the group before any fields\u003C\u002Fp>\n\u003Cpre>\u003Ccode>x_add_metadata_group( $slug, $object_types, $args );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Parameters\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$slug\u003C\u002Fcode> (string) The key under which the metadata will be stored.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$object_types\u003C\u002Fcode> (string|array) The object types to which this field should be added. Supported: post, page, any custom post type, user, comment.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Options and Overrides\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'label' => $group_slug, \u002F\u002F Label for the group\n    'context' => 'normal', \u002F\u002F (post only)\n    'priority' => 'default', \u002F\u002F (post only)\n    'autosave' => false, \u002F\u002F (post only) Should the group be saved in autosave? NOT IMPLEMENTED YET!\n    'exclude' => '', \u002F\u002F see below for details\n    'include' => '', \u002F\u002F see below for details\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Adding Metadata Fields\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>x_add_metadata_field( $slug, $object_types, $args );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Parameters\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>$slug\u003C\u002Fcode> (string) The key under which the metadata will be stored. For post_types, prefix the slug with an underscore (e.g. \u003Ccode>_hidden\u003C\u002Fcode>) to hide it from the the Custom Fields box.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$object_types\u003C\u002Fcode> (string|array) The object types to which this field should be added. Supported: post, page, any custom post type, user, comment.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Options and Overrides\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'group' => '', \u002F\u002F The slug of group the field should be added to. This needs to be registered with x_add_metadata_group first.\n    'field_type' => 'text', \u002F\u002F The type of field; 'text', 'textarea', 'password', 'checkbox', 'radio', 'select', 'upload', 'wysiwyg', 'datepicker', 'taxonomy_select', 'taxonomy_radio'\n    'label' => '', \u002F\u002F Label for the field\n    'description' => '', \u002F\u002F Description of the field, displayed below the input\n    'values' => array(), \u002F\u002F Values for select and radio buttons. Associative array\n    'display_callback' => '', \u002F\u002F Callback to custom render the field\n    'sanitize_callback' => '', \u002F\u002F Callback to sanitize data before it's saved\n    'display_column' => false, \u002F\u002F Add the field to the columns when viewing all posts\n    'display_column_callback' => '', \u002F\u002F Callback to render output for the custom column\n    'required_cap' => '', \u002F\u002F The cap required to view and edit the field\n    'exclude' => '', \u002F\u002F see below for details\n    'include' => '', \u002F\u002F see below for details\n    'multiple' => false, \u002F\u002F true or false, can the field be duplicated with a click of a button?\n    'readonly' => false, \u002F\u002F makes the field be readonly (works with text, textarea, password, upload and datepicker fields)\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Include \u002F Exclude\u003C\u002Fh4>\n\u003Cp>You can exclude fields and groups from specific object. For example, with the following, field-1 will show up for all posts except post #123:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'exclude' => 123\n);\nx_add_metadata_field( 'field-1', 'post', $args );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Alternatively, you can limit (“include”) fields and groups to specific objects. The following will ”only” show group-1 to post #456:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'include' => 123\n);\nx_add_metadata_group( 'group-1', 'post', $args );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can pass in an array of IDs:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$args = array(\n    'include' => array( 123, 456, 789 );\n);\n\nWith multiple object types, you can pass in an associative array:\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>$args = array(\u003Cbr \u002F>\n    ‘exclude’ => array(\u003Cbr \u002F>\n        ‘post’ => 123,\u003Cbr \u002F>\n        ‘user’ => array( 123, 456, 789 )\u003Cbr \u002F>\n    )\u003Cbr \u002F>\n);\u003C\u002Fp>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cp>For examples, please see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjkudish\u002Fcustom-metadata\u002Fblob\u002Fmaster\u002Fcustom_metadata_examples.php\" rel=\"nofollow ugc\">custom_metadata_examples.php\u003C\u002Fa> file included with the plugin. Add a constant to your wp-config.php called \u003Ccode>CUSTOM_METADATA_MANAGER_DEBUG\u003C\u002Fcode> with a value of \u003Ccode>true\u003C\u002Fcode> to see it in action:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'CUSTOM_METADATA_MANAGER_DEBUG', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>TODOs\u003C\u002Fh4>\n\u003Cp>Stuff we have planned for the future:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Ability to clone (multiple) groups of fields\u003C\u002Fli>\n\u003Cli>Ability Pass in attributes for built-in fields (e.g. class, data-*, etc.)\u003C\u002Fli>\n\u003Cli>Additional field types (multi-select, multi-checkbox)\u003C\u002Fli>\n\u003Cli>Limit or exclude groups and fields using a custom callback\u003C\u002Fli>\n\u003Cli>Autosave support for fields on post types\u003C\u002Fli>\n\u003Cli>Client- and server-side validation support\u003C\u002Fli>\n\u003Cli>Add groups and fields to Quick Edit\u003C\u002Fli>\n\u003C\u002Ful>\n","An easy way to add custom fields to your object types (post, pages, custom post types, users)",800,16509,88,5,"2012-07-11T19:02:00.000Z","3.4.2","3.3","",[39,55,23,56,24],"custom-metadata-manager-metadata","postmeta","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fcustom-metadata\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-metadata.0.7.1.zip",85,{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":13,"downloaded":68,"rating":27,"num_ratings":27,"last_updated":69,"tested_up_to":16,"requires_at_least":70,"requires_php":53,"tags":71,"homepage":76,"download_link":77,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"puredevs-any-meta-inspector","PureDevs Any Meta Inspector","1.0.2","PureDevs","https:\u002F\u002Fprofiles.wordpress.org\u002Fpuredevs\u002F","\u003Cp>Have you ever wanted to inspect the metadata associated with a post?\u003Cbr \u002F>\nPureDevs Any Meta Inspector is a free, lightweight plugin that allows you to —\u003Cbr \u002F>\nInspect meta keys of posts, pages, custom post type posts, custom taxonomy terms, users and comments\u003Cbr \u002F>\nInspect unserialized values of posts, pages, custom post type posts, custom taxonomy terms, users and comments\u003C\u002Fp>\n","PureDevs Any Meta Inspector shows all the meta keys and their unserialized values in a metabox for posts, pages, terms, comments, and users.",2597,"2026-02-18T07:04:00.000Z","3.5",[72,73,22,74,75],"category-metadata","comment-metadata","post-metadata","user-metadata","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpuredevs-any-meta-inspector","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpuredevs-any-meta-inspector.1.0.2.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":34,"downloaded":86,"rating":27,"num_ratings":27,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":53,"download_link":94,"security_score":59,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"ascendoor-metadata-manager","Ascendoor Metadata Manager","1.0.0","Ascendoor","https:\u002F\u002Fprofiles.wordpress.org\u002Fascendoor\u002F","\u003Cp>\u003Cstrong>\u003Cem>Ascendoor Metadata Manager\u003C\u002Fem>\u003C\u002Fstrong> plugin will display the metadata (metabox data or custom fields data) associated to the particular posts, terms, users and comments (including for custom post types and custom taxonomy terms).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Cem>Ascendoor Metadata Manager\u003C\u002Fem>\u003C\u002Fstrong> plugin will list all the metadata with its meta key, meta value and action to \u003Cem>delete\u003C\u002Fem> or \u003Cem>edit\u003C\u002Fem> the meta key and value directly from the backend (edit page). The plugin also provides the settings option (Admin Dashboard > Settings > Ascendoor Metadata Manager) for you to disable\u002Fenable the metabox manager for each post types, taxonomies, users and comments section.\u003C\u002Fp>\n\u003Ch4>Options Available For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Posts\u003C\u002Fli>\n\u003Cli>Pages\u003C\u002Fli>\n\u003Cli>Custom Post Types (the custom post types that are accessible\u002Fvisible in backend i.e. with “show_ui = true” option)\u003C\u002Fli>\n\u003Cli>Categories\u003C\u002Fli>\n\u003Cli>Tags\u003C\u002Fli>\n\u003Cli>Custom Taxonomies (the custom taxonomies that are accessible\u002Fvisible in backend i.e. with “show_ui = true” option)\u003C\u002Fli>\n\u003Cli>Users\u003C\u002Fli>\n\u003Cli>Comments\u003C\u002Fli>\n\u003C\u002Ful>\n","A great plugin to display all metadata related to the posts, pages, custom post types, terms, custom taxonomy terms, users and comments that can be us &hellip;",1392,"2021-10-28T07:12:00.000Z","5.8.13","5.0","7.0",[20,92,22,23,93],"meta","term-meta","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fascendoor-metadata-manager.1.0.0.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":13,"num_ratings":33,"last_updated":105,"tested_up_to":16,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":111,"download_link":112,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"view-user-metadata","View User Metadata","1.2.2","Sully","https:\u002F\u002Fprofiles.wordpress.org\u002Fss88_uk\u002F","\u003Cp>Introducing our new lightweight WordPress plugin – View User Metadata!\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLgWdTlLw8BQ?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>This plugin adds a simple toggle button to the user edit screen, allowing administrators to easily view metadata associated with the user they are currently viewing. Metadata includes all data attached to a user account. Administrator’s can also delete the usermeta.\u003C\u002Fp>\n\u003Cp>This plugin is perfect for developers where metadata is important to view but doesn’t need to be displayed at all times.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n– Toggle to show\u002Fhide user data\u003Cbr \u002F>\n– Click-to-focus on any row\u003Cbr \u002F>\n– Delete a key\u002Fvalue pair\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Check out our other plugins:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>🎉 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmedia-library-file-size\u002F\" rel=\"ugc\">Media Library File Size\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>✨ \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsingle-post-page-export\u002F\" rel=\"ugc\">Export Single Post Page\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>🔒 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftwo-factor-2fa-via-email\u002F\" rel=\"ugc\">Two Factor (2FA) Authentication via Email\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>🔠 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fenable-turnstile-cloudflare-for-gravity-forms\u002F\" rel=\"ugc\">Enable Turnstile (Cloudflare) for Gravity Forms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>⭐️⭐️⭐️⭐️⭐️ \u003Ca href=\"https:\u002F\u002Fss88.us\u002Fplugins\u002Fgravity-forms-freescout?utm_campaign=OtherPlugins\" rel=\"nofollow ugc\">Gravity Forms to FreeScout\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","A lightweight plugin that allows you to view user metadata, export them CSV or JSON, or delete key\u002Fvalue pairs.",1000,12103,"2026-02-05T16:58:00.000Z","4.6","5.6",[109,24,110,75],"metdata","user-meta-data","https:\u002F\u002Fneoboffin.com\u002Fplugins\u002Fview-user-metadata","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fview-user-metadata.1.2.2.zip",{"slug":114,"name":115,"version":63,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":13,"num_ratings":122,"last_updated":123,"tested_up_to":124,"requires_at_least":70,"requires_php":53,"tags":125,"homepage":128,"download_link":129,"security_score":59,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"cleanup-duplicate-meta","Cleanup Duplicate Meta","Tonya Mork","https:\u002F\u002Fprofiles.wordpress.org\u002Fhellofromtonya\u002F","\u003Cp>There are times when your database gets filled up with duplicate entries that you may not want.  Cleanup Duplicate Meta allows you to check for any duplicates in either the Post Meta or User Meta tables.  Then if you want to get rid of them, simply click on the Cleanup button and Cleanup Duplicate Meta deletes the duplicates leaving either the first or last meta (you select which).\u003C\u002Fp>\n\u003Cp>The interface is simple and easy to use:\u003C\u002Fp>\n\u003Col>\n\u003Cli>‘Check for Duplicates’ queries the database and then displays all the duplicates found.\u003C\u002Fli>\n\u003Cli>‘Count Duplicates’ counts all the duplicates found in the database (i.e. a total count).\u003C\u002Fli>\n\u003Cli>The ‘Cleanup’ buttons trigger a SQL query to run, which deletes each of the duplicate entries, leaving either the first or last one (per your selection) in the database.  All non-duplicates remain untouched by the plugin.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fcleanup-duplicate-meta\u002Fscreenshots\u002F\" rel=\"ugc\">screenshots tab\u003C\u002Fa> for more details.\u003C\u002Fp>\n","Cleanup Duplicate Meta gives you a tool to check for and delete duplicate Post and\u002For User Meta entries in the database tables.",200,9629,11,"2015-05-09T11:17:00.000Z","4.2.39",[126,127,92,23,24],"database-cleanup","duplicate-meta","http:\u002F\u002Fwpdevelopersclub.com\u002Fwordpress-plugins\u002Fcleanup-duplicate-meta\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcleanup-duplicate-meta.1.0.2.zip",{"attackSurface":131,"codeSignals":179,"taintFlows":207,"riskAssessment":208,"analyzedAt":214},{"hooks":132,"ajaxHandlers":175,"restRoutes":176,"shortcodes":177,"cronEvents":178,"entryPointCount":27,"unprotectedCount":27},[133,140,144,149,153,157,160,166,168,172],{"type":134,"name":135,"callback":136,"priority":137,"file":138,"line":139},"action","init","register_all_scripts",10,"includes\\Assets.php",15,{"type":134,"name":141,"callback":142,"priority":137,"file":138,"line":143},"admin_enqueue_scripts","enqueue_admin_scripts",18,{"type":134,"name":145,"callback":146,"file":147,"line":148},"plugins_loaded","init_plugin","includes\\MetadataViewer.php",52,{"type":134,"name":150,"callback":151,"file":147,"line":152},"woocommerce_flush_rewrite_rules","flush_rewrite_rules",53,{"type":134,"name":135,"callback":154,"priority":155,"file":147,"line":156},"init_classes",4,161,{"type":134,"name":145,"callback":158,"file":147,"line":159},"after_plugins_loaded",162,{"type":134,"name":161,"callback":162,"priority":163,"file":164,"line":165},"add_meta_boxes","adding_metadata_viewer_meta_box",999,"includes\\OrderMetaData.php",20,{"type":134,"name":161,"callback":162,"priority":163,"file":167,"line":165},"includes\\PostMetaData.php",{"type":134,"name":169,"callback":170,"priority":163,"file":171,"line":165},"edit_user_profile","adding_metadata_viewer_meta_box_on_profile","includes\\UserMetaData.php",{"type":134,"name":173,"callback":170,"priority":163,"file":171,"line":174},"show_user_profile",21,[],[],[],[],{"dangerousFunctions":180,"sqlUsage":181,"outputEscaping":183,"fileOperations":27,"externalRequests":27,"nonceChecks":27,"capabilityChecks":33,"bundledLibraries":206},[],{"prepared":27,"raw":27,"locations":182},[],{"escaped":137,"rawEcho":122,"locations":184},[185,189,191,193,195,197,198,200,201,203,205],{"file":186,"line":187,"context":188},"templates\\metadata-viewer-table.php",22,"raw output",{"file":186,"line":190,"context":188},23,{"file":186,"line":192,"context":188},24,{"file":186,"line":194,"context":188},44,{"file":186,"line":196,"context":188},45,{"file":186,"line":196,"context":188},{"file":199,"line":187,"context":188},"templates\\order-metadata-viewer-table.php",{"file":199,"line":190,"context":188},{"file":199,"line":202,"context":188},42,{"file":199,"line":204,"context":188},43,{"file":199,"line":204,"context":188},[],[],{"summary":209,"deductions":210},"The metadata-viewer plugin version 2.1.1 exhibits a generally strong security posture based on the provided static analysis. The absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly limits the attack surface.  Furthermore, the analysis indicates all SQL queries utilize prepared statements, and there are no file operations or external HTTP requests, which are common sources of vulnerabilities.  The presence of capability checks is a positive sign for access control.\n\nHowever, a significant concern arises from the output escaping analysis, where only 48% of outputs are properly escaped. This suggests a potential for cross-site scripting (XSS) vulnerabilities if user-supplied data is reflected in the output without adequate sanitization. The lack of nonce checks on any entry points, while limited by the small attack surface, could be a concern if new entry points were to be introduced in future versions.\n\nThe plugin's vulnerability history is clean, with no recorded CVEs. This, combined with the apparent lack of critical issues in the static analysis (no dangerous functions, no critical taint flows), suggests a well-maintained codebase for its current state. Despite the positive historical and static analysis indicators, the unescaped output remains the primary actionable security concern.",[211],{"reason":212,"points":213},"Low output escaping percentage",6,"2026-03-16T19:55:49.462Z",{"wat":216,"direct":227},{"assetPaths":217,"generatorPatterns":221,"scriptPaths":222,"versionParams":223},[218,219,220],"\u002Fwp-content\u002Fplugins\u002Fmetadata-viewer\u002Fassets\u002Fadmin\u002Fjs\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Fmetadata-viewer\u002Fassets\u002Fadmin\u002Fjs\u002Fhighlight.js","\u002Fwp-content\u002Fplugins\u002Fmetadata-viewer\u002Fassets\u002Fadmin\u002Fcss\u002Fstyle.css",[],[218,219],[224,225,226],"metadata-viewer\u002Fassets\u002Fadmin\u002Fjs\u002Fscript.js?ver=","metadata-viewer\u002Fassets\u002Fadmin\u002Fjs\u002Fhighlight.js?ver=","metadata-viewer\u002Fassets\u002Fadmin\u002Fcss\u002Fstyle.css?ver=",{"cssClasses":228,"htmlComments":229,"htmlAttributes":230,"restEndpoints":231,"jsGlobals":232,"shortcodeOutput":233},[],[],[],[],[],[]]