[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fbhcaNpz1S9MW_EaWctFh8nrgsGt_JTYKug3e7XxyjeU":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"wpdo5ea","WPDO","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpdo5ea\u002F",6,7810,91,146,73,"2026-04-04T10:02:01.654Z",[14,40,59,78,93,105],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":20,"downloaded":21,"rating":22,"num_ratings":23,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":28,"homepage":27,"download_link":34,"security_score":35,"vuln_count":36,"unpatched_count":37,"last_vuln_date":38,"fetched_at":39},"dologin","DoLogin Security","4.3","\u003Cp>In one click, your WordPress login page will be pretected with the smart brute force attack protection! Any login attempts more than 6 in 10 minutes (default value) will be limited.\u003C\u002Fp>\n\u003Cp>Limit the number of login attempts through both the login and the auth cookies.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Two-factor Authentication login.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Text SMS message passcode for 2nd step verification support.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Cloudflare Turnstile (better than Google reCAPTCHA).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>GeoLocation (Continent\u002FCountry\u002FCity) or IP range to limit login attempts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Passwordless login link.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Support Whitelist and Blacklist.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>GDPR compliant. With this feature turned on, all logged IPs get obfuscated (md5-hashed).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WooCommerce Login supported.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>XMLRPC gateway protection.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Call the function \u003Ccode>$link = function_exists( 'dologin_gen_link' ) ? dologin_gen_link( 'your plugin name or tag' ) : '';\u003C\u002Fcode> to generate one passwordless login link for the current user.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Call the function \u003Ccode>$link = function_exists( 'dologin_gen_link' ) ? dologin_gen_link( 'note\u002Ftip for this generation', $user_id ) : '';\u003C\u002Fcode> to generate a passwordless login link for the user which ID is \u003Ccode>$user_id\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The generated one-time used link will be expired after 7 days.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Define const \u003Ccode>SILENCE_INSTALL\u003C\u002Fcode> to avoid redirecting to setting page after installtion.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>CLI\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>List all passwordless links: \u003Ccode>wp dologin list\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Generate a passwordless link for one username (for the login name \u003Ccode>root\u003C\u002Fcode>): \u003Ccode>wp dologin gen root\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Delete a passwordless link w\u002F the ID in list (for the record w\u002F ID 5): \u003Ccode>wp dologin del 5\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How GeoLocation works\u003C\u002Fh4>\n\u003Cp>When visitors hit the login page, this plugin will lookup the Geolocation info from API, compare the Geolocation setting (if has) with the whitelist\u002Fblacklist to decide if allow login attempts.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>The online IP lookup service is provided by https:\u002F\u002Fwww.doapi.us. The provider’s privacy policy is https:\u002F\u002Fwww.doapi.us\u002Fprivacy.\u003C\u002Fp>\n\u003Cp>Based on the original code from Limit Login Attemps plugin and Limit Login Attemps Reloaded plugin.\u003C\u002Fp>\n","Easy Login. 2FA login. Passwordless login. Cloudflare Turnstile reCAPTCHA. GeoLocation (Continent\u002FCountry\u002FCity)\u002FIP range to limit login attempts.",7000,162727,90,13,"2025-06-11T14:21:00.000Z","6.8.5","4.0","",[29,30,31,32,33],"2fa-login","cloudflare-turnstile-recaptcha","easy-login","geolocation-login-limit","login-security","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdologin.4.3.zip",98,4,0,"2023-10-24 00:00:00","2026-03-15T15:16:48.613Z",{"slug":41,"name":42,"version":43,"author":5,"author_profile":6,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":51,"homepage":55,"download_link":56,"security_score":57,"vuln_count":37,"unpatched_count":37,"last_vuln_date":58,"fetched_at":39},"doqrcode","QRCode","1.2.2","\u003Cp>Generate QR Code by shortcode. Inline base64 SVG image. No extra image file generated. Local generator, no need online Google service.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Use \u003Ccode>[qrcode]Example string[\u002Fqrcode]\u003C\u002Fcode> to generate the QR Code.\u003C\u002Fp>\n\u003Cp>Use \u003Ccode>[qrcode size=10 margin=5]Example string[\u002Fqrcode]\u003C\u002Fcode> to set size\u002Fmargin. Default size=3, margin=3.\u003C\u002Fp>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Inline SVG base64 format QR Code\u003C\u002Fli>\n\u003Cli>No extra image src request\u003C\u002Fli>\n\u003Cli>No local image file generation required\u003C\u002Fli>\n\u003Cli>Local generator\u003C\u002Fli>\n\u003C\u002Ful>\n","A simple plugin to generate QR Code by shortcode for WordPress",400,6600,60,2,"2025-05-27T03:44:00.000Z",[52,41,53,54],"barcode","qrcode","qrcode-shortcode","https:\u002F\u002Fgithub.com\u002Fwpdo\u002Fdoqrcode","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdoqrcode.1.2.2.zip",100,null,{"slug":60,"name":61,"version":62,"author":5,"author_profile":6,"description":63,"short_description":64,"active_installs":46,"downloaded":65,"rating":57,"num_ratings":66,"last_updated":67,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":68,"homepage":27,"download_link":74,"security_score":75,"vuln_count":76,"unpatched_count":76,"last_vuln_date":77,"fetched_at":39},"remoji","Remoji – Post\u002FComment Reaction and Enhancement","2.2","\u003Cp>Add the slack style emoji to posts, pages or comments.\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>React with emojis to any post or comment.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Post View counter. Compatible with all cache plugins! Easy to use. Automatically exclude bots.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Disable comment on any post type (pages, posts, attachments).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Most Viewed widget. Recent Reacted Emoji Post widget.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Allow guests reaction or logged-in user reaction only.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>GDPR compliant. With this feature turned on, all logged IPs get obfuscated (md5-hashed).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Post View\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\n\u003Cp>Edit \u003Ccode>wp-content\u002Fthemes\u002F\u003CYOUR THEME>\u002Findex.php\u003C\u002Fcode> or \u003Ccode>archive.php\u003C\u002Fcode>\u002F\u003Ccode>single.php\u003C\u002Fcode>\u002F\u003Ccode>post.php\u003C\u002Fcode>\u002F\u003Ccode>page.php\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>In the loop \u003Ccode>while ( have_posts() ) {\u003C\u002Fcode> or anywhere you want to show the views, add the following codes: \u003Ccode>do_action( 'remoji_postview' );\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cem>API\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>To show postview in themes\u002Fplugins, use \u003Ccode>do_action( 'remoji_postview', $the_post_id_to_inquire );\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cem>Shortcode [views] available\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Use \u003Ccode>[views]\u003C\u002Fcode> or \u003Ccode>[views id=\"3\"]\u003C\u002Fcode>(To show the views of post ID 3) in your editor.\u003C\u002Fp>\n","Reactive emoji. Allow visitors to add emoji reactions to your posts and comments. Disable comment for pages, posts.",12216,5,"2025-10-15T17:45:00.000Z",[69,70,71,72,73],"comment","counter","emoji","postviews","views","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremoji.2.2.zip",75,1,"2026-03-17 00:00:00",{"slug":79,"name":80,"version":81,"author":5,"author_profile":6,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":37,"num_ratings":37,"last_updated":86,"tested_up_to":87,"requires_at_least":26,"requires_php":27,"tags":88,"homepage":27,"download_link":91,"security_score":92,"vuln_count":37,"unpatched_count":37,"last_vuln_date":58,"fetched_at":39},"limit-login-attempts-security","Limit Login Attempts Security","1.0.2","\u003Cp>A lightweight version that support GeoLocation for login security. Use GeoLocation (Country\u002FCity setting).\u003C\u002Fp>\n\u003Cp>For more features, please try this free plugin: https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdologin\u002F\u003C\u002Fp>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support GeoLocation IP limit\u003C\u002Fli>\n\u003Cli>Support IP whitelist\u002Fblacklist\u003C\u002Fli>\n\u003C\u002Ful>\n","A lightweight version of DoLogin with GeoLocation for login security only. For the full features, please use this free plugin: https:\u002F\u002Fwordpress.",10,1154,"2019-09-30T14:14:00.000Z","5.2.24",[89,90,33],"login-attempts","login-lock","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flimit-login-attempts-security.1.0.2.zip",85,{"slug":94,"name":95,"version":96,"author":5,"author_profile":6,"description":97,"short_description":98,"active_installs":37,"downloaded":99,"rating":37,"num_ratings":37,"last_updated":100,"tested_up_to":101,"requires_at_least":26,"requires_php":27,"tags":102,"homepage":27,"download_link":104,"security_score":92,"vuln_count":37,"unpatched_count":37,"last_vuln_date":58,"fetched_at":39},"dodebug","DoDebug","1.1","\u003Cp>This plugin can log the breakpoints into the file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>To check the log, ssh to server, run \u003Ccode>tail -f \u002Fyour_wordpress_path\u002Fwp-content\u002Fdebug.log\u003C\u002Fcode> to watch the output.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>To log, use \u003Ccode>defined( 'debug' ) && debug( 'your content to log' );\u003C\u002Fcode> in your plugin\u002Ftheme code.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>To log only in advanced debug level, use \u003Ccode>defined( 'debug' ) && debug2( 'your content to log' );\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>To log with backtrace depth = 4, use \u003Ccode>defined( 'debug' ) && debug( 'your content to log', 4 );\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>To append one variable (usually an array), use \u003Ccode>defined( 'debug' ) && debug( 'your content to log', $var_to_check );\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Just one debug tool for developers.",955,"2020-09-21T17:45:00.000Z","5.3.21",[103],"debug-tool","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdodebug.1.1.zip",{"slug":106,"name":107,"version":108,"author":5,"author_profile":6,"description":109,"short_description":110,"active_installs":37,"downloaded":111,"rating":37,"num_ratings":37,"last_updated":27,"tested_up_to":112,"requires_at_least":26,"requires_php":27,"tags":113,"homepage":27,"download_link":116,"security_score":57,"vuln_count":37,"unpatched_count":37,"last_vuln_date":58,"fetched_at":117},"dotix","Dotix","1.5","\u003Cp>This plugin will enable the connection between your app and WooCommerce orders for digital credits usage. It can be used to check the remaining credits in one order, or consume them.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Redirect to your app link on order paid page, carring on the order key.\u003C\u002Fp>\n\u003Cp>Let’s assume the order_key=\u003Ccode>wc_order_xQhmRjJ7\u003C\u002Fcode>, your app URL is \u003Ccode>https:\u002F\u002Fapp.EXAMPLE.com\u002Frefill\u003C\u002Fcode>, your WordPress URL is \u003Ccode>https:\u002F\u002FEXAMPLE.com\u002F\u003C\u002Fcode>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>On the order Thank You page, show a button \u003Ccode>\u003Ca href=\"https:\u002F\u002Fapp.EXAMPLE.com\u002Frefill?order_key=wc_order_xQhmRjJ7\">Go back to app.EXAMPLE\u003C\u002Fa>\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>In \u003Ccode>https:\u002F\u002Fapp.EXAMPLE.com\u002Frefill\u003C\u002Fcode>, call \u003Ccode>https:\u002F\u002FEXAMPLE.com\u002Fwp-json\u002Fdotix\u002Fv1\u002Forder\u002Fwc_order_xQhmRjJ7\u003C\u002Fcode> with \u003Ccode>$_POST[ 'num' ] = 'max'\u003C\u002Fcode>, assume the consumed credits is 42 in returned JSON.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Add 42 credits into the corresponding user account.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>REST APIs\u003C\u002Fh3>\n\u003Cp>1) Show balance:\u003Cbr \u002F>\n    Method: GET\u003Cbr \u002F>\n    URL: \u003Ccode>https:\u002F\u002FEXAMPLE.com\u002Fwp-json\u002Fdotix\u002Fv1\u002Forder\u002Fwc_order_xQhmRjJ7\u003C\u002Fcode>\u003Cbr \u002F>\n    Return: \u003Ccode>{\"_res\":\"ok\", \"order_id\":45, \"status\":\"completed\", \"balance\":\"142\"}\u003C\u002Fcode>\u003Cbr \u002F>\n    \u002F\u002F NOTE: only the order with status=\u003Ccode>completed\u003C\u002Fcode> can be consumed credits.\u003C\u002Fp>\n\u003Cp>2) Consume 100 credits:\u003Cbr \u002F>\n    Method: \u003Ccode>POST\u003C\u002Fcode>\u003Cbr \u002F>\n    URL: \u003Ccode>https:\u002F\u002FEXAMPLE.com\u002Fwp-json\u002Fdotix\u002Fv1\u002Forder\u002Fwc_order_xQhmRjJ7\u003C\u002Fcode>\u003Cbr \u002F>\n    Data: \u003Ccode>[ 'num' => 100 ]\u003C\u002Fcode>\u003Cbr \u002F>\n    Return: \u003Ccode>{\"_res\":\"ok\", \"order_id\":45, \"consumed\":\"100\", \"balance\":\"42\"}\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>3) Consume all credits:\u003Cbr \u002F>\n    Method: POST\u003Cbr \u002F>\n    URL: https:\u002F\u002FEXAMPLE.com\u002Fwp-json\u002Fdotix\u002Fv1\u002Forder\u002Fwc_order_xQhmRjJ7\u003Cbr \u002F>\n    Data: \u003Ccode>[ 'num' => 'max' ]\u003C\u002Fcode>\u003Cbr \u002F>\n    Return: \u003Ccode>{\"_res\":\"ok\", \"order_id\":45, \"consumed\":\"42\", \"balance\":\"0\"}\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>For all errors, will return {“_res”:”err”, “_msg”:”error_msg_tag or content”}\u003C\u002Fp>\n\u003Ch3>Order Status\u003C\u002Fh3>\n\u003Cp>If an order contains only items that have valid credit in product detail, once the order is paid, the status will change to \u003Ccode>completed\u003C\u002Fcode> automatically instead of \u003Ccode>processing\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>The reason to do this is because some unpaid getways (Bank Wire, Cheque, Cash on delivery) will have status \u003Ccode>processing\u003C\u002Fcode> once the order is placed while not paid. Thus we can’t use \u003Ccode>processing\u003C\u002Fcode> to detect if the order is paid or not.\u003C\u002Fp>\n\u003Cp>To make the credits in the orders with the unpaid gateways available, please update the order status to \u003Ccode>completed\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3>Error Message Tag In REST API\u003C\u002Fh3>\n\u003Cp>Error code: \u003Ccode>wrong_hash\u003C\u002Fcode>\u003Cbr \u002F>\nDescription: The order key doesn’t match any order.\u003C\u002Fp>\n\u003Cp>Error code: \u003Ccode>wrong_status\u003C\u002Fcode>\u003Cbr \u002F>\nDescription: The order isn’t in processing\u002Fcompleted status, maybe not paid yet?\u003C\u002Fp>\n\u003Cp>Error code: \u003Ccode>lack_of_param\u003C\u002Fcode>\u003Cbr \u002F>\nDescription: Need to specify the ammount to consume. Either numeric or a fixed string \u003Ccode>max\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Error code: \u003Ccode>lack_of_bal\u003C\u002Fcode>\u003Cbr \u002F>\nDescription: Not enough balance left in this order.\u003C\u002Fp>\n","Connect your app with WooCommerce credits. Append additional credits for each product in WooCommerce.",1572,"6.0.11",[114,115],"credit-point-system-for-woocommerce","ticket-system-for-woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdotix.1.5.zip","2026-03-15T10:48:56.248Z"]