Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully
Server metrics [RAM: ▲2.48MB] [CPU: ▲15.18ms] 50% from 4 tests
Analyzing server-side resources used by Donation Forms by Charitable - Donations Plugin & Fundraising Platform for WordPress
Please have a look at the following items
- CPU: Total CPU usage should be kept under 500.00ms (currently 2,752.92ms on /wp-admin/admin.php?page=charitable-addons)
- RAM: Try to keep total memory usage under 10MB (currently 12.36MB on /wp-admin/admin.php?page=charitable-campaign-builder)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.00 ▲2.53 | 60.65 ▲18.06 |
Dashboard /wp-admin | 6.20 ▲2.90 | 99.76 ▲51.01 |
Posts /wp-admin/edit.php | 6.26 ▲2.91 | 60.30 ▲14.22 |
Add New Post /wp-admin/post-new.php | 7.56 ▲1.67 | 101.45 ▲10.92 |
Media Library /wp-admin/upload.php | 6.06 ▲2.83 | 50.26 ▲17.51 |
Addons /wp-admin/admin.php?page=charitable-addons | 7.18 | 2,752.92 |
Categories /wp-admin/edit-tags.php?taxonomy=campaign_category&post_type=campaign | 6.18 | 50.40 |
Donations /wp-admin/edit.php?post_type=donation | 6.27 | 48.44 |
Upgrade Charitable /wp-admin/index.php?page=charitable-upgrades | 6.07 | 45.93 |
Customize /wp-admin/customize.php?autofocus[panel]=charitable&url=http%3A%2F%2Fwp.com | 9.12 | 195.11 |
Charitable /wp-admin/admin.php?page=charitable | 6.59 | 494.68 |
Campaign Builder /wp-admin/admin.php?page=charitable-campaign-builder | 12.36 | 145.72 |
Tags /wp-admin/edit-tags.php?taxonomy=campaign_tag&post_type=campaign | 6.75 | 49.38 |
Settings /wp-admin/admin.php?page=charitable-settings | 7.34 | 55.07 |
Add New /wp-admin/edit.php?post_type=campaign&create=campaign | 6.91 | 54.95 |
Server storage [IO: ▲18.27MB] [DB: ▲0.93MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 1,621 new files
Database: 3 new tables, 21 new options
New tables |
---|
wp_charitable_campaign_donations |
wp_charitable_donors |
wp_charitable_donormeta |
New WordPress options |
---|
db_upgraded |
charitable_doing_upgrade |
widget_charitable_donors_widget |
charitable_campaign_builder_templates |
widget_charitable_campaigns_widget |
charitable_activated |
can_compress_scripts |
charitable_notifications |
widget_charitable_donate_widget |
widget_theysaidso_widget |
... |
Browser metrics Passed 4 tests
Checking browser requirements for Donation Forms by Charitable - Donations Plugin & Fundraising Platform for WordPress
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,131 ▲344 | 14.34 ▼0.37 | 8.96 ▲7.02 | 34.17 ▼9.93 |
Dashboard /wp-admin | 2,410 ▲230 | 5.35 ▼0.29 | 109.63 ▲8.83 | 78.53 ▲33.68 |
Posts /wp-admin/edit.php | 2,177 ▲74 | 2.11 ▲0.17 | 49.83 ▲11.20 | 39.38 ▲3.67 |
Add New Post /wp-admin/post-new.php | 1,644 ▲117 | 23.93 ▲0.74 | 614.56 ▼91.72 | 30.51 ▼30.40 |
Media Library /wp-admin/upload.php | 1,483 ▲83 | 4.29 ▲0.11 | 100.60 ▼8.97 | 45.04 ▲0.45 |
Addons /wp-admin/admin.php?page=charitable-addons | 2,301 | 2.54 | 55.51 | 90.00 |
Categories /wp-admin/edit-tags.php?taxonomy=campaign_category&post_type=campaign | 1,411 | 2.04 | 39.25 | 62.13 |
Donations /wp-admin/edit.php?post_type=donation | 1,569 | 2.75 | 55.05 | 72.49 |
Upgrade Charitable /wp-admin/index.php?page=charitable-upgrades | 3,224 | 6.88 | 110.44 | 51.17 |
Customize /wp-admin/customize.php?autofocus[panel]=charitable&url=http%3A%2F%2Fwp.com | 9,326 | 23.98 | 638.09 | 148.27 |
Charitable /wp-admin/admin.php?page=charitable | 1,103 | 2.69 | 37.99 | 90.84 |
Campaign Builder /wp-admin/admin.php?page=charitable-campaign-builder | 6,175 | 7.98 | 232.74 | 108.84 |
Tags /wp-admin/edit-tags.php?taxonomy=campaign_tag&post_type=campaign | 1,393 | 1.97 | 34.59 | 52.54 |
Settings /wp-admin/admin.php?page=charitable-settings | 3,139 | 2.57 | 51.72 | 116.47 |
Add New /wp-admin/edit.php?post_type=campaign&create=campaign | 1,617 | 2.88 | 66.27 | 91.91 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.93MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
- This plugin does not fully uninstall, leaving 3 tables in the database
- wp_charitable_campaign_donations
- wp_charitable_donors
- wp_charitable_donormeta
- This plugin does not fully uninstall, leaving 20 options in the database
- wpcharitable_activated_datetime
- widget_charitable_donation_stats_widget
- can_compress_scripts
- widget_charitable_donors_widget
- charitable_activated
- wp_charitable_donors_db_version
- widget_recent-posts
- charitable_campaign_builder_templates
- widget_charitable_campaigns_widget
- db_upgraded
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
The following issues need your attention
- 44× PHP files perform the action of outputting non-empty strings when accessed directly (only 10 are shown):
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/frontend/medical-causes.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/admin/environmental.php
- > /wp-content/plugins/charitable/vendor/stripe/stripe-php/update_certs.php
- > /wp-content/plugins/charitable/includes/stripe/libraries/vendor/stripe/stripe-php/build.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/frontend/simple-2-col.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/admin/simple-2-col-colors.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/admin/basic.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/admin/school-trip.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/frontend/medical-bills.php
- > /wp-content/plugins/charitable/assets/css/campaign-builder/themes/admin/medical-bills-colors.php
- 559× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/LineItem.php:24
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/SourceTransaction.php:17
- > PHP Notice
Trying to access array offset on value of type null in wp-content/plugins/charitable/templates/campaign/summary-donations.php on line 13
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/Service/FileLinkService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/File.php:30
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/includes/stripe/libraries/vendor/stripe/stripe-php/lib/Charge.php:41
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\Service\\AbstractService' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/Service/InvoiceService.php:7
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/Issuing/CardDetails.php:16
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\ApiResource' not found in wp-content/plugins/charitable/includes/stripe/libraries/vendor/stripe/stripe-php/lib/Dispute.php:25
- > PHP Fatal error
Uncaught Error: Class 'Stripe\\StripeObject' not found in wp-content/plugins/charitable/vendor/stripe/stripe-php/lib/ApiResource.php:8
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Please fix the following user-side errors
- > GET request to /wp-admin/customize.php?autofocus[panel]=charitable&url=http%3A%2F%2Fwp.com
- > Javascript (severe) in unknown
/wp-content/plugins/charitable/assets/js/blocks/build/index.js?ver=fe3232aaa35fb97386bb 58:25 Uncaught ReferenceError: charitable_block_data is not defined
- > GET request to /wp-admin/customize.php?autofocus[panel]=charitable&url=http%3A%2F%2Fwp.com
- > Security (warning) in unknown
/?customize_changeset_uuid=2a38a061-2014-4949-a2ca-38915c93a086&customize_theme=twentytwentyone&customize_messenger_channel=preview-0 - An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=charitable-campaign-builder
- > Deprecation (warning) in unknown
/wp-content/plugins/charitable/assets/lib/quill/quill.js?ver=2.2.6 4164 Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event. This event type is deprecated (https://w3c.github.io/uievents/#legacy-event-types) and work is underway to remove it from this browser. Usage of this event listener will cause performance issues today, and represents a risk of future incompatibility. Consider using MutationObserver instead.
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
Please fix the following attributes:
- Tags: Too many tags (16 tag instead of maximum 10); only the first 5 tags are used in your directory listing
charitable/charitable.php 92% from 13 tests
The main PHP script in "Donation Forms by Charitable - Donations Plugin & Fundraising Platform for WordPress" version 1.8.0.4 is automatically included on every request by WordPress
Please make the necessary changes and fix the following:
- Requires at least: The required version number must match the one declared in readme.txt ("5.0" instead of "4.1")
Code Analysis 5% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
Almost there! Just fix the following issues
- Do not distribute dangerous files with your plugin
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
- ☣ wp-content/plugins/charitable/includes/stripe/libraries/vendor/stripe/stripe-php/data/ca-certificates.crt
- ☣ wp-content/plugins/charitable/vendor/stripe/stripe-php/data/ca-certificates.crt
- .crt - Security Certificate in Firefox, IE, Chrome, Safari
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 985 | 22,349 | 58,506 | 80,479 |
JavaScript | 95 | 6,979 | 5,522 | 25,238 |
CSS | 76 | 924 | 461 | 20,409 |
Sass | 99 | 2,537 | 1,163 | 13,470 |
SVG | 73 | 0 | 2 | 2,892 |
Markdown | 5 | 1,098 | 0 | 2,446 |
JSON | 7 | 0 | 0 | 375 |
XML | 3 | 0 | 0 | 61 |
make | 1 | 10 | 0 | 29 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.31 |
Average class complexity | 10.70 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 290.00 |
Average method complexity | 2.53 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 76.00 |
Code structure | ||
---|---|---|
Namespaces | 37 | |
Interfaces | 25 | |
Traits | 8 | |
Classes | 632 | |
▷ Abstract classes | 33 | 5.22% |
▷ Concrete classes | 599 | 94.78% |
▷ Final classes | 26 | 4.34% |
Methods | 4,242 | |
▷ Static methods | 604 | 14.24% |
▷ Public methods | 3,667 | 86.45% |
▷ Protected methods | 308 | 7.26% |
▷ Private methods | 267 | 6.29% |
Functions | 363 | |
▷ Named functions | 341 | 93.94% |
▷ Anonymous functions | 22 | 6.06% |
Constants | 1,083 | |
▷ Global constants | 14 | 1.29% |
▷ Class constants | 1,069 | 98.71% |
▷ Public constants | 1,069 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
140 compressed PNG files occupy 5.14MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/images/icons/x.png | 0.35KB | 0.25KB | ▼ 29.53% |
assets/images/campaign-builder/settings/marketing/mailpoet.png | 2.20KB | 2.11KB | ▼ 3.82% |
assets/images/campaign-builder/settings/marketing/active-campaign_big.png | 25.22KB | 25.22KB | 0.00% |
assets/images/campaign-builder/templates/save-the-museum/preview.png | 160.38KB | 169.21KB | 0.00% |
assets/images/icons/panel_design.png | 0.48KB | 0.35KB | ▼ 26.72% |