[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fAFR1enRQItdL04z7zzJHuEbtea7lf4rQmvxffXJVdUY":3,"$frAZNOgM9zGEO3N1NIT46kdaqsiEf2jfHb3VcfHDPRdU":182,"$fjtIqh6p44xi8IAML3jpV9dl-zX-Y_Kf8B5NdcraD65M":187},{"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":17,"tags":18,"homepage":17,"download_link":19,"security_score":20,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22,"discovery_status":23,"vulnerabilities":24,"developer":25,"crawl_stats":21,"alternatives":31,"analysis":32,"fingerprints":156},"js-currency-converter","JS Currency Converter","1.2","jasperdragonet","https:\u002F\u002Fprofiles.wordpress.org\u002Fjasperdragonet\u002F","\u003Cp>This plugin converts a currency using front-end JavaScript.\u003C\u002Fp>\n\u003Cp>The front-end part of this plugin is Javascript based to convert existing values in the website. A dropdown menu is generated during the parsing of your template using a filter action.\u003C\u002Fp>\n\u003Cp>All elements defined in the admin part will be updates. For example:\u003Cbr \u002F>\nWhen defined that all elements with the ‘price’ class must be updated, you should add a span of div with the class ‘price’ around the class.\u003C\u002Fp>\n\u003Cp>In the admin part an exchange rate API can be linked to pre-fill your current currencies.\u003Cbr \u002F>\nA free exchange rate API is for example: http:\u002F\u002Fapilayer.net\u003C\u002Fp>\n\u003Cp>If you wish to define the origin of the currency you need to subscribe to: https:\u002F\u002Fcurrencylayer.com. Whiteout this subscription the plugin uses USD as a origin currency, so this is optional.\u003C\u002Fp>\n\u003Cp>Installation\u003C\u002Fp>\n\u003Col>\n\u003Cli>Download the plugin.\u003C\u002Fli>\n\u003Cli>Activate the plugin.\u003C\u002Fli>\n\u003Cli>Setup the plugin in the admin part under the settings menu.\u003Cbr \u002F>\n4.1. Add this code somewhere in your template files e.a. header.php to display the currency-select drowdown menu:\u003Cbr \u002F>\n    \u003Ccode>\u003C?php apply_filters( 'add_currency_converter_dropdown' ); ?>\u003C\u002Fcode>\u003Cbr \u002F>\n4-1. You can also use a WordPress shortcode:\u003Cbr \u002F>\n    \u003Ccode>[currency_converter]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Changelog\u003C\u002Fp>\n","This plugin converts a currency using front-end JavaScript. The front-end part of this plugin is Javascript based to convert existing values in the w &hellip;",0,1337,100,1,"2019-10-29T11:21:00.000Z","5.2.24","",[],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.zip",85,null,"2026-04-06T09:54:40.288Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":26,"total_installs":27,"avg_security_score":20,"avg_patch_time_days":28,"trust_score":29,"computed_at":30},2,10,30,84,"2026-05-20T10:14:56.146Z",[],{"attackSurface":33,"codeSignals":71,"taintFlows":143,"riskAssessment":144,"analyzedAt":155},{"hooks":34,"ajaxHandlers":63,"restRoutes":64,"shortcodes":65,"cronEvents":70,"entryPointCount":14,"unprotectedCount":11},[35,41,45,49,54,58],{"type":36,"name":37,"callback":38,"file":39,"line":40},"action","admin_init","action__jcc_RegisterSettings","js_currency_converter-admin-functions.php",55,{"type":36,"name":42,"callback":43,"file":39,"line":44},"admin_menu","action__jcc_CreateMenu",56,{"type":36,"name":46,"callback":47,"file":39,"line":48},"admin_enqueue_scripts","action__jcc_admin_scripts",61,{"type":36,"name":50,"callback":51,"file":52,"line":53},"plugins_loaded","initTextdomain","js_currency_converter-front-functions.php",44,{"type":36,"name":55,"callback":56,"file":52,"line":57},"wp_enqueue_scripts","enqueueScripts",45,{"type":59,"name":60,"callback":61,"file":52,"line":62},"filter","add_currency_converter_dropdown","addCurrencyConverterDropdown",47,[],[],[66],{"tag":67,"callback":68,"file":52,"line":69},"currency_converter","shortcode",49,[],{"dangerousFunctions":72,"sqlUsage":73,"outputEscaping":75,"fileOperations":11,"externalRequests":14,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":139},[],{"prepared":11,"raw":11,"locations":74},[],{"escaped":76,"rawEcho":28,"locations":77},11,[78,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137],{"file":39,"line":79,"context":80},149,"raw output",{"file":39,"line":82,"context":80},159,{"file":39,"line":84,"context":80},162,{"file":39,"line":86,"context":80},166,{"file":39,"line":88,"context":80},169,{"file":39,"line":90,"context":80},175,{"file":39,"line":92,"context":80},177,{"file":39,"line":94,"context":80},182,{"file":39,"line":96,"context":80},188,{"file":39,"line":98,"context":80},190,{"file":39,"line":100,"context":80},192,{"file":39,"line":102,"context":80},197,{"file":39,"line":104,"context":80},201,{"file":39,"line":106,"context":80},202,{"file":39,"line":108,"context":80},209,{"file":39,"line":110,"context":80},282,{"file":39,"line":112,"context":80},283,{"file":39,"line":114,"context":80},284,{"file":39,"line":116,"context":80},285,{"file":39,"line":118,"context":80},286,{"file":39,"line":120,"context":80},287,{"file":39,"line":122,"context":80},289,{"file":39,"line":124,"context":80},339,{"file":39,"line":126,"context":80},340,{"file":39,"line":128,"context":80},341,{"file":39,"line":130,"context":80},342,{"file":39,"line":132,"context":80},343,{"file":39,"line":134,"context":80},344,{"file":39,"line":136,"context":80},345,{"file":52,"line":138,"context":80},165,[140],{"name":141,"version":21,"knownCves":142},"Select2",[],[],{"summary":145,"deductions":146},"The 'js-currency-converter' v1.2 plugin exhibits a mixed security posture. On the positive side, it has no recorded vulnerabilities (CVEs) and no critical findings in taint analysis, suggesting a history of relatively secure development. The static analysis also shows no direct database queries without prepared statements and no file operations, which are common vectors for attacks. However, several significant concerns emerge from the code analysis. The absence of any nonce or capability checks for its single shortcode is a major weakness, as it represents an unprotected entry point. Furthermore, a substantial portion (73%) of its output is not properly escaped, posing a risk of Cross-Site Scripting (XSS) vulnerabilities, especially if user-supplied data is involved in these outputs. The use of a bundled library, Select2, also warrants attention, as outdated bundled libraries can introduce vulnerabilities.",[147,149,152],{"reason":148,"points":27},"Shortcode without nonce\u002Fcapability checks",{"reason":150,"points":151},"High percentage of unescaped output",7,{"reason":153,"points":154},"Bundled library (Select2) potentially outdated",3,"2026-03-17T06:29:13.113Z",{"wat":157,"direct":167},{"assetPaths":158,"generatorPatterns":161,"scriptPaths":162,"versionParams":164},[159,160],"\u002Fwp-content\u002Fplugins\u002Fjs-currency-converter\u002Fassets\u002Fcss\u002Fjs_currency_converter.css","\u002Fwp-content\u002Fplugins\u002Fjs-currency-converter\u002Fassets\u002Fjs\u002Fjs_currency_converter_admin.js",[],[163],"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fselect2\u002F4.0.3\u002Fjs\u002Fselect2.min.js",[165,166],"js_currency_converter\u002Fstyle.css?ver=","js_currency_converter_admin.js?ver=",{"cssClasses":168,"htmlComments":170,"htmlAttributes":172,"restEndpoints":178,"jsGlobals":179,"shortcodeOutput":181},[169,169],"jcc_currency_admin_exchange_holder",[171],"\u003C!-- JS Currency Converter settings -->",[173,174,175,176,177,176,177,173,175,176],"name=\"jcc_target_class\"","name=\"jcc_currency\"","name=\"jcc_exchange_rates\"","name=\"jcc_exchange_rates_from\"","name=\"jcc_exchange_rates_api\"",[],[180],"window.js_currency_converter",[],{"error":183,"url":184,"statusCode":185,"statusMessage":186,"message":186},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fjs-currency-converter\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":151,"versions":188},[189,197,204,211,217,224,231],{"version":190,"download_url":191,"svn_tag_url":192,"released_at":21,"has_diff":193,"diff_files_changed":194,"diff_lines":21,"trac_diff_url":195,"vulnerabilities":196,"is_current":193},"1.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.5\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F1.4&new_path=%2Fjs-currency-converter%2Ftags%2F1.5",[],{"version":198,"download_url":199,"svn_tag_url":200,"released_at":21,"has_diff":193,"diff_files_changed":201,"diff_lines":21,"trac_diff_url":202,"vulnerabilities":203,"is_current":193},"1.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F1.3&new_path=%2Fjs-currency-converter%2Ftags%2F1.4",[],{"version":205,"download_url":206,"svn_tag_url":207,"released_at":21,"has_diff":193,"diff_files_changed":208,"diff_lines":21,"trac_diff_url":209,"vulnerabilities":210,"is_current":193},"1.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F1.2&new_path=%2Fjs-currency-converter%2Ftags%2F1.3",[],{"version":6,"download_url":212,"svn_tag_url":213,"released_at":21,"has_diff":193,"diff_files_changed":214,"diff_lines":21,"trac_diff_url":215,"vulnerabilities":216,"is_current":183},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F1.1&new_path=%2Fjs-currency-converter%2Ftags%2F1.2",[],{"version":218,"download_url":219,"svn_tag_url":220,"released_at":21,"has_diff":193,"diff_files_changed":221,"diff_lines":21,"trac_diff_url":222,"vulnerabilities":223,"is_current":193},"1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F1.0&new_path=%2Fjs-currency-converter%2Ftags%2F1.1",[],{"version":225,"download_url":226,"svn_tag_url":227,"released_at":21,"has_diff":193,"diff_files_changed":228,"diff_lines":21,"trac_diff_url":229,"vulnerabilities":230,"is_current":193},"1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fjs-currency-converter%2Ftags%2F0.1&new_path=%2Fjs-currency-converter%2Ftags%2F1.0",[],{"version":232,"download_url":233,"svn_tag_url":234,"released_at":21,"has_diff":193,"diff_files_changed":235,"diff_lines":21,"trac_diff_url":21,"vulnerabilities":236,"is_current":193},"0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-currency-converter.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fjs-currency-converter\u002Ftags\u002F0.1\u002F",[],[]]