[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f7LHunYRMKZerGSUM8Q30NXtilMzYqlUlPRuHBQr5CQs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":56,"fingerprints":281},"autopromote","AutoPromote","1.0","PixelPlugins","https:\u002F\u002Fprofiles.wordpress.org\u002Fpixelplugins\u002F","\u003Cp>Tired of manually updating banners, announcement bars, and promotional content across your website every time you run a sale, launch a product, or make an announcement? AutoPromote provides a simple, centralized system to schedule and manage time-sensitive content effortlessly.\u003C\u002Fp>\n\u003Cp>Define your promotional periods (like sales, events, or announcements) with specific start and end times. Add associated content like descriptions, promotional images, and even coupon details. Then, use simple shortcodes anywhere on your site (pages, posts, widgets, page builders) to automatically display the correct information for the \u003Cem>currently active\u003C\u002Fem> promotion.\u003C\u002Fp>\n\u003Cp>When one promotion ends and another begins, your website content updates automatically. No more late-night edits or forgetting to remove expired sale banners! AutoPromote ensures your visitors always see the right message at the right time.\u003C\u002Fp>\n\u003Ch4>Core Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Centralized Promotion Management:\u003C\u002Fstrong> Create, edit, schedule, and manage all your time-based promotions (sales, events, announcements) from one dedicated “AutoPromote” area in your WordPress admin.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Precise Scheduling:\u003C\u002Fstrong> Set specific start and end dates \u003Cem>and times\u003C\u002Fem> (down to the second!) for each promotion.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dynamic Content Shortcodes:\u003C\u002Fstrong> Use simple shortcodes like \u003Ccode>[pixel_apfw_promotion_name]\u003C\u002Fcode> or \u003Ccode>[pixel_apfw_promotion_image]\u003C\u002Fcode> to display the active promotion’s details anywhere on your site. The content updates automatically based on your schedule.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Standalone Coupon\u002FDiscount Details:\u003C\u002Fstrong> Easily add a coupon code, discount amount, and discount type (e.g., “%” or “$”) directly to your promotion. Shortcodes can display this information.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Promotional Images:\u003C\u002Fstrong> Upload or select a unique promotional image for each campaign via the WordPress Media Library.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Conflict Prevention:\u003C\u002Fstrong> The system automatically prevents you from accidentally scheduling two promotions to run at the exact same time, ensuring clarity for your visitors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Global Fallback Content:\u003C\u002Fstrong> Optionally define default text, image, and coupon details to show via shortcodes when no promotion is currently scheduled to be active.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode Formatting Options:\u003C\u002Fstrong> Control how dates, coupon codes (e.g., uppercase), and discount amounts are displayed through simple settings.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Available Shortcodes\u003C\u002Fh4>\n\u003Cp>Shortcodes automatically display content from the single promotion that is currently active based on its scheduled start and end date\u002Ftime. If the Global Fallback setting is enabled and configured, fallback content will be displayed instead when no promotion is active.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_name]\u003C\u002Fcode> – Displays the active promotion’s name (the title you entered).\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_description]\u003C\u002Fcode> – Displays the active promotion’s description\u002Fcopy.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_image size=\"full\"]\u003C\u002Fcode> – Displays the active promotion’s promotional image. Accepts standard image sizes (thumbnail, medium, large, full) via the \u003Ccode>size\u003C\u002Fcode> attribute (optional, defaults to ‘full’).\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_coupon_code]\u003C\u002Fcode> – Displays the coupon code you entered manually for the active promotion. Format (e.g., uppercase) can be set in Settings.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_discount_amount]\u003C\u002Fcode> – Displays the discount amount you entered manually for the active promotion. Format (e.g., “$10.00” vs “10”) can be set in Settings.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_date type=\"start\"]\u003C\u002Fcode> – Displays the active promotion’s start date\u002Ftime.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[pixel_apfw_promotion_date type=\"end\"]\u003C\u002Fcode> – Displays the active promotion’s end date\u002Ftime.\n\u003Cul>\n\u003Cli>\u003Cem>Note:\u003C\u002Fem> The date\u002Ftime format for \u003Ccode>[pixel_apfw_promotion_date]\u003C\u002Fcode> can be globally configured in AutoPromote > Settings, or overridden per-shortcode using the \u003Ccode>format\u003C\u002Fcode> attribute (e.g., \u003Ccode>format=\"F j, Y\"\u003C\u002Fcode>). Uses standard PHP date format strings.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>(Pro version adds integration to pull data directly from WooCommerce coupons, conditional display shortcodes (\u003Ccode>[pixel_apfw_show_if_active]\u003C\u002Fcode>, \u003Ccode>[pixel_apfw_show_if_inactive]\u003C\u002Fcode>), promotion color options (\u003Ccode>[pixel_apfw_promotion_color]\u003C\u002Fcode>), PHP helper functions (\u003Ccode>pixel_apfw_get_promotion_color()\u003C\u002Fcode>, etc.), and a custom wrapper shortcode.)\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Where to Use Shortcodes\u003C\u002Fh4>\n\u003Cp>Use these shortcodes in:\u003Cbr \u002F>\n*   Page\u002FPost content\u003Cbr \u002F>\n*   Text Widgets\u003Cbr \u002F>\n*   Page builder elements (like text blocks or HTML modules)\u003Cbr \u002F>\n*   Website headers\u002Ffooters (via theme options, hooks, or site editor blocks)\u003Cbr \u002F>\n*   Banner, announcement bar, or popup plugins that support shortcodes\u003Cbr \u002F>\n*   Anywhere else WordPress shortcodes are processed!\u003C\u002Fp>\n\u003Ch3>Getting Started\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to \u003Cstrong>AutoPromote\u003C\u002Fstrong> -> \u003Cstrong>Add New Promotion\u003C\u002Fstrong> in your WordPress admin menu.\u003C\u002Fli>\n\u003Cli>Enter a \u003Cstrong>Title\u003C\u002Fstrong> for your promotion (e.g., “Summer Kick-Off Sale”, “Website Maintenance Notice”). This is used by the \u003Ccode>[pixel_apfw_promotion_name]\u003C\u002Fcode> shortcode.\u003C\u002Fli>\n\u003Cli>In the \u003Cstrong>Promotion Details\u003C\u002Fstrong> section below the main editor:\n\u003Cul>\n\u003Cli>Select the \u003Cstrong>Start Date\u002FTime\u003C\u002Fstrong> and \u003Cstrong>End Date\u002FTime\u003C\u002Fstrong> using the calendar\u002Ftime pickers. These are required.\u003C\u002Fli>\n\u003Cli>Write the \u003Cstrong>Description\u003C\u002Fstrong> for your promotion using the editor provided. This is used by \u003Ccode>[pixel_apfw_promotion_description]\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Select Image\u003C\u002Fstrong> to upload or choose a \u003Cstrong>Promotional Image\u003C\u002Fstrong> from your Media Library. This is used by \u003Ccode>[pixel_apfw_promotion_image]\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Optionally, enter the \u003Cstrong>Coupon Code\u003C\u002Fstrong>, \u003Cstrong>Discount Amount\u003C\u002Fstrong>, and select the \u003Cstrong>Discount Type\u003C\u002Fstrong> if this promotion involves a discount. This data is used by the \u003Ccode>[pixel_apfw_promotion_coupon_code]\u003C\u002Fcode> and \u003Ccode>[pixel_apfw_promotion_discount_amount]\u003C\u002Fcode> shortcodes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Publish\u003C\u002Fstrong> the promotion.\u003C\u002Fli>\n\u003Cli>Go to \u003Cstrong>AutoPromote\u003C\u002Fstrong> -> \u003Cstrong>All Promotions\u003C\u002Fstrong> to see a list of your scheduled promotions, their status (Scheduled, Active, Finished), and their dates.\u003C\u002Fli>\n\u003Cli>Go to \u003Cstrong>AutoPromote\u003C\u002Fstrong> -> \u003Cstrong>Settings\u003C\u002Fstrong> to configure global fallbacks (what shows when no promotion is active) and default formatting for dates and coupon details. You can also find a list of all available shortcodes here with copy buttons.\u003C\u002Fli>\n\u003Cli>Place the desired shortcodes (e.g., \u003Ccode>[pixel_apfw_promotion_name]\u003C\u002Fcode>, \u003Ccode>[pixel_apfw_promotion_image]\u003C\u002Fcode>) on your site’s pages, posts, widgets, etc., where you want the promotion information to appear dynamically.\u003C\u002Fli>\n\u003C\u002Fol>\n","Dynamically update sales information, banners, announcements, and promotions with ease across your website.",0,290,"2025-06-25T06:42:00.000Z","6.8.5","6.6","7.4",[18,19,20,21,22],"campaign-manager","marketing-manager","promotion-scheduler","sales-calendar","sales-planner","https:\u002F\u002Fpixelplugins.co\u002Fautopromote","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fautopromote.1.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"pixelplugins",2,30,94,"2026-04-04T18:38:21.831Z",[36],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":25,"num_ratings":46,"last_updated":47,"tested_up_to":47,"requires_at_least":47,"requires_php":47,"tags":48,"homepage":53,"download_link":54,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":55},"e-mail-campaign-manager","E-mail Campaign Manager","1.9","Roman Cieciuch","https:\u002F\u002Fprofiles.wordpress.org\u002Fromancieciuch\u002F","\u003Cp>The plugin allows You to manage Your customers subscription list. You can create \u003Cstrong>unlimited campaigns\u003C\u002Fstrong>, which can store \u003Cstrong>unlimited e-mail subscriptions\u003C\u002Fstrong>. Doesn’t it sound great? Plus, You can import\u002Fexport Your e-mails at \u003Cstrong>any time\u003C\u002Fstrong>.\u003Cbr \u002F>\nIt works both for newsletter subscriptions or letting users to download Your file (like PDF e-books, etc.) once user confirms the new subscription.\u003C\u002Fp>\n\u003Ch4>Setup in seconds\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create new campaign with minimum effort\u003C\u002Fli>\n\u003Cli>Generate the subscription form (it can be either \u003Cem>short_code\u003C\u002Fem> or standard \u003Cem>HTML\u003C\u002Fem> code)\u003C\u002Fli>\n\u003Cli>Modify the form (if You’re a programmer), or leave it as it is – both ways are great\u003C\u002Fli>\n\u003Cli>Place the form on the site (anywhere in the theme or on any page\u002Fpost)\u003C\u002Fli>\n\u003Cli>And that’s it. \u003Cstrong>YOU’RE DONE!\u003C\u002Fstrong> Now let the magic happen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>New subscriptions\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Once Your customer submits the form – the confirmation e-mail will be sent. The e-mail contains Your custom message and the activation link.\u003C\u002Fli>\n\u003Cli>The activation link is created automatically, and after clicking the link – there’s a redirect to the \u003Cem>Thank You\u003C\u002Fem> page or to any specified path, eg. to a file download, if You want to share Your e-books, music or anything else.\u003C\u002Fli>\n\u003Cli>The form contains a spam protection called \u003Cem>honeypot\u003C\u002Fem> and the \u003Cem>security hash\u003C\u002Fem> to prevent sending the form by the robots over and over.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Import \u002F Export\u003C\u002Fh4>\n\u003Cp>Anytime You can easily export subscribers from any category. Just select category and a list of activated users will be generated. All e-mail addresses comma-separated – ready do copy and paste to Your e-mail sending software.\u003C\u002Fp>\n\u003Cp>The same with the import. If You have a list of comma-separated e-mail addresses – just paste them into textarea field, then select campaign You want them to join. Click on Import button. And You’re done! Everything’s now in database.\u003C\u002Fp>\n\u003Ch4>Other features\u003C\u002Fh4>\n\u003Cp>One e-mail address can join particular campaign only once. Our app keeps the subscription list clean to avoid duplicating users, so You don’t have to worry about that.\u003Cbr \u002F>\nThere’s a button in Dashboard area to clean up the list of e-mails that have not been confirmed for more than 30 days.\u003Cbr \u002F>\nNow You can generate link to user unsubscription.\u003C\u002Fp>\n\u003Ch4>Feature Roadmap\u003C\u002Fh4>\n\u003Cp>We’re going to create a feature that allows You to migrate Your whole e-mails and campaigns database with ease. It can be helpful if You want to copy all the goodness You’ve collected to another project.\u003Cbr \u002F>\nPlus, we’re open to any suggestions. You can drop us a line at the official plugin page: \u003Ca href=\"http:\u002F\u002Flearntofrontend.com\u002Fplugins\u002Fe-mail-campaign-manager\" title=\"E-mail Campaign Manager plugin site\" rel=\"nofollow ugc\">E-mail Campaign Manager\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Bug reports\u003C\u002Fh4>\n\u003Cp>We’re ready to help You, please e-mail us at \u003Cem>info (at) abckodera dot pl\u003C\u002Fem>.\u003C\u002Fp>\n\u003Ch4>Sharing is caring\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Website: https:\u002F\u002Fabckodera.pl\u002Faktualnosci\u002Fe-mail-campaign-manager\u002F\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fabckodera\" title=\"ABC Kodera\" rel=\"nofollow ugc\">Facebook\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Notes and Incompatible plugins\u003C\u002Fh3>\n\u003Cp>No known issues.\u003C\u002Fp>\n\u003Ch3>Any Questions?\u003C\u002Fh3>\n\u003Cp>We love to hear from you! Drop us a line at \u003Cem>hello (at) learntofrontend dot com\u003C\u002Fem>.\u003C\u002Fp>\n","Requires at least: 3.0.1 Tested up to: 4.8 Donate link: https:\u002F\u002Fwww.paypal.me\u002Fr1mediapl Stable tag: 1.9 License: GPLv2 or later License URI: http:\u002F\u002Fww &hellip;",10,2633,1,"",[37,49,50,51,52],"e-mail-list","e-mail-manager","email-list","subscription-manager","https:\u002F\u002Fabckodera.pl\u002Faktualnosci\u002Fe-mail-campaign-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fe-mail-campaign-manager.zip","2026-03-15T10:48:56.248Z",{"attackSurface":57,"codeSignals":208,"taintFlows":271,"riskAssessment":272,"analyzedAt":280},{"hooks":58,"ajaxHandlers":164,"restRoutes":165,"shortcodes":173,"cronEvents":206,"entryPointCount":207,"unprotectedCount":11},[59,65,69,73,77,81,85,91,95,99,103,107,112,117,120,125,129,133,135,139,142,145,148,152,157,161],{"type":60,"name":61,"callback":62,"file":63,"line":64},"action","after_uninstall","pixel_apfw_fs_uninstall_cleanup","autopromote.php",66,{"type":60,"name":66,"callback":67,"file":63,"line":68},"init","pixel_apfw_register_post_types",156,{"type":60,"name":70,"callback":71,"file":63,"line":72},"admin_menu","pixel_apfw_register_admin_menu_pages",157,{"type":60,"name":74,"callback":75,"file":63,"line":76},"admin_enqueue_scripts","enqueue_admin_assets",158,{"type":60,"name":78,"callback":79,"file":63,"line":80},"wp_enqueue_scripts","enqueue_frontend_assets",159,{"type":60,"name":82,"callback":83,"file":63,"line":84},"plugins_loaded","pixel_apfw_initialize_plugin",262,{"type":86,"name":87,"callback":88,"file":89,"line":90},"filter","manage_pixel_apfw_promotion_posts_columns","pixel_apfw_promotion_columns","includes\\admin-columns.php",32,{"type":86,"name":92,"callback":93,"file":89,"line":94},"manage_edit-pixel_apfw_promotion_sortable_columns","pixel_apfw_promotion_sortable_columns",46,{"type":60,"name":96,"callback":97,"file":89,"line":98},"pre_get_posts","pixel_apfw_promotion_sort_columns",76,{"type":60,"name":100,"callback":101,"priority":44,"file":89,"line":102},"manage_pixel_apfw_promotion_posts_custom_column","pixel_apfw_custom_promotion_column",129,{"type":86,"name":104,"callback":105,"file":89,"line":106},"views_edit-pixel_apfw_promotion","pixel_apfw_custom_empty_message_views",242,{"type":86,"name":108,"callback":109,"file":110,"line":111},"parent_file","pixel_apfw_set_admin_menu_highlight","includes\\admin-menu.php",106,{"type":60,"name":113,"callback":114,"file":115,"line":116},"admin_init","pixel_apfw_register_settings","includes\\admin-settings.php",130,{"type":60,"name":74,"callback":118,"file":115,"line":119},"pixel_apfw_enqueue_settings_scripts",522,{"type":60,"name":121,"callback":122,"file":123,"line":124},"add_meta_boxes_pixel_apfw_promotion","pixel_apfw_add_promotion_metabox","includes\\metaboxes.php",31,{"type":60,"name":126,"callback":127,"file":123,"line":128},"admin_notices","closure",370,{"type":60,"name":130,"callback":131,"priority":44,"file":123,"line":132},"save_post_pixel_apfw_promotion","pixel_apfw_save_promotion_details",540,{"type":60,"name":130,"callback":131,"priority":44,"file":123,"line":134},558,{"type":86,"name":136,"callback":137,"priority":44,"file":123,"line":138},"redirect_post_location","pixel_apfw_add_conflict_notice_nonce_to_redirect",587,{"type":60,"name":126,"callback":140,"file":123,"line":141},"pixel_apfw_display_admin_notices",649,{"type":60,"name":74,"callback":143,"file":123,"line":144},"pixel_apfw_enqueue_metabox_scripts",739,{"type":60,"name":126,"callback":146,"file":123,"line":147},"pixel_apfw_last_active_edit_notice",780,{"type":86,"name":149,"callback":150,"priority":44,"file":123,"line":151},"get_edit_post_link","pixel_apfw_filter_edit_post_link",823,{"type":60,"name":153,"callback":154,"file":155,"line":156},"rest_api_init","pixel_apfw_register_rest_routes","includes\\rest-api.php",37,{"type":60,"name":130,"callback":158,"priority":44,"file":159,"line":160},"pixel_apfw_clear_promotion_id_transients","includes\\shortcodes.php",162,{"type":60,"name":162,"callback":158,"priority":44,"file":159,"line":163},"delete_post",169,[],[166],{"namespace":167,"route":168,"methods":169,"callback":171,"permissionCallback":127,"file":155,"line":172},"pixel-apfw\u002Fv1","\u002Fpromotion-dates",[170],"GET","pixel_apfw_get_promotion_dates",17,[174,178,182,186,190,194,198,202],{"tag":175,"callback":176,"file":159,"line":177},"pixel_apfw_promotion_name","pixel_apfw_shortcode_promotion_name",210,{"tag":179,"callback":180,"file":159,"line":181},"pixel_apfw_promotion_description","pixel_apfw_shortcode_promotion_description",240,{"tag":183,"callback":184,"file":159,"line":185},"pixel_apfw_promotion_image","pixel_apfw_shortcode_promotion_image",270,{"tag":187,"callback":188,"file":159,"line":189},"pixel_apfw_promotion_coupon_code","pixel_apfw_shortcode_coupon_code",318,{"tag":191,"callback":192,"file":159,"line":193},"pixel_apfw_promotion_discount_amount","pixel_apfw_shortcode_discount_amount",381,{"tag":195,"callback":196,"file":159,"line":197},"pixel_apfw_promotion_date","pixel_apfw_shortcode_promotion_date",436,{"tag":199,"callback":200,"file":159,"line":201},"pixel_apfw_promotion_start_date","pixel_apfw_shortcode_promotion_start_date_alias",446,{"tag":203,"callback":204,"file":159,"line":205},"pixel_apfw_promotion_end_date","pixel_apfw_shortcode_promotion_end_date_alias",457,[],9,{"dangerousFunctions":209,"sqlUsage":210,"outputEscaping":212,"fileOperations":11,"externalRequests":11,"nonceChecks":265,"capabilityChecks":266,"bundledLibraries":267},[],{"prepared":11,"raw":11,"locations":211},[],{"escaped":33,"rawEcho":213,"locations":214},26,[215,218,220,222,224,225,226,228,230,232,234,236,238,240,242,244,246,247,249,251,253,255,257,259,261,263],{"file":115,"line":216,"context":217},194,"raw output",{"file":115,"line":219,"context":217},198,{"file":115,"line":221,"context":217},259,{"file":115,"line":223,"context":217},269,{"file":115,"line":185,"context":217},{"file":115,"line":12,"context":217},{"file":115,"line":227,"context":217},301,{"file":115,"line":229,"context":217},302,{"file":115,"line":231,"context":217},305,{"file":115,"line":233,"context":217},309,{"file":115,"line":235,"context":217},328,{"file":115,"line":237,"context":217},338,{"file":115,"line":239,"context":217},348,{"file":115,"line":241,"context":217},358,{"file":115,"line":243,"context":217},359,{"file":115,"line":245,"context":217},369,{"file":115,"line":128,"context":217},{"file":115,"line":248,"context":217},372,{"file":115,"line":250,"context":217},373,{"file":115,"line":252,"context":217},387,{"file":115,"line":254,"context":217},390,{"file":115,"line":256,"context":217},407,{"file":115,"line":258,"context":217},410,{"file":115,"line":260,"context":217},427,{"file":115,"line":262,"context":217},430,{"file":123,"line":264,"context":217},182,3,5,[268],{"name":269,"version":6,"knownCves":270},"Freemius",[],[],{"summary":273,"deductions":274},"The Autopromote plugin v1.0 exhibits a generally strong security posture based on the provided static analysis. The absence of dangerous functions, raw SQL queries, and file operations are positive indicators. Furthermore, the plugin demonstrates good security practices by implementing nonce and capability checks, and the majority of output is properly escaped.  The plugin's attack surface is also relatively small and appears to be protected.  \n\nHowever, the limited taint analysis results (0 flows analyzed) mean that while no issues were found, the depth of this analysis might not have been comprehensive enough to uncover potential vulnerabilities. The fact that 22% of output is not properly escaped presents a moderate risk of Cross-Site Scripting (XSS) vulnerabilities, particularly if sensitive data is handled in these unescaped areas.  The bundled Freemius library, if not kept up-to-date, could also pose a risk.\n\nOverall, Autopromote v1.0 appears to be a well-developed plugin with sound security principles. The lack of any recorded vulnerabilities or CVEs is a significant strength. The primary areas for improvement are ensuring all output is properly escaped and monitoring the security of bundled libraries. The limited taint analysis warrants further investigation if resources permit.",[275,278],{"reason":276,"points":277},"Unescaped output detected",8,{"reason":279,"points":265},"Bundled Freemius v1.0 library","2026-03-17T07:04:55.629Z",{"wat":282,"direct":289},{"assetPaths":283,"generatorPatterns":285,"scriptPaths":286,"versionParams":287},[284],"\u002Fwp-content\u002Fplugins\u002Fautopromote\u002Fassets\u002Fcss\u002Fpublic.css",[],[],[288],"autopromote\u002Fassets\u002Fcss\u002Fpublic.css?ver=",{"cssClasses":290,"htmlComments":293,"htmlAttributes":294,"restEndpoints":295,"jsGlobals":297,"shortcodeOutput":298},[291,292],"pixel-apfw-admin-columns","pixel-apfw-public",[],[],[296],"\u002Fwp-json\u002Fpixel-apfw\u002Fv1",[],[]]