{"id":404241,"date":"2026-11-13T16:46:21","date_gmt":"2026-11-13T16:46:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fizz-labs-upgrade-scanner-for-php\/"},"modified":"2026-11-13T16:45:53","modified_gmt":"2026-11-13T16:45:53","slug":"fizz-labs-upgrade-scanner-for-php","status":"publish","type":"plugin","link":"https:\/\/fa.wordpress.org\/plugins\/fizz-labs-upgrade-scanner-for-php\/","author":23604844,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Fizz Labs Upgrade Scanner for PHP","header_author":"Fizz Labs","header_description":"Finds functions, constants and syntax removed or deprecated in PHP 8.0 to 8.4 in your plugins and themes. Scans run on your own server.","last_updated":"2026-11-13 16:45:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":68,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"fizzlabs","date":"2026-11-13 16:45:53","revision":3800838}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Summary table with counts per plugin, theme and PHP version.","2":"Finding details with file, line and php.net reference.","3":"Server PHP version and support dates panel."}},"plugin_section":[],"plugin_tags":[265092,290955,289934,258141,284277],"plugin_category":[],"plugin_contributors":[292611],"plugin_business_model":[],"class_list":["post-404241","plugin","type-plugin","status-publish","hentry","plugin_tags-compatibility-checker","plugin_tags-php-8-3","plugin_tags-php-8-4","plugin_tags-php-compatibility","plugin_tags-php-upgrade","plugin_contributors-fizzlabs","plugin_committers-fizzlabs"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/fizz-labs-upgrade-scanner-for-php.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Check your plugins and themes before you switch to PHP 8.3 or 8.4.<\/p>\n\n<p>Fizz Labs Upgrade Scanner for PHP reads the PHP code of every installed plugin and theme, finds functions, constants and syntax that were removed or deprecated in PHP 8.0 to 8.4, and shows you the file and line. It runs entirely on your server.<\/p>\n\n<ul>\n<li><strong>Know what to fix, file by file.<\/strong> Counts per plugin and theme, per PHP version, with the exact <code>file:line<\/code> and the php.net migration note behind every finding.<\/li>\n<li><strong>No data leaves your server.<\/strong> No external requests, no tracking, no account, no API key. The scan reads files locally and stores one report in your database.<\/li>\n<li><strong>Free and complete.<\/strong> Every feature is free: unlimited scans, CSV and JSON export, and a WP-CLI command (<code>wp fizz-labs-upgrade-scanner-for-php scan<\/code>) for agencies and CI.<\/li>\n<\/ul>\n\n<p>Install the plugin, then go to <strong>Tools \u2192 Fizz Labs Upgrade Scanner for PHP<\/strong> and click <strong>Scan plugins and themes<\/strong>.<\/p>\n\n<h4>What it checks<\/h4>\n\n<ul>\n<li>Removed in PHP 8.0: create_function(), each(), __autoload(), the (real) and (unset) casts, $php_errormsg, $str{0} offsets, money_format(), get_magic_quotes_gpc() and other removed functions.<\/li>\n<li>Deprecated in PHP 8.1: strftime(), date_sunrise(), mhash(), FILTER_SANITIZE_STRING, Serializable without __serialize() and more.<\/li>\n<li>Deprecated in PHP 8.2: utf8_encode(), utf8_decode() and \"${var}\" string interpolation.<\/li>\n<li>Deprecated in PHP 8.3: get_class() without arguments, assert_options() and the ASSERT_* constants.<\/li>\n<li>Deprecated in PHP 8.4: implicitly nullable parameter types, E_STRICT, trigger_error() with E_USER_ERROR, mysqli_ping(), lcg_value() and more. Functions of the IMAP, OCI8 and Pspell extensions, which moved from PHP core to PECL in 8.4.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>No data leaves your server. Fizz Labs Upgrade Scanner for PHP makes no external HTTP requests, sends no telemetry and sets no cookies. It reads plugin and theme files on your server and saves the latest report in your WordPress database (option <code>phpups_last_report<\/code>). Deleting the plugin removes that data.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In wp-admin, go to Plugins \u2192 Add New and search for \"Fizz Labs Upgrade Scanner for PHP\", or upload the plugin zip.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Tools \u2192 Fizz Labs Upgrade Scanner for PHP, choose PHP 8.4 or PHP 8.3, and click Scan plugins and themes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20any%20data%20leave%20my%20server%3F\"><h3>Does any data leave my server?<\/h3><\/dt>\n<dd><p>No. Fizz Labs Upgrade Scanner for PHP makes no external HTTP requests, sends no telemetry and sets no cookies. You can verify this: the plugin contains no HTTP client calls.<\/p><\/dd>\n<dt id=\"when%20does%20php%208.2%20reach%20end%20of%20life%3F\"><h3>When does PHP 8.2 reach end of life?<\/h3><\/dt>\n<dd><p>PHP 8.2 receives security fixes until 2026-12-31, according to php.net's supported versions page. PHP 8.3 is supported until 2027-12-31 and PHP 8.4 until 2028-12-31. Many hosts move sites to newer PHP versions around these dates.<\/p><\/dd>\n<dt id=\"which%20php%20versions%20does%20it%20check%3F\"><h3>Which PHP versions does it check?<\/h3><\/dt>\n<dd><p>PHP 8.0, 8.1, 8.2, 8.3 and 8.4 removals and deprecations. Choose 8.3 or 8.4 as the target.<\/p><\/dd>\n<dt id=\"does%20it%20run%20or%20execute%20plugin%20code%3F\"><h3>Does it run or execute plugin code?<\/h3><\/dt>\n<dd><p>No. It tokenizes files with PHP's built-in tokenizer and never includes or executes them.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>Scans run only when you click Scan, in small batches (150 files or about 8 seconds per request), and only in wp-admin. Nothing runs on the front end.<\/p><\/dd>\n<dt id=\"what%20can%27t%20it%20detect%3F\"><h3>What can't it detect?<\/h3><\/dt>\n<dd><p>Some changes cannot be found reliably by reading code: passing null to non-nullable parameters of built-in functions (8.1), dynamic properties (8.2), unparenthesized nested ternary operators, \"self::method\" style callable strings, and increment or decrement of non-numeric strings. Always test on a staging site.<\/p><\/dd>\n<dt id=\"a%20finding%20is%20in%20code%20that%20checks%20the%20php%20version%20first.%20is%20it%20a%20false%20positive%3F\"><h3>A finding is in code that checks the PHP version first. Is it a false positive?<\/h3><\/dt>\n<dd><p>Possibly. Static checks cannot see runtime conditions. Review the line.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20from%20the%20command%20line%3F\"><h3>Can I use it from the command line?<\/h3><\/dt>\n<dd><p>Yes, with WP-CLI:<\/p>\n\n<pre><code>wp fizz-labs-upgrade-scanner-for-php scan\nwp fizz-labs-upgrade-scanner-for-php scan --target=8.3 --format=csv &gt; report.csv\nwp fizz-labs-upgrade-scanner-for-php scan --plugin=my-plugin --format=json\n<\/code><\/pre>\n\n<p>The command exits with 0 when nothing was found, 1 when there are items to review, and 2 when the scan could not run.<\/p><\/dd>\n<dt id=\"who%20makes%20this%20plugin%3F\"><h3>Who makes this plugin?<\/h3><\/dt>\n<dd><p>Fizz Labs Upgrade Scanner for PHP is made by Fizz Labs: https:\/\/fizzlabs.ai\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Find PHP 8.3 and 8.4 compatibility issues in your plugins and themes. Scans run on your own server. No data leaves your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/404241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=404241"}],"author":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fizzlabs"}],"wp:attachment":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=404241"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=404241"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=404241"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=404241"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=404241"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=404241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}