[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fmgl-ERfvag4coE0qkWeta5YD3PbWSsLIlEy6Dcfq1Qs":3,"$fDNy3Md2eKRMtkgP9rKnQNWhFcJOIMPpglVy4PeWFmi0":396,"$fhZUaKWgzjzSSRoik836AbWEiQaPzOQTUYIxFtvs2hvw":400},{"slug":4,"name":5,"version":6,"author":5,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":12,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"discovery_status":30,"vulnerabilities":31,"developer":32,"crawl_stats":28,"alternatives":36,"analysis":128,"fingerprints":369},"uhmi","Uhmi","1.1","https:\u002F\u002Fprofiles.wordpress.org\u002Fuhmi\u002F","\u003Cp>With Uhmi you can monetize your content by selling your articles, videos, music, podcasts and any other type of content for any price you want – from 1 cent. Amp up your service with features such as donations, Pay What You Want, subscriptions and many more.\u003C\u002Fp>\n\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\u002FP_-jgAIgBr8?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>\n","Monetize your content by selling your articles, videos, music, podcasts and any other type of content for any price you want.",10,1368,100,1,"2019-11-13T14:08:00.000Z","5.3.21","4.7","5.6",[19,20,21,22,23],"content","micro-payments","micropayments","microtransactions","monetize","https:\u002F\u002Fuhmi.io\u002Fwordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fuhmi.1.1.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":4,"display_name":5,"profile_url":7,"plugin_count":13,"total_installs":10,"avg_security_score":26,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},30,84,"2026-05-20T06:53:56.612Z",[37,55,73,91,111],{"slug":38,"name":39,"version":40,"author":39,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":27,"num_ratings":27,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":49,"tags":50,"homepage":53,"download_link":54,"security_score":12,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"exodox","Exodox","1.1.0","https:\u002F\u002Fprofiles.wordpress.org\u002Fexodox\u002F","\u003Cp>Exodox is a unique service for anyone publishing on the web and gives you the opportunity to make money from your web content. Using the Exodox plugin you can lock selected posts and pages on your WordPress site, which your readers can then unlock with a one-off payment. You decide which links you want to lock and to which price. Every month your money is paid out to you.\u003C\u002Fp>\n\u003Cp>You can read more and create your Exodox account at \u003Ca href=\"https:\u002F\u002Fwww.exodox.link\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.exodox.link\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>A complement to adverts, collaborations and subscriptions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Exodox offers a new source of income for anyone who publishes on the web:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Bloggers can get paid for their creativity as a complement to advertising and sponsorship.\u003C\u002Fli>\n\u003Cli>News sites and magazines can attract new customers as an alternative to subscriptions.\u003C\u002Fli>\n\u003Cli>Non-profit sites and associations can offer  optional ways to donate by offering access to select content such as interviews, meetings, video and competitions among other things.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>With Exodox, your consumers and followers have the opportunity to show appreciation for your commitment, giving you an added motivation to create more content. The possibilities are endless!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>One-off payments without the need for subscription\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>With an Exodox account, it’s easy and quick to pay for access to your exclusive web content. There are no subscriptions, fixed fees, startup fees or binding periods. If you do not use the Exodox service, no costs are incurred.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>A recent survey showed that 75% who encounter a so-called payment wall with the requirement to start a subscription have left the page. Had they instead been given the opportunity to make a fair one-off payment, 73% would have chosen this.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>You decide!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You decide which posts and pages you want to lock, the price and how long your readers can have access for. Your readers only pay for the specific links they choose to unlock.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Only one account needed\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Exodox works much like a global transaction platform. The big advantage is that you only need one account, which gives you the opportunity to access content from all connected internet media and websites globally, such as newspapers, magazines, fan sites, blogs and more.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Free of charge and free of risk\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>An Exodox account is completely free of charge and without any binding period. In other words, you pay no running costs and nothing for your account. As a publisher this means that your use of Exodox is completely risk-free. If you, for some reason do not sell, there is no financial loss either.\u003C\u002Fp>\n\u003Ch3>Testimonials from Exodox publishers:\u003C\u002Fh3>\n\u003Cp>\u003Cem>“With Exodox, my readers can choose whether to pay for my exclusive content or read my regular content for free.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“As a person, I like to try new ways that allow me to develop. That’s why I decided to use Exodox on my blog.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“I think it is important to offer variation on my blog and create content that is interesting to my readers. With an extra income, I can spend more time developing my content.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“It is very easy to lock a link on my blog, it takes at most a minute! If you are a blogger I definitely think you should try Exodox.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“Exodox gives our bloggers an opportunity to make money in addition to traditional sources of revenue such as advertising and partnerships. It’s a good complement.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“The installation of the plugin was easy and it was quick to get started with the account. The fact that the technology works is really important to feel secure when publishing my posts.”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>“Exodox is free to use, so you don’t lose anything by trying it!”\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cdiv class=\"fb-video\" data-allowfullscreen=\"true\" data-href=\"https:\u002F\u002Fwww.facebook.com\u002Fexodox.link\u002Fvideos\u002F2629783500614077\u002F\" style=\"background-color: #fff; display: inline-block;\">\u003C\u002Fdiv>\n\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This Exodox plugin connects to the external Exodox Link host application.\u003C\u002Fp>\n\u003Cp>The Exodox Link host application provides the following services for the plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Management of Exodox accounts and the login and authentication of users\u003C\u002Fli>\n\u003Cli>Payment handling\u003C\u002Fli>\n\u003Cli>Information of what user have access to what content\u003C\u002Fli>\n\u003Cli>Locking of links and associated information\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Exodox link provides the following information to the plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The login status and associated user Exodox user id of visitors to your site\u003C\u002Fli>\n\u003Cli>Information of locks on your site\u003C\u002Fli>\n\u003Cli>Exodox user access to locked content\u003C\u002Fli>\n\u003Cli>If the optional api key is set in the plugin settings the Exodox host may also provide information about the host user and settings to the plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The Exodox plugin provided the following information to the Exodox host:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The Exodox user id that owns specific links on the site, this is used to ensure no other user may lock that link.\u003C\u002Fli>\n\u003Cli>When a unknown user visits the site. the information is used to check if the visitor is a logged in Exodox user.\u003C\u002Fli>\n\u003Cli>Exodox user requests to unlock content.\u003C\u002Fli>\n\u003Cli>If the optional api key is set in the plugins settings the plugin may provide Exodox lock and update requests with url, price and duration.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Exodox Link is provided by “Exodox Factory AB”. Terms of use and privacy policy can be found here: \u003Ca href=\"https:\u002F\u002Fapp.exodox.link\u002Fpublicprivacypolicy\" rel=\"nofollow ugc\">privacy policy\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fapp.exodox.link\u002Fpublicterms\" rel=\"nofollow ugc\">general terms and conditions\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.exodox.link\u002Fterms-and-conditions\u002F\" rel=\"nofollow ugc\">user terms and conditions\u003C\u002Fa>.\u003C\u002Fp>\n","With Exodox you can earn money from your web content, by locking access to selected posts and pages, which readers can unlock with a one-off payment.",70,2096,"2025-06-10T12:32:00.000Z","6.8.5","5.2","7.4",[38,51,20,23,52],"lock-post","paywall","https:\u002F\u002Fexodox.link","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexodox.1.1.0.zip",{"slug":56,"name":57,"version":58,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":10,"downloaded":63,"rating":27,"num_ratings":27,"last_updated":64,"tested_up_to":65,"requires_at_least":66,"requires_php":17,"tags":67,"homepage":70,"download_link":71,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":72},"fluid","Fluid","1.0.0","Paul Bearne","https:\u002F\u002Fprofiles.wordpress.org\u002Fpbearne\u002F","\u003Cp>\u003Ciframe loading=\"lazy\" title=\"Publishers Expand Your Monetization Reach with Fluid.\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F283521499?dnt=1&app_id=122963\" width=\"750\" height=\"422\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\">\u003C\u002Fiframe>\u003C\u002Fp>\n\u003Ch3>Expand Your Monetization Reach\u003C\u002Fh3>\n\u003Cp>Capture revenues beyond advertising and traditional paywalls. Fluid is a new revenue partner for publishers. Fluid enables you to create new direct revenues from your readers and audience.\u003C\u002Fp>\n\u003Cp>With Fluid readers can pay to access a single article, video and more. You decide. Fluid is completely turnkey.\u003C\u002Fp>\n\u003Cp>Existing Fluid users (i.e., consumers) can pay to access content on your website with just a couple clicks. Simple, frictionless.\u003C\u002Fp>\n\u003Ch3>Publisher Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Set your price-per-article (or single piece of content)\u003C\u002Fli>\n\u003Cli>Enable Fluid Gateway across your entire website or only when an ad-blocker is detected\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Join Our Exclusive Launch Partner Program\u003C\u002Fh3>\n\u003Cp>Gain early access, get preferred terms, white glove service and more. We are inviting a few select partners to participate in our exclusive Launch Partner Program. For more information and to sign-up go to \u003Ca href=\"https:\u002F\u002Fwww.fluid.us\u002Fpublishers\u002Fpartners-program\" rel=\"nofollow ugc\">Fluid Launch partner Program\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Set-Up Costs\u003C\u002Fh3>\n\u003Cp>Free for publishers. No cost to you, we will cut you the checks.\u003C\u002Fp>\n\u003Ch3>Why Fluid?\u003C\u002Fh3>\n\u003Cp>Current paywalls and subscriptions don’t (necessarily) scale for the majority of publishers. However, publishers need a pathway to monetize consumers directly. In fact, when we surveyed consumers most are willing to pay something to access a single piece of content if given the means.\u003C\u002Fp>\n\u003Ch3>Learn More About Fluid\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.fluid.us\u002Fpublishers\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.fluid.us\u002Fpublishers\u003C\u002Fa>\u003C\u002Fp>\n","WordPress Integration for Fluid.us mircopayment Fluid is a new revenue partner for publishers. Capture revenues beyond advertising and traditional pay &hellip;",1456,"2018-08-07T12:52:00.000Z","4.9.29","4.4",[68,20,21,69,52],"accept-payments","payments","https:\u002F\u002Ffluid.us","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffluid.1.0.0.zip","2026-04-06T09:54:40.288Z",{"slug":74,"name":75,"version":76,"author":77,"author_profile":78,"description":79,"short_description":80,"active_installs":10,"downloaded":81,"rating":12,"num_ratings":13,"last_updated":82,"tested_up_to":83,"requires_at_least":84,"requires_php":85,"tags":86,"homepage":85,"download_link":90,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"jamatto-micropayments","Jamatto Micropayments","1.7","jamatto","https:\u002F\u002Fprofiles.wordpress.org\u002Fjamatto\u002F","\u003Cp>Have you ever considered turning your blogging into a source of income?  In fewer than 30 seconds, Jamatto lets you accept small payments from your readers – either through simple donation buttons or by placing your premium articles or even just your premium paragraphs behind enticing one-click paywalls.  Used by thousands of bloggers around the world.\u003C\u002Fp>\n\u003Cp>You can literally be up and running accepting micropayments on your blog in under 30 seconds.  Yes – that’s \u003Cstrong>less than 30 seconds\u003C\u002Fstrong>!\u003C\u002Fp>\n\u003Cp>Check out the Screenshots Tab to see how the plugin adds to your blog.\u003C\u002Fp>\n\u003Cp>The Screenshots Tab also shows you how to use the \u003Cstrong>[jamatto-donate]\u003C\u002Fstrong> and \u003Cstrong>[jamatto-premium]\u003C\u002Fstrong> shortcodes.  It’s really that simple.\u003C\u002Fp>\n","Have you considered turning your blogs into a source of income? In fewer than 30 seconds, Jamatto lets you accept small payments from your readers.",1553,"2017-11-13T10:25:00.000Z","4.8.28","3.0.1","",[87,77,21,88,89],"donation","premium","premium-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjamatto-micropayments.zip",{"slug":92,"name":93,"version":94,"author":95,"author_profile":96,"description":97,"short_description":98,"active_installs":10,"downloaded":99,"rating":12,"num_ratings":100,"last_updated":101,"tested_up_to":102,"requires_at_least":103,"requires_php":85,"tags":104,"homepage":109,"download_link":110,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":72},"wp-paymobile-content-locker","WP PayMobile Content Locker","1.3","crivion","https:\u002F\u002Fprofiles.wordpress.org\u002Fcrivion\u002F","\u003Ch4>WP PayMobile is a new monetization method for your website. Get payments by SMS \u002F Phone Call for revealing content.\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Monetize your website by taking mobile micropayments\u003C\u002Fli>\n\u003Cli>Uses PayGol micropayments gateway : completely free to signup and no monthly fees applied\u003C\u002Fli>\n\u003Cli>Easy to configure the message your visitors will see to encourage them to convert into payers\u003C\u002Fli>\n\u003Cli>Easy to configure the button they will click : custom, standard red,blue,yellow(default)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Arbitrary section 1\u003C\u002Fh3>\n","WP PayMobile is a new monetization method for your website. Get payments by SMS \u002F Phone Call for revealing content.",2697,5,"2015-07-09T11:08:00.000Z","4.2.39","3.0",[105,21,106,107,108],"content-locker","pay-by-sms","paymobile","sms-gateway","http:\u002F\u002Fpaymobile.crivion.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-paymobile-content-locker.zip",{"slug":112,"name":113,"version":114,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":27,"downloaded":119,"rating":27,"num_ratings":27,"last_updated":120,"tested_up_to":121,"requires_at_least":122,"requires_php":49,"tags":123,"homepage":85,"download_link":127,"security_score":12,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":72},"acta-pay-per-article","Acta — Pay Per Article","4.0.0","readwithacta","https:\u002F\u002Fprofiles.wordpress.org\u002Freadwithacta\u002F","\u003Cp>Monetize casual traffic without sacrificing subscriptions. Acta unlocks an additional revenue channel by embedding a seamless checkout directly inside your posts. Sell individual articles, or digital products such as playbooks, e-books, PDFs, video, podcasts, and more.\u003C\u002Fp>\n\u003Cp>Learn more at \u003Ca href=\"https:\u002F\u002Freadwithacta.com\u002F\" rel=\"nofollow ugc\">readwithacta.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pay-per-post on your terms\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>You control the price – charge what each post is worth\u003C\u002Fli>\n\u003Cli>One-click payments via cards, Apple Pay, and Google Pay – fully embedded and optimized for conversion\u003C\u002Fli>\n\u003Cli>Revenue goes directly to your Stripe account\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>We win if you win\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>No setup fees or recurring costs – simple revenue-share model\u003C\u002Fli>\n\u003Cli>Your customer, your data – get what you need to nurture the relationship\u003C\u002Fli>\n\u003Cli>Localized currencies – sell content the way your audience expects\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Easy setup\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Install the plugin, set your price, connect your bank – you’re live\u003C\u002Fli>\n\u003Cli>Works with any WordPress theme, including Jetpack-powered paywalls\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>What customers are saying\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“Setting up and using Acta has been so easy, it took my reader’s experience to the next level.” – Sports Psychology Today\u003C\u002Fli>\n\u003Cli>“People are purchasing specific topics of interest, which is exactly what we hoped.” – Rascal News\u003C\u002Fli>\n\u003Cli>“Acta’s been working flawlessly with us. I can only recommend it.” – The G\u002FO\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>This plugin connects to external services to provide its functionality:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>During setup, the plugin sends your site URL, email, name, and a locally generated secret key to the Acta API at https:\u002F\u002Fapi.readwithacta.com. No data beyond what you explicitly enter is transmitted.\u003C\u002Fli>\n\u003Cli>On public-facing pages, the plugin loads a JavaScript file from https:\u002F\u002Fapi.readwithacta.com to render the checkout UI, and Stripe.js (https:\u002F\u002Fjs.stripe.com\u002Fv3\u002F) for secure payment processing.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Freadwithacta.com\u002Fterms\" rel=\"nofollow ugc\">Acta Terms of Service\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Freadwithacta.com\u002Fprivacy\" rel=\"nofollow ugc\">Acta Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fstripe.com\u002Flegal\" rel=\"nofollow ugc\">Stripe Terms of Service\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fstripe.com\u002Fprivacy\" rel=\"nofollow ugc\">Stripe Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","A pay-per-post solution for WordPress publishers. Give casual visitors a simple way to pay for content, no subscription required.",81,"2026-03-22T06:17:00.000Z","6.9.4","5.8",[21,124,125,126,52],"monetization","paid-content","pay-per-article","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Facta-pay-per-article.4.0.0.zip",{"attackSurface":129,"codeSignals":291,"taintFlows":319,"riskAssessment":360,"analyzedAt":368},{"hooks":130,"ajaxHandlers":281,"restRoutes":282,"shortcodes":283,"cronEvents":289,"entryPointCount":290,"unprotectedCount":27},[131,137,142,147,152,155,159,162,166,168,172,175,180,183,187,191,195,200,204,208,213,216,221,225,229,232,236,240,245,249,252,256,261,265,267,271,276],{"type":132,"name":133,"callback":134,"file":135,"line":136},"action","admin_init","uhmi_plugin_activation_transient","app\u002Fadmin\u002Factivation.php",45,{"type":132,"name":138,"callback":139,"file":140,"line":141},"manage_posts_extra_tablenav","uhmi_blank_state","app\u002Fadmin\u002Fblank_state.php",17,{"type":143,"name":144,"callback":145,"file":140,"line":146},"filter","admin_body_class","uhmi_blank_state__body_class",34,{"type":143,"name":148,"callback":149,"file":150,"line":151},"manage_posts_columns","uhmi__add_column","app\u002Fadmin\u002Fcolumns.php",26,{"type":143,"name":153,"callback":149,"file":150,"line":154},"manage_pages_columns",27,{"type":132,"name":156,"callback":157,"priority":10,"file":150,"line":158},"manage_post_posts_custom_column","uhmi__set_column_value",53,{"type":132,"name":160,"callback":157,"priority":10,"file":150,"line":161},"manage_page_posts_custom_column",54,{"type":143,"name":163,"callback":164,"file":150,"line":165},"manage_edit-post_sortable_columns","uhmi__set_sortable_columns",69,{"type":143,"name":167,"callback":164,"file":150,"line":44},"manage_edit-page_sortable_columns",{"type":132,"name":169,"callback":170,"file":150,"line":171},"pre_get_posts","uhmi__set_orderby",108,{"type":132,"name":173,"callback":170,"file":150,"line":174},"pre_get_pages",109,{"type":132,"name":176,"callback":177,"file":178,"line":179},"admin_enqueue_scripts","uhmi_admin_styles","app\u002Fadmin\u002Fenqueue.php",16,{"type":132,"name":176,"callback":181,"file":178,"line":182},"uhmi_admin_scripts",38,{"type":143,"name":184,"callback":185,"file":186,"line":154},"admin_footer_text","uhmi_footer_text","app\u002Fadmin\u002Ffooter.php",{"type":143,"name":144,"callback":188,"file":189,"line":190},"uhmi_get_started__body_class","app\u002Fadmin\u002Fget_started.php",57,{"type":132,"name":192,"callback":193,"file":189,"line":194},"init","uhmi_get_started__save_api_keys",101,{"type":132,"name":196,"callback":197,"file":198,"line":199},"enqueue_block_editor_assets","uhmi_gutenberg_scripts","app\u002Fadmin\u002Fgutenberg.php",31,{"type":143,"name":201,"callback":202,"priority":10,"file":198,"line":203},"block_categories","uhmi_add_block_category",50,{"type":143,"name":144,"callback":205,"file":206,"line":207},"uhmi_is_new","app\u002Fadmin\u002Fis_new.php",35,{"type":132,"name":209,"callback":210,"file":211,"line":212},"admin_menu","uhmi_menu","app\u002Fadmin\u002Fmenu.php",21,{"type":132,"name":209,"callback":214,"file":211,"line":215},"uhmi_submenu",59,{"type":132,"name":217,"callback":218,"file":219,"line":220},"add_meta_boxes","uhmi_content_data__add_metabox","app\u002Fadmin\u002Fmetaboxes\u002Fcontent_data.php",36,{"type":132,"name":222,"callback":223,"priority":10,"file":219,"line":224},"save_post","uhmi_content_data__save",143,{"type":143,"name":226,"callback":227,"file":219,"line":228},"redirect_post_location","closure",303,{"type":132,"name":192,"callback":230,"file":231,"line":179},"uhmi_shortcodes_init","app\u002Fadmin\u002Fregister_shortcodes.php",{"type":132,"name":192,"callback":233,"file":234,"line":235},"uhmi_settings__save_button","app\u002Fadmin\u002Fsettings\u002Fbutton.php",92,{"type":132,"name":192,"callback":237,"file":238,"line":239},"uhmi_settings__save_api_keys","app\u002Fadmin\u002Fsettings\u002Fgeneral.php",44,{"type":143,"name":241,"callback":242,"file":243,"line":244},"mce_external_plugins","uhmi_add_tinymce_button","app\u002Fadmin\u002Ftinymce.php",14,{"type":143,"name":246,"callback":247,"priority":27,"file":243,"line":248},"mce_buttons","uhmi_register_tinymce_button",15,{"type":132,"name":133,"callback":250,"file":243,"line":251},"uhmi_init_tinymce_plugin",18,{"type":132,"name":253,"callback":227,"file":254,"line":255},"admin_notices","app\u002Fclass-uhmi-helper.php",437,{"type":143,"name":257,"callback":258,"file":259,"line":260},"body_class","uhmi_body_class","app\u002Fpublic\u002Fbody_class.php",24,{"type":132,"name":262,"callback":263,"file":264,"line":244},"wp_enqueue_scripts","uhmi_public_styles","app\u002Fpublic\u002Fenqueue.php",{"type":132,"name":262,"callback":266,"file":264,"line":207},"uhmi_public_scripts",{"type":132,"name":192,"callback":268,"file":269,"line":270},"uhmi_payment","app\u002Fpublic\u002Fpayment.php",76,{"type":143,"name":272,"callback":273,"file":274,"line":275},"the_content","uhmi_shortcodes__uhmi__the_content_filter","app\u002Fpublic\u002Fshortcodes\u002Fuhmi.php",60,{"type":132,"name":277,"callback":278,"file":279,"line":280},"plugins_loaded","uhmi_load_plugin_textdomain","languages\u002Fload_textdomain.php",11,[],[],[284,287],{"tag":4,"callback":285,"file":231,"line":286},"uhmi__register_shortcode",8,{"tag":4,"callback":288,"file":274,"line":33},"uhmi_shortcodes__uhmi",[],2,{"dangerousFunctions":292,"sqlUsage":293,"outputEscaping":295,"fileOperations":13,"externalRequests":27,"nonceChecks":100,"capabilityChecks":314,"bundledLibraries":315},[],{"prepared":27,"raw":27,"locations":294},[],{"escaped":296,"rawEcho":297,"locations":298},148,9,[299,302,304,305,306,308,310,312,313],{"file":300,"line":212,"context":301},"app\u002Fadmin\u002Fviews\u002Fcontent_data.php","raw output",{"file":303,"line":286,"context":301},"app\u002Fadmin\u002Fviews\u002Fget_started\u002Fstep-1.php",{"file":303,"line":286,"context":301},{"file":303,"line":248,"context":301},{"file":307,"line":280,"context":301},"app\u002Fadmin\u002Fviews\u002Fget_started\u002Fstep-2.php",{"file":269,"line":309,"context":301},91,{"file":311,"line":297,"context":301},"app\u002Fpublic\u002Fviews\u002Fuhmi_content.php",{"file":311,"line":212,"context":301},{"file":311,"line":154,"context":301},12,[316],{"name":317,"version":28,"knownCves":318},"TinyMCE",[],[320,343],{"entryPoint":321,"graph":322,"unsanitizedCount":290,"severity":342},"uhmi_payment (app\u002Fpublic\u002Fpayment.php:9)",{"nodes":323,"edges":338},[324,329,333],{"id":325,"type":326,"label":327,"file":269,"line":328},"n0","source","$_GET (x2)",66,{"id":330,"type":331,"label":332,"file":269,"line":328},"n1","transform","→ uhmi_payment__return_content()",{"id":334,"type":335,"label":336,"file":269,"line":309,"wp_function":337},"n2","sink","echo() [XSS]","echo",[339,341],{"from":325,"to":330,"sanitized":340},false,{"from":330,"to":334,"sanitized":340},"medium",{"entryPoint":344,"graph":345,"unsanitizedCount":290,"severity":342},"\u003Cpayment> (app\u002Fpublic\u002Fpayment.php:0)",{"nodes":346,"edges":355},[347,349,350,351,353],{"id":325,"type":326,"label":348,"file":269,"line":199},"$_GET",{"id":330,"type":335,"label":336,"file":269,"line":309,"wp_function":337},{"id":334,"type":326,"label":327,"file":269,"line":328},{"id":352,"type":331,"label":332,"file":269,"line":328},"n3",{"id":354,"type":335,"label":336,"file":269,"line":309,"wp_function":337},"n4",[356,358,359],{"from":325,"to":330,"sanitized":357},true,{"from":334,"to":352,"sanitized":340},{"from":352,"to":354,"sanitized":340},{"summary":361,"deductions":362},"The \"uhmi\" v1.1 plugin exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The absence of any recorded CVEs and the plugin's adherence to best practices like using prepared statements for SQL queries and a high percentage of properly escaped output are significant strengths. The presence of nonce and capability checks further reinforces its defensive mechanisms.  However, the taint analysis reveals a potential area of concern: two flows with unsanitized paths. While these did not escalate to critical or high severity in this analysis, it indicates a potential weakness where user-supplied data might not be sufficiently validated before being used in a way that could lead to unintended consequences.  The limited attack surface of two shortcodes, with no apparent unprotected entry points, is also a positive indicator.  Overall, \"uhmi\" v1.1 appears to be a relatively secure plugin, with the primary area for improvement being the thorough sanitization of user input within the identified tainted flows to prevent any future exploitation, even if no immediate vulnerabilities are present.",[363,365],{"reason":364,"points":286},"Flows with unsanitized paths found",{"reason":366,"points":367},"Bundled library (TinyMCE) can pose risks",3,"2026-04-16T12:21:16.127Z",{"wat":370,"direct":379},{"assetPaths":371,"generatorPatterns":376,"scriptPaths":377,"versionParams":378},[372,373,374,375],"\u002Fwp-content\u002Fplugins\u002Fuhmi\u002Fapp\u002Fadmin\u002Fcss\u002Fuhmi.css","\u002Fwp-content\u002Fplugins\u002Fuhmi\u002Fapp\u002Fpublic\u002Fcss\u002Fuhmi.css","\u002Fwp-content\u002Fplugins\u002Fuhmi\u002Fapp\u002Fadmin\u002Fjs\u002Fuhmi.js","\u002Fwp-content\u002Fplugins\u002Fuhmi\u002Fapp\u002Fpublic\u002Fjs\u002Fuhmi.js",[],[374,375],[],{"cssClasses":380,"htmlComments":382,"htmlAttributes":383,"restEndpoints":384,"jsGlobals":385,"shortcodeOutput":390},[381],"uhmi-paywall-content",[],[],[],[386,387,388,389],"UHMI_ACCOUNT_URL","UHMI_TINYMCE_BUTTON_TITLE","UHMI_PUBLIC_KEY","UHMI_PRELOAD",[391,392,393,394,395],"\u003C!-- Uhmi Shortcode Start -->","\u003Cdiv class=\"uhmi-paywall-content\">","\u003Cp>","[uhmi]","\u003C!-- Uhmi Shortcode End -->",{"error":357,"url":397,"statusCode":398,"statusMessage":399,"message":399},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fuhmi\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":290,"versions":401},[402,407],{"version":6,"download_url":25,"svn_tag_url":403,"released_at":28,"has_diff":340,"diff_files_changed":404,"diff_lines":28,"trac_diff_url":405,"vulnerabilities":406,"is_current":357},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fuhmi\u002Ftags\u002F1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fuhmi%2Ftags%2F1.0&new_path=%2Fuhmi%2Ftags%2F1.1",[],{"version":408,"download_url":409,"svn_tag_url":410,"released_at":28,"has_diff":340,"diff_files_changed":411,"diff_lines":28,"trac_diff_url":28,"vulnerabilities":412,"is_current":340},"1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fuhmi.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fuhmi\u002Ftags\u002F1.0\u002F",[],[]]