77% activecampaign-subscription-forms

Code Review | ActiveCampaign - Forms, Site Tracking, Live Chat

WordPress plugin ActiveCampaign - Forms, Site Tracking, Live Chat scored 77% from 54 tests.

About plugin

  • Plugin page: activecampaign-su...
  • Plugin version: 8.1.9
  • PHP compatiblity: 5.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 2.0-5.8.2
  • WordPress version: 5.9.2
  • First release: Oct 15, 2009
  • Latest release: Jan 6, 2022
  • Number of updates: 182
  • Update frequency: every 24.5 days
  • Top authors: activecampaign (100%)

Code review

54 tests

User reviews

27 reviews

Install metrics

70,000+ active / 748,402 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
This plugin's installer ran successfully

Server metrics [RAM: ▲0.08MB] [CPU: ▼288.01ms] Passed 4 tests

This is a short check of server-side resources used by ActiveCampaign - Forms, Site Tracking, Live Chat
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /3.63 ▲0.1253.64 ▲4.95
Dashboard /wp-admin3.47 ▲0.0631.91 ▼2.29
Posts /wp-admin/edit.php3.76 ▲0.1236.52 ▼2.27
Add New Post /wp-admin/post-new.php7.00 ▲0.03112.05 ▼1,145.48
Media Library /wp-admin/upload.php3.41 ▲0.1124.47 ▼2.01
ActiveCampaign /wp-admin/options-general.php?page=activecampaign3.3925.76

Server storage [IO: ▲1.56MB] [DB: ▲0.00MB] Passed 3 tests

How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 57 new files
Database: no new tables, 1 new option
New WordPress options
activecampaign_notice_index

Browser metrics Passed 4 tests

Checking browser requirements for ActiveCampaign - Forms, Site Tracking, Live Chat
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,795 ▲4116.23 ▲0.566.34 ▲0.092.31 ▼0.38
Dashboard /wp-admin2,913 ▲596.93 ▲0.77116.55 ▼27.95152.61 ▼13.90
Posts /wp-admin/edit.php2,719 ▲253.55 ▲0.3264.94 ▲2.30149.42 ▲12.79
Add New Post /wp-admin/post-new.php1,700 ▲3920.55 ▲4.39389.41 ▲0.05173.15 ▲20.29
Media Library /wp-admin/upload.php1,773 ▲755.95 ▲0.40122.21 ▼18.25183.57 ▼4.58
ActiveCampaign /wp-admin/options-general.php?page=activecampaign1,0793.0157.25122.94

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
  • The uninstall procedure has failed, leaving 1 option in the database
    • activecampaign_notice_index

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following
  • 1× PHP files output text when accessed directly:
    • > /wp-content/plugins/activecampaign-subscription-forms/randomimage.php
  • 19× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Message.class.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Deal.class.php:3
    • > PHP Warning
      require_once(wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/config.php): failed to open stream: No such file or directory in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/ActiveCampaign.class.php on line 4
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Design.class.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Form.class.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Campaign.class.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Automation.class.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/activecampaign-subscription-forms/activecampaign.php:875
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Settings.class.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'ActiveCampaignWordPress' not found in wp-content/plugins/activecampaign-subscription-forms/activecampaign-api-php/Contact.class.php:3

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
There were no browser issues found

Optimizations

Plugin configuration 87% from 29 tests

readme.txt 88% from 16 tests

The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Please fix the following attributes:
  • Tags: Too many tags (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
  • Screenshots: These screenshots have no corresponding images in /assets: #1 (Settings page for ActiveCampaign plugin), #2 (Configuring your form settings), #3 (Using the [activecampaign] Button in the Classic Editor), #4 (Viewing the output of the [activecampaign] shortcode), #5 (Adding a shortcode to a Text widget in Appearance > Widgets), #6 (Adding an AC Forms block into the Gutenberg Block Editor), #7 (Editing the AC Forms block within the Gutenberg Block Editor), #8 (Conversations chat widget)
The official readme.txt might help

activecampaign-subscription-forms/activecampaign.php 85% from 13 tests

The primary PHP file in "ActiveCampaign - Forms, Site Tracking, Live Chat" version 8.1.9 is used by WordPress to initiate all plugin functionality
Please make the necessary changes and fix the following:
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("activecampaign-subscription-forms.php" instead of "activecampaign.php")
  • Description: The description should be shorter than 140 characters (currently 467 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
There were no executable files found in this plugin21,216 lines of code in 41 files:
LanguageFilesBlank linesComment linesLines of code
JSON30018,155
PHP234443042,380
JavaScript865118339
Markdown21450187
Sass218283
CSS316072

PHP code Passed 2 tests

Analyzing logical lines of code, cyclomatic complexity, and other code metrics
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.30
Average class complexity9.06
▷ Minimum class complexity1.00
▷ Maximum class complexity70.00
Average method complexity1.95
▷ Minimum method complexity1.00
▷ Maximum method complexity60.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes18
▷ Abstract classes00.00%
▷ Concrete classes18100.00%
▷ Final classes00.00%
Methods152
▷ Static methods00.00%
▷ Public methods15199.34%
▷ Protected methods00.00%
▷ Private methods10.66%
Functions23
▷ Named functions23100.00%
▷ Anonymous functions00.00%
Constants2
▷ Global constants2100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
2 PNG files occupy 0.20MB with 0.16MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant
FileSize - originalSize - compressedSavings
editor_icon.png8.38KB1.96KB▼ 76.64%
settings1.png195.31KB21.59KB▼ 88.94%