Watermark and password protect PDFs with WooCommerce, EDD, and Download Monitor. No Ghostscript required, PHP 8+ compatible. Since 2014 (FKA WaterWoo)
Prioritized issue groups from the latest Plugin Check scan
Maintainability
625
15 issue groups
Security
135
8 issue groups
I18n
18
2 issue groups
Sample message
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$K_PATH_CACHE".
Sample message
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DATAMATRIXDEFS".
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$code'.
Sample message
$_GET['order_id'] not unslashed before sanitization. Use wp_unslash() or similar
Sample message
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Sample message
Detected usage of a non-sanitized input variable: $_GET['order_id']
Sample message
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "dlm_pdfink_intro".
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fread().
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().
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.
Sample message
Processing form data without nonce verification.
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fwrite().
Sample message
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
Sample message
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Sample message
unlink() is discouraged. Use wp_delete_file() to delete a file.
Sample message
Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s, %3$s", but got "%s, %s, %s" in 'If PDF Ink is not in your budget, please take a moment to write <a href="%s" target="_blank" rel="noopener">an encouraging review</a>, or <a href="%s" target="_blank" rel="noopener noreferrer">donate a couple dollars using PayPal</a> or <a href="%s" target="_blank" rel="noopener noreferrer">Venmo</a> to cover my coffee today.'.
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$msg'.
Sample message
Detected usage of a possibly undefined superglobal array index: $_REQUEST['_wp_http_referer']. Check that the array index exists before using it.
Sample message
Processing form data without nonce verification.
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen().
Sample message
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writeable().
Sample message
rand() is discouraged. Use the far less predictable wp_rand() instead.
Sample message
Use of a direct database call is discouraged.
Sample message
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Potential connections found in static code analysis.
Outbound calls
142
External assets
0
Incoming endpoints
1
No external asset domains detected.
No public endpoints detected.
wp_ajax
4 score snapshots
v4.1.2
25
Latest
v4.1.1
25
Score
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 25 | 801 | 207 | 594 | v4.1.2 | 2.1.0 |
| 25 | 802 | 207 | 595 | v4.1.1 | 2.1.0 |
Author, categories, issues, domains, and nearby plugins.