Discount by Answer for Easy Digital Downloads Security & Risk Analysis

wordpress.org/plugins/discount-by-answer-for-easy-digital-downloads

Lets your customers answer your requests and issue discount codes in return.

0 active installs v1.0.1 PHP 5.2.4+ WP 4.1+ Updated Dec 13, 2019
discountdiscountseasy-digital-downloadseddpromotion
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Discount by Answer for Easy Digital Downloads Safe to Use in 2026?

Generally Safe

Score 85/100

Discount by Answer for Easy Digital Downloads has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 6yr ago
Risk Assessment

The plugin "discount-by-answer-for-easy-digital-downloads" v1.0.1 exhibits a generally positive security posture, with no recorded vulnerabilities in its history and a strong adherence to secure coding practices in several areas. The absence of known CVEs and a clean vulnerability history suggest diligent maintenance and a lack of previously identified exploitable flaws. The code analysis shows 100% of SQL queries are prepared, a crucial defense against SQL injection. Furthermore, the plugin implements a reasonable number of capability checks and nonce checks where potentially sensitive operations might occur.

However, the static analysis does reveal areas of concern that warrant attention. The most significant is the high number of taint flows with unsanitized paths (9 out of 10 analyzed), with 4 of these classified as high severity. While no critical taint flows were found, these high-severity issues indicate potential pathways for attackers to manipulate data or execute unintended code, especially concerning file operations and external HTTP requests. The output escaping is also a concern, with only 53% properly escaped, leaving a substantial portion of data susceptible to cross-site scripting (XSS) vulnerabilities. While the attack surface appears minimal with zero entry points without authentication, the internal code hygiene issues, particularly around unsanitized paths and output escaping, present a notable risk.

Key Concerns

  • High severity taint flows with unsanitized paths
  • Low percentage of properly escaped output
  • Significant number of file operations
  • External HTTP requests made by the plugin
Vulnerabilities
None known

Discount by Answer for Easy Digital Downloads Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Discount by Answer for Easy Digital Downloads Release Timeline

v1.0.1Current
v1.0.0
Code Analysis
Analyzed Apr 16, 2026

Discount by Answer for Easy Digital Downloads Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
11 prepared
Unescaped Output
68
76 escaped
Nonce Checks
2
Capability Checks
9
File Operations
13
External Requests
5
Bundled Libraries
1

Bundled Libraries

Select2

SQL Query Safety

100% prepared11 total queries

Output Escaping

53% escaped144 total outputs
Data Flows · Security
9 unsanitized

Data Flow Analysis

10 flows9 with unsanitized paths
_getWPRemotePostStatus (include/library/apf/factory/_common/form/field_type/AdminPageFramework_FieldType_system.php:138)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Discount by Answer for Easy Digital Downloads Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 123
actionadmin_noticesdiscount-by-answer-for-easy-digital-downloads.php:317
actioncurrent_screeninclude/_common/post_type/action/_abstract/DiscountByAnswerForEDD_PostType_PostAction_Base.php:22
filteruser_has_capinclude/_common/utility/DiscountByAnswerForEDD_WPUtility.php:132
filterwp_insert_post_datainclude/_common/utility/DiscountByAnswerForEDD_WPUtility.php:146
actionedddba_action_checkout_verified_answersinclude/answer/event/DiscountByAnswerForEDD_Answer_Event_CreateLog.php:22
actionedddba_action_checkout_verified_answersinclude/answer/event/DiscountByAnswerForEDD_Answer_Event_CreateLog.php:23
actionedddba_action_campaign_issued_discount_codeinclude/answer/event/DiscountByAnswerForEDD_Answer_Event_CreateLog.php:26
actionedddba_action_answer_convertedinclude/answer/event/DiscountByAnswerForEDD_Answer_Event_StoreConverted.php:25
actionedddba_action_log_each_converted_answerinclude/answer/event/DiscountByAnswerForEDD_Answer_Event_StoreConverted.php:28
actionedd_pre_complete_purchaseinclude/answer/event/edd/DiscountByAnswerForEDD_Answer_Event_AssociateCustomer.php:21
actionedddba_action_answer_delete_old_answersinclude/answer/event/wpcron/DiscountByAnswerForEDD_Answer_Event_LogCleaner.php:22
actioncurrent_screeninclude/answer/post_type/DiscountByAnswerForEDD_Answer_PostType.php:69
actionadmin_enqueue_scriptsinclude/answer/post_type/DiscountByAnswerForEDD_Answer_PostType.php:150
actiondo_meta_boxesinclude/answer/post_type/DiscountByAnswerForEDD_Answer_PostType.php:151
filterpost_updated_messagesinclude/answer/post_type/DiscountByAnswerForEDD_Answer_PostType.php:153
actionedd_discount_increase_use_countinclude/campaign/event/DiscountByAnswerForEDD_Campaign_Event_DiscountCodeUsageCounter.php:23
actionedddba_action_campaign_issued_discount_codeinclude/campaign/event/DiscountByAnswerForEDD_Campaign_Event_DiscountCodeUsageCounter.php:26
actionedddba_action_answer_loggedinclude/campaign/event/DiscountByAnswerForEDD_Campaign_Event_IssueDiscountCode.php:21
actionedd_discount_increase_use_countinclude/campaign/event/DiscountByAnswerForEDD_Campaign_Event_VolatileDiscountCodeCleaner.php:22
actionedd_pre_complete_purchaseinclude/campaign/event/edd/DiscountByAnswerForEDD_Campaign_EDD_Event_AssociateCustomer.php:39
filteredd_is_discount_validinclude/campaign/event/edd/DiscountByAnswerForEDD_Campaign_EDD_Event_VerifyDiscountCode.php:22
filteredd_is_discount_usedinclude/campaign/event/edd/DiscountByAnswerForEDD_Campaign_EDD_Event_VerifyDiscountCode.php:23
actionedddba_action_clean_unused_discount_codes_dailyinclude/campaign/event/wpcron/DiscountByAnswerForEDD_Campaign_Event_WPCron_UnusedDiscountCodeCleaner.php:20
actionedddba_action_clean_unused_discount_codesinclude/campaign/event/wpcron/DiscountByAnswerForEDD_Campaign_Event_WPCron_UnusedDiscountCodeCleaner.php:21
actionedddba_action_checkout_all_setinclude/campaign/event/wpcron/DiscountByAnswerForEDD_Campaign_Event_WPCron_UnusedDiscountCodeCleaner.php:24
filterwp_insert_post_datainclude/campaign/post_metabox/DiscountByAnswerForEDD_Campaign_MetaBox_Submit.php:59
actionadmin_enqueue_scriptsinclude/campaign/post_metabox/DiscountByAnswerForEDD_Campaign_MetaBox_Submit.php:60
actionadmin_enqueue_scriptsinclude/campaign/post_metabox/_abstract/DiscountByAnswerForEDD_Campaign_MetaBox_Base.php:64
actionadmin_noticesinclude/campaign/post_metabox/_abstract/DiscountByAnswerForEDD_Campaign_MetaBox_Base.php:65
actioncurrent_screeninclude/campaign/post_type/DiscountByAnswerForEDD_Campaign_PostType.php:71
actionadmin_enqueue_scriptsinclude/campaign/post_type/DiscountByAnswerForEDD_Campaign_PostType.php:127
actiondo_meta_boxesinclude/campaign/post_type/DiscountByAnswerForEDD_Campaign_PostType.php:128
filterpost_updated_messagesinclude/campaign/post_type/DiscountByAnswerForEDD_Campaign_PostType.php:130
actionshutdowninclude/campaign/post_type/DiscountByAnswerForEDD_Campaign_PostType.php:132
filteredddba_filter_campaign_request_type_labelsinclude/campaign/request_type/_abstract/DiscountByAnswerForEDD_Campaign_RequestType_Base.php:22
filteredddba_filter_campaign_request_type_field_selectorsinclude/campaign/request_type/_abstract/DiscountByAnswerForEDD_Campaign_RequestType_Base.php:23
filteredddba_filter_campaign_request_type_slugsinclude/campaign/request_type/_abstract/DiscountByAnswerForEDD_Campaign_RequestType_Base.php:24
filteredddba_filter_campaign_request_answer_has_keyword_reference_textinclude/campaign/request_type/text/DiscountByAnswerForEDD_Campaign_RequestType_text.php:20
filteredddba_filter_campaign_request_answer_has_keyword_reference_webinclude/campaign/request_type/text/DiscountByAnswerForEDD_Campaign_RequestType_text.php:26
actionset_up_DiscountByAnswerForEDD_Campaign_MetaBox_Requestsinclude/campaign/request_type/text/DiscountByAnswerForEDD_Campaign_RequestType_text.php:32
actionedddba_action_campaign_issued_discount_codeinclude/checkout/event/ajax/DiscountByAnswerForEDD_CheckOut_Event_Ajax_VerifyAnswers.php:63
actionedd_checkout_form_topinclude/checkout/fieldset/DiscountByAnswerForEDD_CheckOut_Fieldset_CheckString.php:16
actionwp_enqueue_scriptsinclude/checkout/fieldset/DiscountByAnswerForEDD_CheckOut_Fieldset_Resources.php:20
actionadmin_print_footer_scriptsinclude/library/apf/custom-field-types/revealer-custom-field-type/RevealerCustomFieldType.php:162
actionadmin_headinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_HelpPane_Base.php:12
actionin_admin_footerinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Link_Base.php:16
filteradmin_footer_textinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Link_Base.php:65
filterupdate_footerinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Link_Base.php:66
actionadmin_enqueue_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:20
actionadmin_enqueue_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:21
actioncustomize_controls_print_footer_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:24
actioncustomize_controls_print_footer_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:25
actionadmin_footerinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:26
actionadmin_footerinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:27
actionadmin_print_footer_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:28
actionadmin_print_footer_scriptsinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:29
filterscript_loader_srcinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:30
filterstyle_loader_srcinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:31
filterclean_urlinclude/library/apf/factory/_common/_abstract/_controller/AdminPageFramework_Resource_Base.php:43
actionwp_enqueue_scriptsinclude/library/apf/factory/_common/_abstract/_view/AdminPageFramework_Factory___Script_Base.php:18
actionin_admin_footerinclude/library/apf/factory/_common/_abstract/_view/AdminPageFramework_PageLoadInfo_Base.php:18
actionshutdowninclude/library/apf/factory/_common/form/_model/AdminPageFramework_Form_Model___LastInput.php:24
actionshutdowninclude/library/apf/factory/_common/form/_model/AdminPageFramework_Form_Model___LastInput.php:49
actionwp_enqueue_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:24
actionwp_enqueue_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:25
actionwp_footerinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:27
actionwp_footerinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:28
actionwp_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:29
actionwp_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:30
actionadmin_enqueue_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:34
actionadmin_enqueue_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:35
actioncustomize_controls_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:37
actioncustomize_controls_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:38
actionadmin_footerinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:39
actionadmin_footerinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:40
actionadmin_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:41
actionadmin_print_footer_scriptsinclude/library/apf/factory/_common/form/_view/resource/AdminPageFramework_Form_View__Resource.php:42
actionshutdowninclude/library/apf/factory/_common/form/error/AdminPageFramework_Form___FieldError.php:27
actionshutdowninclude/library/apf/factory/_common/form/error/AdminPageFramework_Form___FieldError.php:46
filtermedia_upload_tabsinclude/library/apf/factory/_common/form/field_type/AdminPageFramework_FieldType_color.php:84
filtergettextinclude/library/apf/factory/_common/form/field_type/AdminPageFramework_FieldType_color.php:94
actionshutdowninclude/library/apf/factory/_common/form/notice/AdminPageFramework_Form___SubmitNotice.php:30
actionwp_loadedinclude/library/apf/factory/admin_page/AdminPageFramework.php:15
actionadmin_headinclude/library/apf/factory/admin_page/_controller/AdminPageFramework_HelpPane_admin_page.php:14
filterplugin_row_metainclude/library/apf/factory/admin_page/_controller/AdminPageFramework_Link_admin_page.php:21
filterwp_mail_content_typeinclude/library/apf/factory/admin_page/_model/AdminPageFramework_FormEmail.php:23
filterwp_mail_frominclude/library/apf/factory/admin_page/_model/AdminPageFramework_FormEmail.php:26
filterwp_mail_from_nameinclude/library/apf/factory/admin_page/_model/AdminPageFramework_FormEmail.php:29
actioncurrent_screeninclude/library/apf/factory/admin_page/_model/delegate/AdminPageFramework_Model_Menu__RegisterMenu.php:106
actionpseudo_current_screeninclude/library/apf/factory/admin_page/_model/delegate/AdminPageFramework_Model_Menu__RegisterMenu.php:107
filterupdate_footerinclude/library/apf/factory/admin_page/_view/AdminPageFramework_PageLoadInfo_admin_page.php:20
actionadmin_headinclude/library/apf/factory/admin_page/_view/AdminPageFramework_View__PageMetaboxEnabler.php:11
filterwp_insert_attachment_datainclude/library/apf/factory/meta_box/AdminPageFramework_MetaBox.php:50
filterwp_insert_post_datainclude/library/apf/factory/meta_box/AdminPageFramework_MetaBox.php:52
filterredirect_post_locationinclude/library/apf/factory/meta_box/AdminPageFramework_MetaBox.php:89
actionin_admin_footerinclude/library/apf/factory/network_admin_page/_view/AdminPageFramework_PageLoadInfo_network_admin_page.php:12
filterupdate_footerinclude/library/apf/factory/network_admin_page/_view/AdminPageFramework_PageLoadInfo_network_admin_page.php:29
actionadmin_enqueue_scriptsinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:67
actionadmin_menuinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:122
actionthe_contentinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:124
actionrestrict_manage_postsinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:127
actionrestrict_manage_postsinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:128
filterparse_queryinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:129
filterpost_row_actionsinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:130
actionadmin_headinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:131
actioninitinclude/library/apf/factory/post_type/AdminPageFramework_PostType.php:290
actionget_edit_post_linkinclude/library/apf/factory/post_type/_controller/AdminPageFramework_Link_post_type.php:11
actionregistered_post_typeinclude/library/apf/factory/post_type/_model/AdminPageFramework_PostType_Model__FlushRewriteRules.php:15
actionshutdowninclude/library/apf/factory/post_type/_model/AdminPageFramework_PostType_Model__FlushRewriteRules.php:34
actionadmin_menuinclude/library/apf/factory/post_type/_model/AdminPageFramework_PostType_Model__SubMenuOrder.php:14
actionadmin_menuinclude/library/apf/factory/post_type/_model/AdminPageFramework_PostType_Model__SubMenuOrder.php:15
filterupdate_footerinclude/library/apf/factory/post_type/_view/AdminPageFramework_PageLoadInfo_post_type.php:21
actionshow_user_profileinclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:26
actionedit_user_profileinclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:27
actionuser_new_forminclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:28
actionpersonal_options_updateinclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:29
actionedit_user_profile_updateinclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:30
actionuser_registerinclude/library/apf/factory/user_meta/AdminPageFramework_UserMeta.php:31
actioninitinclude/library/apf/utility/plugin_bootstrap/AdminPageFramework_PluginBootstrap.php:34
actionadmin_enqueue_scriptsinclude/library/apf/utility/pointer_tool_tip/AdminPageFramework_PointerToolTip.php:32
actionadmin_print_footer_scriptsinclude/library/apf/utility/pointer_tool_tip/AdminPageFramework_PointerToolTip.php:99
actionadmin_noticesinclude/library/apf/utility/requirement/AdminPageFramework_Requirement.php:74
actionadmin_noticesinclude/library/apf/utility/requirement/AdminPageFramework_Requirement.php:92
Maintenance & Trust

Discount by Answer for Easy Digital Downloads Maintenance & Trust

Maintenance Signals

WordPress version tested5.3.21
Last updatedDec 13, 2019
PHP min version5.2.4
Downloads1K

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Discount by Answer for Easy Digital Downloads Developer Profile

miunosoft

17 plugins · 2K total installs

84
trust score
Avg Security Score
85/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Discount by Answer for Easy Digital Downloads

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/discount-by-answer-for-easy-digital-downloads/css/discount-by-answer-for-easy-digital-downloads.css/wp-content/plugins/discount-by-answer-for-easy-digital-downloads/js/discount-by-answer-for-easy-digital-downloads.js
Script Paths
/wp-content/plugins/discount-by-answer-for-easy-digital-downloads/js/discount-by-answer-for-easy-digital-downloads.js
Version Parameters
discount-by-answer-for-easy-digital-downloads/css/discount-by-answer-for-easy-digital-downloads.css?ver=discount-by-answer-for-easy-digital-downloads/js/discount-by-answer-for-easy-digital-downloads.js?ver=

HTML / DOM Fingerprints

CSS Classes
edddba-campaign-formedddba-answer-formedddba-answer-list
Data Attributes
data-edddba-campaign-id
JS Globals
DiscountByAnswerForEDD
FAQ

Frequently Asked Questions about Discount by Answer for Easy Digital Downloads