{"id":50042,"date":"2016-08-04T07:03:51","date_gmt":"2016-08-04T07:03:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/ns-woocommerce-watermark\/"},"modified":"2026-06-09T21:16:09","modified_gmt":"2026-06-09T21:16:09","slug":"ns-woocommerce-watermark","status":"publish","type":"plugin","link":"https:\/\/ar.wordpress.org\/plugins\/ns-woocommerce-watermark\/","author":15015692,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.0.0","stable_tag":"4.0.0","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"NS Watermark For WooCommerce","header_author":"NsThemes","header_description":"","assets_banners_color":"9ec08b","last_updated":"2026-06-09 21:16:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/ns-woocommerce-watermark\/","header_author_uri":"https:\/\/nsthemes.com","rating":3.5,"author_block_rating":0,"active_installs":20,"downloads":14691,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"nsthemes","date":"2016-08-04 07:07:54"},"1.0.1":{"tag":"1.0.1","author":"nsthemes","date":"2016-08-05 08:27:03"},"1.1.0":{"tag":"1.1.0","author":"nsthemes","date":"2016-08-26 09:22:03"},"1.2.0":{"tag":"1.2.0","author":"nsthemes","date":"2016-09-15 10:27:56"},"1.3.0":{"tag":"1.3.0","author":"nsthemes","date":"2016-09-20 09:31:51"},"1.3.1":{"tag":"1.3.1","author":"nsthemes","date":"2016-12-13 11:09:11"},"1.3.2":{"tag":"1.3.2","author":"nsthemes","date":"2017-03-01 16:15:53"},"1.4.0":{"tag":"1.4.0","author":"nsthemes","date":"2017-04-06 09:27:01"},"1.4.1":{"tag":"1.4.1","author":"nsthemes","date":"2017-06-14 19:51:35"},"2.0.0":{"tag":"2.0.0","author":"nsthemes","date":"2017-06-30 10:08:02"},"2.0.1":{"tag":"2.0.1","author":"nsthemes","date":"2017-06-30 10:48:08"},"2.1.0":{"tag":"2.1.0","author":"nsthemes","date":"2017-07-12 10:48:41"},"2.10.0":{"tag":"2.10.0","author":"nsthemes","date":"2019-07-03 10:51:05"},"2.10.1":{"tag":"2.10.1","author":"nsthemes","date":"2019-08-23 15:10:14"},"2.10.2":{"tag":"2.10.2","author":"nsthemes","date":"2019-10-01 09:52:23"},"2.10.3":{"tag":"2.10.3","author":"nsthemes","date":"2019-11-19 15:36:23"},"2.10.4":{"tag":"2.10.4","author":"nsthemes","date":"2020-02-12 10:58:15"},"2.11.0":{"tag":"2.11.0","author":"nsthemes","date":"2020-05-15 07:31:12"},"2.11.1":{"tag":"2.11.1","author":"nsthemes","date":"2020-10-27 10:14:43"},"2.11.2":{"tag":"2.11.2","author":"nsthemes","date":"2021-10-29 08:29:25"},"2.11.3":{"tag":"2.11.3","author":"nsthemes","date":"2022-01-17 15:57:36"},"2.11.4":{"tag":"2.11.4","author":"nsthemes","date":"2022-02-04 15:12:30"},"2.11.5":{"tag":"2.11.5","author":"nsthemes","date":"2022-03-02 21:58:51"},"2.2.0":{"tag":"2.2.0","author":"nsthemes","date":"2017-07-25 08:30:15"},"2.3.0":{"tag":"2.3.0","author":"nsthemes","date":"2017-08-08 13:41:25"},"2.3.1":{"tag":"2.3.1","author":"nsthemes","date":"2017-08-29 20:29:54"},"2.3.2":{"tag":"2.3.2","author":"nsthemes","date":"2017-10-20 07:35:38"},"2.4.0":{"tag":"2.4.0","author":"nsthemes","date":"2017-12-05 18:19:16"},"2.4.1":{"tag":"2.4.1","author":"nsthemes","date":"2018-08-07 16:39:28"},"2.4.2":{"tag":"2.4.2","author":"nsthemes","date":"2018-12-05 12:05:32"},"2.5.0":{"tag":"2.5.0","author":"nsthemes","date":"2019-01-02 15:15:54"},"2.5.1":{"tag":"2.5.1","author":"nsthemes","date":"2019-01-03 15:15:28"},"2.5.2":{"tag":"2.5.2","author":"nsthemes","date":"2019-02-12 13:57:10"},"2.5.3":{"tag":"2.5.3","author":"nsthemes","date":"2019-02-18 14:59:14"},"2.6.0":{"tag":"2.6.0","author":"nsthemes","date":"2019-02-26 11:36:55"},"2.7.0":{"tag":"2.7.0","author":"nsthemes","date":"2019-02-27 15:16:40"},"2.8.0":{"tag":"2.8.0","author":"nsthemes","date":"2019-03-18 09:43:03"},"2.9.0":{"tag":"2.9.0","author":"nsthemes","date":"2019-05-25 16:48:58"},"3.0.0":{"tag":"3.0.0","author":"nsthemes","date":"2022-04-29 15:35:43"},"4.0.0":{"tag":"4.0.0","author":"nsthemes","date":"2026-06-09 21:16:09"}},"upgrade_notice":{"4.0.0":"<p>Major security update. The old <code>ns_image.php<\/code> direct-access endpoint has been removed and replaced with a secure WordPress AJAX handler. Please update immediately.<\/p>"},"ratings":{"1":"3","2":0,"3":"1","4":"2","5":"5"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1468442,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1654196,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2696148,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.3.0","1.3.1","1.3.2","1.4.0","1.4.1","2.0.0","2.0.1","2.1.0","2.10.0","2.10.1","2.10.2","2.10.3","2.10.4","2.11.0","2.11.1","2.11.2","2.11.3","2.11.4","2.11.5","2.2.0","2.3.0","2.3.1","2.3.2","2.4.0","2.4.1","2.4.2","2.5.0","2.5.1","2.5.2","2.5.3","2.6.0","2.7.0","2.8.0","2.9.0","3.0.0","4.0.0"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3566591,"resolution":"2","location":"plugin","width":800,"height":1200},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3566591,"resolution":"4","location":"plugin","width":631,"height":501},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3566591,"resolution":"3","location":"plugin","width":718,"height":311},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3566591,"resolution":"1","location":"plugin","width":1024,"height":683}},"screenshots":{"1":"Settings page.","2":"Watermark on a single product page.","3":"Watermark on the shop \/ category page."}},"plugin_section":[],"plugin_tags":[133,215,29381,3241,286],"plugin_category":[45,50],"plugin_contributors":[86960],"plugin_business_model":[],"class_list":["post-50042","plugin","type-plugin","status-publish","hentry","plugin_tags-image","plugin_tags-photo","plugin_tags-product-image","plugin_tags-watermark","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-nsthemes","plugin_committers-nsthemes"],"banners":{"banner":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/assets\/banner-772x250.png?rev=2696148","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/assets\/icon-128x128.png?rev=1468442","icon_2x":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/assets\/icon-256x256.png?rev=1654196","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/trunk\/screenshot-1.png?rev=3566591","caption":"Settings page."},{"src":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/trunk\/screenshot-2.png?rev=3566591","caption":"Watermark on a single product page."},{"src":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/trunk\/screenshot-3.png?rev=3566591","caption":"Watermark on the shop \/ category page."},{"src":"https:\/\/ps.w.org\/ns-woocommerce-watermark\/trunk\/screenshot-4.png?rev=3566591","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Apply your watermark on your WooCommerce product images \u2014 without overwriting them!<\/strong><\/p>\n\n<p>NS Watermark For WooCommerce overlays a watermark image on top of your shop and single-product photos at display time.\nThe original files stored in your Media Library are never modified.<\/p>\n\n<p><strong>Features (free version)<\/strong><\/p>\n\n<ul>\n<li>Choose any image from your Media Library as the watermark.<\/li>\n<li>Always show the watermark, or show it only to guests (not logged-in users).<\/li>\n<li>Enable \/ disable with a single setting.<\/li>\n<li>Compatible with WordPress 7.0 and WooCommerce 10.8.1.<\/li>\n<li>No GD extensions need to be installed separately (bundled with PHP \u2265 7.4).<\/li>\n<\/ul>\n\n<p><strong>3rd Party \/ External Services<\/strong><\/p>\n\n<ul>\n<li><strong>PluginEye<\/strong> \u2014 used for opt-in usage tracking (plugin activation\/deactivation events, site address, WordPress version, active plugin list). Data is collected only after explicit user consent is given on the opt-in screen shown at first activation. Read more: <a href=\"https:\/\/www.plugineye.com\/privacy-policy\/\">Privacy Policy<\/a> \u2014 <a href=\"https:\/\/www.plugineye.com\/terms-of-service\/\">Terms of Service<\/a>. This service is provided by NsThemes.<\/li>\n<\/ul>\n\n<p>All watermark image processing is performed locally on your web server using PHP's built-in GD library. No image data is sent to external servers.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ns-woocommerce-watermark<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>NS Watermark \u2192 Settings<\/strong> in the admin sidebar.<\/li>\n<li>Select your watermark image and choose your visibility setting.<\/li>\n<li>Save changes \u2014 your product images will now display with the watermark.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20woocommerce%20required%3F\"><h3>Is WooCommerce required?<\/h3><\/dt>\n<dd><p>Yes, WooCommerce must be installed and active.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20modify%20my%20original%20images%3F\"><h3>Does this plugin modify my original images?<\/h3><\/dt>\n<dd><p>No. The watermark is composited on-the-fly at display time. Your files in the Media Library remain untouched.<\/p><\/dd>\n<dt id=\"what%20image%20formats%20are%20supported%3F\"><h3>What image formats are supported?<\/h3><\/dt>\n<dd><p>JPEG, PNG, GIF, and WebP for both the source image and the watermark.<\/p><\/dd>\n<dt id=\"does%20it%20require%20%60allow_url_fopen%60%3F\"><h3>Does it require `allow_url_fopen`?<\/h3><\/dt>\n<dd><p>No. Version 4.0.0 reads images from the local filesystem, so <code>allow_url_fopen<\/code> is not needed.<\/p><\/dd>\n<dt id=\"will%20the%20watermark%20url%20leak%20the%20original%20image%20path%3F\"><h3>Will the watermark URL leak the original image path?<\/h3><\/dt>\n<dd><p>No. The AJAX endpoint that serves watermarked images is nonce-protected and only accepts URLs that belong to your own WordPress installation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Complete security rewrite.<\/li>\n<li>Removed the publicly accessible <code>ns_image.php<\/code> endpoint \u2014 watermarks are now served through a nonce-verified WordPress AJAX handler.<\/li>\n<li>Added SSRF\/open-redirect protection: only images stored on the same WordPress installation are accepted.<\/li>\n<li>All output is now properly escaped; all input is sanitized and validated.<\/li>\n<li>Declared compatibility with WooCommerce HPOS (High-Performance Order Storage \/ custom_order_tables).<\/li>\n<li>Updated: requires WordPress 6.0+, PHP 7.4+, WooCommerce 7.0+.<\/li>\n<li>Tested up to WordPress 7.0 and WooCommerce 10.8.1.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Integrated PluginEye tracking.<\/li>\n<li>Security bug fix.<\/li>\n<\/ul>\n\n<h4>2.11.5<\/h4>\n\n<ul>\n<li>Minor bug fix.<\/li>\n<\/ul>","raw_excerpt":"Protect your WooCommerce product images by overlaying a watermark on-the-fly \u2014 no permanent changes to your files.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/50042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=50042"}],"author":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nsthemes"}],"wp:attachment":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=50042"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=50042"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=50042"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=50042"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=50042"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=50042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}