Terms & Conditions Per Product Security & Risk Analysis

wordpress.org/plugins/terms-and-conditions-per-product

Configure specific Terms and Conditions per WooCommerce product, category, or tag.

800 active installs v1.2.17 PHP 7.2+ WP 5.4+ Updated May 30, 2025
legalproductterms-and-conditionsterms-of-servicewoocommerce
99
A · Safe
CVEs total1
Unpatched0
Last CVEMar 27, 2025
Safety Verdict

Is Terms & Conditions Per Product Safe to Use in 2026?

Generally Safe

Score 99/100

Terms & Conditions Per Product has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Mar 27, 2025Updated 10mo ago
Risk Assessment

The "terms-and-conditions-per-product" plugin v1.2.17 demonstrates a generally good security posture with several strengths, including the absence of dangerous functions, 100% use of prepared statements for SQL queries, and a lack of external HTTP requests or file operations. The plugin also incorporates nonce and capability checks, which are crucial for secure WordPress development. However, a significant concern arises from the taint analysis, which identified one flow with an unsanitized path. While this did not result in a critical or high severity finding, it represents a potential avenue for unexpected behavior or unintended data handling.

The vulnerability history shows one known medium severity CVE, which has since been patched. The fact that the last vulnerability was in 2025 suggests active maintenance and patching. The common vulnerability type being 'Missing Authorization' in the past is a red flag, even though the current static analysis shows a healthy number of capability checks and no unprotected entry points. This historical pattern warrants vigilance regarding authorization checks in future updates or when considering the plugin's overall trustworthiness.

In conclusion, while the plugin has made strides in securing its codebase with good practices like prepared statements and input sanitization (as indicated by the low severity taint flow), the presence of an unsanitized path in the taint analysis and past authorization issues highlight areas that still require careful monitoring. The current version appears to be in a relatively secure state based on the static analysis, but the historical context suggests a need for continued diligence.

Key Concerns

  • Taint flow with unsanitized path
  • Bundled outdated library: Freemius v1.0
  • Past medium vulnerability (unpatched in history)
Vulnerabilities
1

Terms & Conditions Per Product Security Vulnerabilities

CVEs by Year

1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-30866medium · 5.3Missing Authorization

Terms & Conditions Per Product <= 1.2.15 - Missing Authorization

Mar 27, 2025 Patched in 1.2.16 (7d)
Code Analysis
Analyzed Mar 16, 2026

Terms & Conditions Per Product Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
6 prepared
Unescaped Output
20
50 escaped
Nonce Checks
2
Capability Checks
3
File Operations
0
External Requests
0
Bundled Libraries
1

Bundled Libraries

Freemius1.0

SQL Query Safety

100% prepared6 total queries

Output Escaping

71% escaped70 total outputs
Data Flows
1 unsanitized

Data Flow Analysis

1 flows1 with unsanitized paths
<class-tacpp4-terms-conditions-admin-notices> (app\main\class-tacpp4-terms-conditions-admin-notices.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Terms & Conditions Per Product Attack Surface

Entry Points1
Unprotected0

AJAX Handlers 1

authwp_ajax_tacpp_hide_noticeapp\main\class-tacpp4-terms-conditions-admin-notices.php:24
WordPress Hooks 47
actionwp_enqueue_scriptsapp\main\class-main.php:45
actionadmin_enqueue_scriptsapp\main\class-main.php:48
actionwoocommerce_product_options_advancedapp\main\class-main.php:51
actionwoocommerce_process_product_metaapp\main\class-main.php:55
actionwoocommerce_review_order_before_submitapp\main\class-main.php:60
actionwoocommerce_checkout_processapp\main\class-main.php:64
actionwoocommerce_product_after_variable_attributesapp\main\class-main.php:67
actionwoocommerce_save_product_variationapp\main\class-main.php:70
filterwoocommerce_available_variationapp\main\class-main.php:73
actionwp_enqueue_scriptsapp\main\class-tacpp4-terms-and-conditions-checkout-block.php:38
filterrender_block_woocommerce/checkout-terms-blockapp\main\class-tacpp4-terms-and-conditions-checkout-block.php:41
actionwoocommerce_checkout_order_processedapp\main\class-tacpp4-terms-conditions-accept-log.php:32
actionadd_meta_boxesapp\main\class-tacpp4-terms-conditions-accept-log.php:35
actionadmin_noticesapp\main\class-tacpp4-terms-conditions-admin-notices.php:22
actionadmin_noticesapp\main\class-tacpp4-terms-conditions-admin-notices.php:26
actionwp_enqueue_scriptsapp\main\class-tacpp4-terms-conditions-modal.php:28
actionproduct_cat_edit_form_fieldsapp\main\class-tacpp4-terms-conditions-per-categories.php:44
actionproduct_cat_add_form_fieldsapp\main\class-tacpp4-terms-conditions-per-categories.php:47
actionedited_product_catapp\main\class-tacpp4-terms-conditions-per-categories.php:51
actioncreated_product_catapp\main\class-tacpp4-terms-conditions-per-categories.php:53
actionproduct_tag_edit_form_fieldsapp\main\class-tacpp4-terms-conditions-per-categories.php:58
actionproduct_tag_add_form_fieldsapp\main\class-tacpp4-terms-conditions-per-categories.php:61
actionedited_product_tagapp\main\class-tacpp4-terms-conditions-per-categories.php:65
actioncreated_product_tagapp\main\class-tacpp4-terms-conditions-per-categories.php:67
actionwp_enqueue_scriptsapp\main\class-tacpp4-terms-conditions-per-product.php:46
actionadmin_enqueue_scriptsapp\main\class-tacpp4-terms-conditions-per-product.php:51
actionwoocommerce_product_options_advancedapp\main\class-tacpp4-terms-conditions-per-product.php:55
actionwoocommerce_process_product_metaapp\main\class-tacpp4-terms-conditions-per-product.php:59
actionwoocommerce_review_order_before_submitapp\main\class-tacpp4-terms-conditions-per-product.php:64
actionwoocommerce_checkout_processapp\main\class-tacpp4-terms-conditions-per-product.php:68
actionwoocommerce_product_after_variable_attributesapp\main\class-tacpp4-terms-conditions-per-product.php:71
actionwoocommerce_save_product_variationapp\main\class-tacpp4-terms-conditions-per-product.php:74
filterwoocommerce_available_variationapp\main\class-tacpp4-terms-conditions-per-product.php:77
actionwoocommerce_after_add_to_cart_formapp\main\class-tacpp4-terms-conditions-per-product.php:80
filterwoocommerce_checkout_show_termsapp\main\class-tacpp4-terms-conditions-per-product.php:83
actionadmin_menuapp\main\class-tacpp4-terms-conditions-settings.php:41
actionadmin_initapp\main\class-tacpp4-terms-conditions-settings.php:43
filterwoocommerce_admin_field_full_infoapp\main\class-tacpp4-terms-conditions-settings.php:45
actionadmin_enqueue_scriptsapp\main\class-tacpp4-terms-conditions-settings.php:48
filterconnect_urlterms-per-product.php:133
filterafter_skip_urlterms-per-product.php:134
filterafter_connect_urlterms-per-product.php:135
filterafter_pending_connect_urlterms-per-product.php:136
actionplugins_loadedterms-per-product.php:168
actioninitterms-per-product.php:180
filterplugin_row_metaterms-per-product.php:182
actionbefore_woocommerce_initterms-per-product.php:230
Maintenance & Trust

Terms & Conditions Per Product Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedMay 30, 2025
PHP min version7.2
Downloads21K

Community Trust

Rating92/100
Number of ratings11
Active installs800
Developer Profile

Terms & Conditions Per Product Developer Profile

Giannis Kipouros

5 plugins · 870 total installs

99
trust score
Avg Security Score
98/100
Avg Patch Time
7 days
View full developer profile
Detection Fingerprints

How We Detect Terms & Conditions Per Product

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/terms-and-conditions-per-product/assets/css/admin-style.css/wp-content/plugins/terms-and-conditions-per-product/assets/css/style.css/wp-content/plugins/terms-and-conditions-per-product/assets/js/main.js
Script Paths
/wp-content/plugins/terms-and-conditions-per-product/assets/js/main.js
Version Parameters
terms-and-conditions-per-product/assets/css/admin-style.css?ver=terms-and-conditions-per-product/assets/css/style.css?ver=terms-and-conditions-per-product/assets/js/main.js?ver=

HTML / DOM Fingerprints

CSS Classes
tacpp-custom-checkboxtacpp-terms-modal-contenttacpp-terms-modal-headertacpp-terms-modal-bodytacpp-terms-modal-footertacpp-terms-modal-closetacpp-terms-display-modaltacpp-terms-accept-log-table+1 more
HTML Comments
<!-- Terms and Conditions Per Product<!-- DO NOT REMOVE THIS IF, IT IS ESSENTIAL FOR THE `function_exists` CALL ABOVE TO PROPERLY WORK.
Data Attributes
data-tacpp-modal-targetdata-tacpp-product-iddata-tacpp-term-id
JS Globals
tacpp_admin_datatacpp_frontend_datatacpp_modal_data
REST Endpoints
/wp-json/tacpp/v1/save-terms/wp-json/tacpp/v1/get-terms/wp-json/tacpp/v1/get-terms-for-product
Shortcode Output
[tacpp_display_terms[tacpp_checkout_terms]
FAQ

Frequently Asked Questions about Terms & Conditions Per Product