Memberful – Membership Plugin

Sell memberships and restrict access to content with WordPress and Memberful.

v1.80.0memberfulUpdated Added 1k+ installs94% rating
27
Score
351
Errors
336
Warnings
+0
Change

Category Scores

Security0
Repo91
Performance100
Maintainability16

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

687 findings

Security

344

10 issue groups

Maintainability

202

12 issue groups

I18n

123

3 issue groups

ERRORI18nText Domain MismatchMismatched text domain. Expected 'memberful-wp' but got 'mcmc_inventory'.99
Category
I18n
Occurrences
99
Severity
error

Sample message

Mismatched text domain. Expected 'memberful-wp' but got 'mcmc_inventory'.

WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.86
Category
Security
Occurrences
86
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORMaintainabilityMissing direct file access protectionPHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;72
Category
Maintainability
Occurrences
72
Severity
error

Sample message

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

ERRORSecurityUnsafe printing functionAll output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.62
Category
Security
Occurrences
62
Severity
error

Sample message

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$after_title'.48
Category
Security
Occurrences
48
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$after_title'.

WARNINGMaintainabilityNon-prefixed global variableGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$category".41
Category
Maintainability
Occurrences
41
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$category".

WARNINGSecurityRequest data is not unslashed$_COOKIE[Memberful_Sync_Verification::NONCE_COOKIE_KEY] not unslashed before sanitization. Use wp_unslash() or similar36
Category
Security
Occurrences
36
Severity
warning

Sample message

$_COOKIE[Memberful_Sync_Verification::NONCE_COOKIE_KEY] not unslashed before sanitization. Use wp_unslash() or similar

ERRORSecuritySQL query is not preparedUse placeholders and $wpdb->prepare(); found $insert26
Category
Security
Occurrences
26
Severity
error

Sample message

Use placeholders and $wpdb->prepare(); found $insert

WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.26
Category
Security
Occurrences
26
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_COOKIE[Memberful_Sync_Verification::NONCE_COOKIE_KEY]25
Category
Security
Occurrences
25
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_COOKIE[Memberful_Sync_Verification::NONCE_COOKIE_KEY]

Show 15 more
WARNINGMaintainabilityDirect Query22
Category
Maintainability
Occurrences
22
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo Caching22
Category
Maintainability
Occurrences
22
Severity
warning

Sample message

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

ERRORI18nMissing Arg Domain21
Category
I18n
Occurrences
21
Severity
error

Sample message

Missing $domain parameter in function call to __().

WARNINGMaintainabilityNon-prefixed hook name16
Category
Maintainability
Occurrences
16
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins".

WARNINGSecuritywp redirect wp redirect16
Category
Security
Occurrences
16
Severity
warning

Sample message

wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.

WARNINGMaintainabilityNon-prefixed function12
Category
Maintainability
Occurrences
12
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "_memberful_wp_debug_all_post_meta".

ERRORSecurityDatabase parameter is not escaped10
Category
Security
Occurrences
10
Severity
error

Sample message

Unescaped parameter $query used in $wpdb->get_col()\n$query assigned unsafely at line 14.

WARNINGSecurityInput is not validated9
Category
Security
Occurrences
9
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_GET['member-feed']. Check that the array index exists before using it.

WARNINGMaintainabilitySchema Change4
Category
Maintainability
Occurrences
4
Severity
warning

Sample message

Attempting a database schema change is discouraged.

WARNINGMaintainabilityerror log var export3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

var_export() found. Debug code should not normally be used in production.

WARNINGMaintainabilityNot In Footer3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

ERRORI18nMissing Translators Comment3
Category
I18n
Occurrences
3
Severity
error

Sample message

A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.

WARNINGMaintainabilitytrademarked term3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

The plugin name includes a restricted term. Your chosen plugin name - "Memberful - Membership Plugin" - contains the restricted term "plugin" which cannot be used at all in your plugin name.

WARNINGMaintainabilityDiscouraged PHP function2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

The use of function set_time_limit() is discouraged

ERRORMaintainabilitydate date2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

External Connections

Potential connections found in static code analysis.

11 domains

Outbound calls

18

External assets

0

Incoming endpoints

1

Notable Domains

purl.org4 · outbound
memberful.com3 · outbound
apps.memberful.com1 · outbound
google.com1 · outbound
itunes.com1 · outbound
js.memberful.com1 · outbound

Platform / Reference Domains

w3.org3 · platform/reference
github.com1 · platform/reference

External Asset Domains

No external asset domains detected.

Incoming Endpoints

No public endpoints detected.

Admin AJAX endpoints1
wp_ajax_memberful_dismiss_expiry_bannerauthenticated

wp_ajax

Score History

First score snapshot

v1.80.0

27

Latest

Findings
687
Errors
351
Warnings
336
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

37 nodes

Related

Related Plugins