Version Description
- Images will now hold information about applied watermarks which has been removed
- [Fixed] Missing FileBird dependency
- [Fixed] Database query error in bulk actions
Download this release
Release Info
Developer | bracketspace |
Plugin | Easy Watermark |
Version | 1.0.5 |
Comparing to | |
See all releases |
Code changes from version 1.0.4 to 1.0.5
- assets/dist/styles/attachment-edit.css +1 -1
- assets/dist/styles/watermark-edit.css +1 -1
- easy-watermark.php +1 -1
- readme.txt +6 -1
- src/classes/Core/Assets.php +6 -1
- src/classes/Core/Installer.php +47 -1
- src/classes/Metaboxes/Attachment/Watermarks.php +14 -2
- src/classes/Watermark/Ajax.php +6 -6
- src/classes/Watermark/Handler.php +3 -3
- src/views/edit-screen/metaboxes/attachment/watermarks.php +9 -0
assets/dist/styles/attachment-edit.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#watermarks table{margin-bottom:10px;text-align:left}#watermarks table td{padding:5px 10px}#watermarks table th{padding:5px 10px 5px 0}#watermarks .button-wrap{margin-bottom:10px}#watermarks .button-wrap:last-child{margin-bottom:0}#watermarks .button-wrap::after{clear:both;content:"";display:block}#watermarks .button-wrap button,#watermarks .button-wrap .spinner{float:left}#watermarks .error-message{display:none}
|
1 |
+
#watermarks table{margin-bottom:10px;text-align:left}#watermarks table td{padding:5px 10px}#watermarks table th{padding:5px 10px 5px 0}#watermarks .button-wrap{margin-bottom:10px}#watermarks .button-wrap:last-child{margin-bottom:0}#watermarks .button-wrap::after{clear:both;content:"";display:block}#watermarks .button-wrap button,#watermarks .button-wrap .spinner{float:left}#watermarks .error-message{display:none}#watermarks p.description{margin-top:20px}#watermarks .removed-watermarks{list-style:initial;margin:0;padding-left:30px}
|
assets/dist/styles/watermark-edit.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body.post-type-watermark .actions.bulkactions,body.settings_page_easy-watermark .actions.bulkactions{padding-right:0 !important}body.post-type-watermark .actions.bulkactions .button,body.settings_page_easy-watermark .actions.bulkactions .button{margin-right:16px !important}body.post-type-watermark .form-field,body.settings_page_easy-watermark .form-field{display:flex;justify-content:flex-start;margin-bottom:20px}body.post-type-watermark .form-field:last-child,body.settings_page_easy-watermark .form-field:last-child{margin-bottom:0}body.post-type-watermark .form-field input,body.settings_page_easy-watermark .form-field input{margin:0;position:relative}body.post-type-watermark .form-field input[type="number"],body.settings_page_easy-watermark .form-field input[type="number"]{width:70px}body.post-type-watermark .form-field input:focus,body.settings_page_easy-watermark .form-field input:focus{z-index:2}body.post-type-watermark .form-field-prepend,body.post-type-watermark .form-field-append,body.settings_page_easy-watermark .form-field-prepend,body.settings_page_easy-watermark .form-field-append{display:flex;position:relative}body.post-type-watermark .form-field-text,body.post-type-watermark .form-field button,body.settings_page_easy-watermark .form-field-text,body.settings_page_easy-watermark .form-field button{align-items:center;background-color:#eee;border:1px solid #ddd;border-radius:3px;display:flex;padding:0 5px;position:relative;z-index:1}body.post-type-watermark .form-field-prepend .form-field-text,body.post-type-watermark .form-field-prepend button,body.post-type-watermark .form-field-prepend .dropdown-menu,body.settings_page_easy-watermark .form-field-prepend .form-field-text,body.settings_page_easy-watermark .form-field-prepend button,body.settings_page_easy-watermark .form-field-prepend .dropdown-menu{border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}body.post-type-watermark .form-field-append .form-field-text,body.post-type-watermark .form-field-append button,body.post-type-watermark .form-field-append .dropdown-menu,body.settings_page_easy-watermark .form-field-append .form-field-text,body.settings_page_easy-watermark .form-field-append button,body.settings_page_easy-watermark .form-field-append .dropdown-menu{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}body.post-type-watermark .form-field button:hover,body.settings_page_easy-watermark .form-field button:hover{background-color:#ddd;border:1px solid #aaa;cursor:pointer}body.post-type-watermark .form-field button[data-toggle="dropdown"]::after,body.settings_page_easy-watermark .form-field button[data-toggle="dropdown"]::after{border:4px solid transparent;border-top:4px solid #777;content:"";height:0;margin-bottom:-4px;margin-left:10px;width:0}body.post-type-watermark .form-field .dropdown-menu,body.settings_page_easy-watermark .form-field .dropdown-menu{background:#fff;border:1px solid #aaa;border-radius:3px;display:none;margin-top:3px;min-width:calc(100% - 2px);overflow:hidden;position:absolute;z-index:99}body.post-type-watermark .form-field .dropdown-menu .dropdown-item,body.settings_page_easy-watermark .form-field .dropdown-menu .dropdown-item{color:#333;display:block;padding:3px 6px;text-decoration:none}body.post-type-watermark .form-field .dropdown-menu .dropdown-item:hover,body.settings_page_easy-watermark .form-field .dropdown-menu .dropdown-item:hover{background-color:#eee}body.post-type-watermark #poststuff .watermark-type-selector h2{padding-left:0}body.post-type-watermark #poststuff .watermark-type-selector .buttons{display:flex}body.post-type-watermark #poststuff .watermark-type-selector .button.first{border-bottom-right-radius:0;border-top-right-radius:0}body.post-type-watermark #poststuff .watermark-type-selector .button.last{border-bottom-left-radius:0;border-top-left-radius:0}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]{opacity:0;position:absolute;z-index:-1}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]:checked+.button{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]:checked+.button:active{transform:none}#watermark-content .image-content,#watermark-content .text-content,#watermark-content .select-image-button,#watermark-content .watermark-image{display:none}#watermark-content .watermark-image img{background-color:#ddd;cursor:pointer;height:auto;max-width:100%;width:auto}#watermark-content .text-content{overflow:hidden}#watermark-content .text-content input{width:100%}#watermark-content .text-preview{float:left;background-color:#ddd;background-image:linear-gradient(45deg, #999 25%, transparent 25%, transparent 75%, #999 75%, #999),linear-gradient(45deg, #999 25%, transparent 25%, transparent 75%, #999 75%, #999);background-position:0 0,6px 6px;background-size:12px 12px}#watermark-content .text-preview img{display:block;height:auto;max-width:100%}#alignment .alignment-selector{background-image:url(../images/alignment-background.jpg);background-size:cover;display:flex;flex-wrap:wrap;justify-content:space-between;width:240px}#alignment .alignment-selector label{background-repeat:no-repeat;display:block;float:left;height:58px;margin-bottom:3px;position:relative;text-align:center;width:78px}#alignment .alignment-selector label:nth-last-child(-n+6){margin-bottom:0}#alignment .alignment-selector label::after{background-color:rgba(255,255,255,0.2);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all 0.2s}#alignment .alignment-selector label:hover::after{background-color:rgba(255,255,255,0.35)}#alignment .alignment-selector input{opacity:0;position:absolute;z-index:-1}#alignment .alignment-selector input:checked+label::after{background-color:transparent}#watermarks table{margin-bottom:10px;text-align:left}#watermarks table td{padding:5px 10px}#watermarks table th{padding:5px 10px 5px 0}#watermarks .button-wrap{margin-bottom:10px}#watermarks .button-wrap:last-child{margin-bottom:0}#watermarks .button-wrap::after{clear:both;content:"";display:block}#watermarks .button-wrap button,#watermarks .button-wrap .spinner{float:left}#watermarks .error-message{display:none}.ew-preview-popup{display:none}.ew-preview-popup .media-frame-content{bottom:0;padding:16px;top:50px}.ew-preview-popup .media-frame-content img{display:block;height:auto;margin-bottom:16px;max-width:100%}#preview img{cursor:pointer;height:auto;max-width:100%}#preview .spinner{display:none;float:none;margin:10px 0 0;visibility:visible}#placeholders li{margin-bottom:20px}#placeholders li>label{display:block;font-weight:700;margin-bottom:5px;width:calc(100% - 30px)}#placeholders code{cursor:pointer;width:calc(100% - 30px)}#placeholders .ew-search-placeholders{margin:13px 0 7px}#placeholders .help{float:right;position:relative;top:10px}#placeholders .help .question-mark{background-color:#888;border-radius:50%;color:#fff;cursor:pointer;display:block;height:20px;line-height:20px;text-align:center;width:20px}#placeholders .help .description{background-color:#fff;border:1px solid #eee;box-shadow:0 0 8px rgba(0,0,0,0.3);display:none;font-size:12px;min-width:200px;opacity:0;position:absolute;right:0;top:32px;transition:opacity 0.2s;z-index:1}#placeholders .help .description::before,#placeholders .help .description::after{border-color:rgba(229,229,229,0);border-style:solid;bottom:100%;content:"";height:0;pointer-events:none;position:absolute;right:0;width:0;z-index:18}#placeholders .help .description::before{border-bottom-color:#eee;border-width:11px;margin-left:-11px}#placeholders .help .description::after{border-bottom-color:#fff;border-width:9px;margin-left:-9px;margin-right:2px}#placeholders .help .description label{display:block;font-weight:700}#placeholders .help .description span,#placeholders .help .description i{display:block}#placeholders .help .description-content{padding:10px}#placeholders .help:hover .description{display:block;opacity:1}
|
1 |
+
body.post-type-watermark .actions.bulkactions,body.settings_page_easy-watermark .actions.bulkactions{padding-right:0 !important}body.post-type-watermark .actions.bulkactions .button,body.settings_page_easy-watermark .actions.bulkactions .button{margin-right:16px !important}body.post-type-watermark .form-field,body.settings_page_easy-watermark .form-field{display:flex;justify-content:flex-start;margin-bottom:20px}body.post-type-watermark .form-field:last-child,body.settings_page_easy-watermark .form-field:last-child{margin-bottom:0}body.post-type-watermark .form-field input,body.settings_page_easy-watermark .form-field input{margin:0;position:relative}body.post-type-watermark .form-field input[type="number"],body.settings_page_easy-watermark .form-field input[type="number"]{width:70px}body.post-type-watermark .form-field input:focus,body.settings_page_easy-watermark .form-field input:focus{z-index:2}body.post-type-watermark .form-field-prepend,body.post-type-watermark .form-field-append,body.settings_page_easy-watermark .form-field-prepend,body.settings_page_easy-watermark .form-field-append{display:flex;position:relative}body.post-type-watermark .form-field-text,body.post-type-watermark .form-field button,body.settings_page_easy-watermark .form-field-text,body.settings_page_easy-watermark .form-field button{align-items:center;background-color:#eee;border:1px solid #ddd;border-radius:3px;display:flex;padding:0 5px;position:relative;z-index:1}body.post-type-watermark .form-field-prepend .form-field-text,body.post-type-watermark .form-field-prepend button,body.post-type-watermark .form-field-prepend .dropdown-menu,body.settings_page_easy-watermark .form-field-prepend .form-field-text,body.settings_page_easy-watermark .form-field-prepend button,body.settings_page_easy-watermark .form-field-prepend .dropdown-menu{border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}body.post-type-watermark .form-field-append .form-field-text,body.post-type-watermark .form-field-append button,body.post-type-watermark .form-field-append .dropdown-menu,body.settings_page_easy-watermark .form-field-append .form-field-text,body.settings_page_easy-watermark .form-field-append button,body.settings_page_easy-watermark .form-field-append .dropdown-menu{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}body.post-type-watermark .form-field button:hover,body.settings_page_easy-watermark .form-field button:hover{background-color:#ddd;border:1px solid #aaa;cursor:pointer}body.post-type-watermark .form-field button[data-toggle="dropdown"]::after,body.settings_page_easy-watermark .form-field button[data-toggle="dropdown"]::after{border:4px solid transparent;border-top:4px solid #777;content:"";height:0;margin-bottom:-4px;margin-left:10px;width:0}body.post-type-watermark .form-field .dropdown-menu,body.settings_page_easy-watermark .form-field .dropdown-menu{background:#fff;border:1px solid #aaa;border-radius:3px;display:none;margin-top:3px;min-width:calc(100% - 2px);overflow:hidden;position:absolute;z-index:99}body.post-type-watermark .form-field .dropdown-menu .dropdown-item,body.settings_page_easy-watermark .form-field .dropdown-menu .dropdown-item{color:#333;display:block;padding:3px 6px;text-decoration:none}body.post-type-watermark .form-field .dropdown-menu .dropdown-item:hover,body.settings_page_easy-watermark .form-field .dropdown-menu .dropdown-item:hover{background-color:#eee}body.post-type-watermark #poststuff .watermark-type-selector h2{padding-left:0}body.post-type-watermark #poststuff .watermark-type-selector .buttons{display:flex}body.post-type-watermark #poststuff .watermark-type-selector .button.first{border-bottom-right-radius:0;border-top-right-radius:0}body.post-type-watermark #poststuff .watermark-type-selector .button.last{border-bottom-left-radius:0;border-top-left-radius:0}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]{opacity:0;position:absolute;z-index:-1}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]:checked+.button{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799}body.post-type-watermark #poststuff .watermark-type-selector input[type="radio"]:checked+.button:active{transform:none}#watermark-content .image-content,#watermark-content .text-content,#watermark-content .select-image-button,#watermark-content .watermark-image{display:none}#watermark-content .watermark-image img{background-color:#ddd;cursor:pointer;height:auto;max-width:100%;width:auto}#watermark-content .text-content{overflow:hidden}#watermark-content .text-content input{width:100%}#watermark-content .text-preview{float:left;background-color:#ddd;background-image:linear-gradient(45deg, #999 25%, transparent 25%, transparent 75%, #999 75%, #999),linear-gradient(45deg, #999 25%, transparent 25%, transparent 75%, #999 75%, #999);background-position:0 0,6px 6px;background-size:12px 12px}#watermark-content .text-preview img{display:block;height:auto;max-width:100%}#alignment .alignment-selector{background-image:url(../images/alignment-background.jpg);background-size:cover;display:flex;flex-wrap:wrap;justify-content:space-between;width:240px}#alignment .alignment-selector label{background-repeat:no-repeat;display:block;float:left;height:58px;margin-bottom:3px;position:relative;text-align:center;width:78px}#alignment .alignment-selector label:nth-last-child(-n+6){margin-bottom:0}#alignment .alignment-selector label::after{background-color:rgba(255,255,255,0.2);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all 0.2s}#alignment .alignment-selector label:hover::after{background-color:rgba(255,255,255,0.35)}#alignment .alignment-selector input{opacity:0;position:absolute;z-index:-1}#alignment .alignment-selector input:checked+label::after{background-color:transparent}#watermarks table{margin-bottom:10px;text-align:left}#watermarks table td{padding:5px 10px}#watermarks table th{padding:5px 10px 5px 0}#watermarks .button-wrap{margin-bottom:10px}#watermarks .button-wrap:last-child{margin-bottom:0}#watermarks .button-wrap::after{clear:both;content:"";display:block}#watermarks .button-wrap button,#watermarks .button-wrap .spinner{float:left}#watermarks .error-message{display:none}#watermarks p.description{margin-top:20px}#watermarks .removed-watermarks{list-style:initial;margin:0;padding-left:30px}.ew-preview-popup{display:none}.ew-preview-popup .media-frame-content{bottom:0;padding:16px;top:50px}.ew-preview-popup .media-frame-content img{display:block;height:auto;margin-bottom:16px;max-width:100%}#preview img{cursor:pointer;height:auto;max-width:100%}#preview .spinner{display:none;float:none;margin:10px 0 0;visibility:visible}#placeholders li{margin-bottom:20px}#placeholders li>label{display:block;font-weight:700;margin-bottom:5px;width:calc(100% - 30px)}#placeholders code{cursor:pointer;width:calc(100% - 30px)}#placeholders .ew-search-placeholders{margin:13px 0 7px}#placeholders .help{float:right;position:relative;top:10px}#placeholders .help .question-mark{background-color:#888;border-radius:50%;color:#fff;cursor:pointer;display:block;height:20px;line-height:20px;text-align:center;width:20px}#placeholders .help .description{background-color:#fff;border:1px solid #eee;box-shadow:0 0 8px rgba(0,0,0,0.3);display:none;font-size:12px;min-width:200px;opacity:0;position:absolute;right:0;top:32px;transition:opacity 0.2s;z-index:1}#placeholders .help .description::before,#placeholders .help .description::after{border-color:rgba(229,229,229,0);border-style:solid;bottom:100%;content:"";height:0;pointer-events:none;position:absolute;right:0;width:0;z-index:18}#placeholders .help .description::before{border-bottom-color:#eee;border-width:11px;margin-left:-11px}#placeholders .help .description::after{border-bottom-color:#fff;border-width:9px;margin-left:-9px;margin-right:2px}#placeholders .help .description label{display:block;font-weight:700}#placeholders .help .description span,#placeholders .help .description i{display:block}#placeholders .help .description-content{padding:10px}#placeholders .help:hover .description{display:block;opacity:1}
|
easy-watermark.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* Author URI: https://bracketspace.com/
|
7 |
* Text Domain: easy-watermark
|
8 |
* Domain Path: /languages
|
9 |
-
* Version: 1.0.
|
10 |
* License: GPLv3 or later
|
11 |
*
|
12 |
* @package easy-watermark
|
6 |
* Author URI: https://bracketspace.com/
|
7 |
* Text Domain: easy-watermark
|
8 |
* Domain Path: /languages
|
9 |
+
* Version: 1.0.5
|
10 |
* License: GPLv3 or later
|
11 |
*
|
12 |
* @package easy-watermark
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: watermark, image, picture, photo, media, gallery, signature, transparent,
|
|
5 |
Requires at least: 3.8
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.2
|
8 |
-
Stable tag: 1.0.
|
9 |
License: GPLv3 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
Text Domain: easy-watermark
|
@@ -118,6 +118,11 @@ All available placeholders are listed in a box titled 'Placeholders' displayed w
|
|
118 |
|
119 |
== Changelog ==
|
120 |
|
|
|
|
|
|
|
|
|
|
|
121 |
= 1.0.4 =
|
122 |
* [Fixed] Improved error handling
|
123 |
* [Fixed] "Enhanced Media Library" plugin compatibility (and possibly some other plugins which replace media library components)
|
5 |
Requires at least: 3.8
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.2
|
8 |
+
Stable tag: 1.0.5
|
9 |
License: GPLv3 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
Text Domain: easy-watermark
|
118 |
|
119 |
== Changelog ==
|
120 |
|
121 |
+
= 1.0.5 =
|
122 |
+
* Images will now hold information about applied watermarks which has been removed
|
123 |
+
* [Fixed] Missing FileBird dependency
|
124 |
+
* [Fixed] Database query error in bulk actions
|
125 |
+
|
126 |
= 1.0.4 =
|
127 |
* [Fixed] Improved error handling
|
128 |
* [Fixed] "Enhanced Media Library" plugin compatibility (and possibly some other plugins which replace media library components)
|
src/classes/Core/Assets.php
CHANGED
@@ -65,7 +65,12 @@ class Assets {
|
|
65 |
'watermark-edit' => [ 'jquery', 'wp-color-picker' ],
|
66 |
];
|
67 |
|
68 |
-
if ( class_exists( 'FileBird' ) ) {
|
|
|
|
|
|
|
|
|
|
|
69 |
$assets['uploader'][] = 'njt-filebird-upload-libray-scripts';
|
70 |
}
|
71 |
|
65 |
'watermark-edit' => [ 'jquery', 'wp-color-picker' ],
|
66 |
];
|
67 |
|
68 |
+
if ( class_exists( 'FileBird' ) && wp_script_is( 'njt-filebird-upload-libray-scripts' ) ) {
|
69 |
+
/**
|
70 |
+
* Add dependency to load FileBird script before ours.
|
71 |
+
*
|
72 |
+
* This script is not used in list mode, so we need to check if it is enqueued first.
|
73 |
+
*/
|
74 |
$assets['uploader'][] = 'njt-filebird-upload-libray-scripts';
|
75 |
}
|
76 |
|
src/classes/Core/Installer.php
CHANGED
@@ -121,6 +121,13 @@ class Installer {
|
|
121 |
*/
|
122 |
public static function update( $from, $defaults ) {
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
$plugin_slug = Plugin::get()->get_slug();
|
125 |
$settings = [];
|
126 |
|
@@ -128,9 +135,15 @@ class Installer {
|
|
128 |
$settings['general'] = get_option( $plugin_slug . '-settings-general' );
|
129 |
$settings['image'] = get_option( $plugin_slug . '-settings-image' );
|
130 |
$settings['text'] = get_option( $plugin_slug . '-settings-text' );
|
|
|
|
|
|
|
|
|
131 |
} else {
|
132 |
$old_settings = get_option( $plugin_slug . '-settings' );
|
133 |
|
|
|
|
|
134 |
$general = [
|
135 |
'auto_add' => $old_settings['auto_add'],
|
136 |
'image_types' => $old_settings['image_types'],
|
@@ -202,7 +215,6 @@ class Installer {
|
|
202 |
}
|
203 |
|
204 |
update_option( Plugin::get()->get_slug() . '-settings', $defaults );
|
205 |
-
update_option( Plugin::get()->get_slug() . '-version', Plugin::get()->get_version() );
|
206 |
|
207 |
if ( isset( $settings['image']['watermark_id'] ) && ! empty( $settings['image']['watermark_id'] ) ) {
|
208 |
self::insert_image_watermark( $watermark_defaults, $settings );
|
@@ -216,6 +228,40 @@ class Installer {
|
|
216 |
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
/**
|
220 |
* Updates backup info
|
221 |
*
|
121 |
*/
|
122 |
public static function update( $from, $defaults ) {
|
123 |
|
124 |
+
update_option( Plugin::get()->get_slug() . '-version', Plugin::get()->get_version() );
|
125 |
+
|
126 |
+
if ( version_compare( $from, '1.0.0', '>=' ) ) {
|
127 |
+
self::update_attachment_meta();
|
128 |
+
return;
|
129 |
+
}
|
130 |
+
|
131 |
$plugin_slug = Plugin::get()->get_slug();
|
132 |
$settings = [];
|
133 |
|
135 |
$settings['general'] = get_option( $plugin_slug . '-settings-general' );
|
136 |
$settings['image'] = get_option( $plugin_slug . '-settings-image' );
|
137 |
$settings['text'] = get_option( $plugin_slug . '-settings-text' );
|
138 |
+
|
139 |
+
delete_option( $plugin_slug . '-settings-general' );
|
140 |
+
delete_option( $plugin_slug . '-settings-image' );
|
141 |
+
delete_option( $plugin_slug . '-settings-text' );
|
142 |
} else {
|
143 |
$old_settings = get_option( $plugin_slug . '-settings' );
|
144 |
|
145 |
+
delete_option( $plugin_slug . '-settings' );
|
146 |
+
|
147 |
$general = [
|
148 |
'auto_add' => $old_settings['auto_add'],
|
149 |
'image_types' => $old_settings['image_types'],
|
215 |
}
|
216 |
|
217 |
update_option( Plugin::get()->get_slug() . '-settings', $defaults );
|
|
|
218 |
|
219 |
if ( isset( $settings['image']['watermark_id'] ) && ! empty( $settings['image']['watermark_id'] ) ) {
|
220 |
self::insert_image_watermark( $watermark_defaults, $settings );
|
228 |
|
229 |
}
|
230 |
|
231 |
+
/**
|
232 |
+
* Update attachment meta
|
233 |
+
*
|
234 |
+
* @return void
|
235 |
+
*/
|
236 |
+
private static function update_attachment_meta() {
|
237 |
+
global $wpdb;
|
238 |
+
|
239 |
+
// phpcs:ignore WordPress.DB.DirectDatabaseQuery
|
240 |
+
$meta = $wpdb->get_results( $wpdb->prepare( "SELECT `post_id`, `meta_value` FROM {$wpdb->postmeta} WHERE `meta_key` = %s", '_ew_applied_watermarks' ) );
|
241 |
+
|
242 |
+
foreach ( $meta as $entry ) {
|
243 |
+
$value = maybe_unserialize( $entry->meta_value );
|
244 |
+
|
245 |
+
if ( is_array( $value ) ) {
|
246 |
+
$new_value = [];
|
247 |
+
|
248 |
+
foreach ( $value as $watermark_id ) {
|
249 |
+
$watermark = Watermark::get( $watermark_id );
|
250 |
+
|
251 |
+
if ( $watermark ) {
|
252 |
+
$new_value[ $watermark_id ] = $watermark->post_title;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
if ( $new_value ) {
|
257 |
+
update_post_meta( $entry->post_id, '_ew_applied_watermarks', $new_value );
|
258 |
+
} else {
|
259 |
+
delete_post_meta( $entry->post_id, '_ew_applied_watermarks' );
|
260 |
+
}
|
261 |
+
}
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
/**
|
266 |
* Updates backup info
|
267 |
*
|
src/classes/Metaboxes/Attachment/Watermarks.php
CHANGED
@@ -61,10 +61,13 @@ class Watermarks extends AttachmentMetabox {
|
|
61 |
$applied_watermarks = [];
|
62 |
}
|
63 |
|
64 |
-
$all_applied
|
|
|
65 |
|
66 |
foreach ( $watermarks as $watermark ) {
|
67 |
-
|
|
|
|
|
68 |
$watermark->is_applied = true;
|
69 |
} else {
|
70 |
$watermark->is_applied = false;
|
@@ -72,6 +75,14 @@ class Watermarks extends AttachmentMetabox {
|
|
72 |
}
|
73 |
}
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
$used_as_watermark = get_post_meta( $post->ID, '_ew_used_as_watermark', true );
|
76 |
|
77 |
if ( $used_as_watermark ) {
|
@@ -85,6 +96,7 @@ class Watermarks extends AttachmentMetabox {
|
|
85 |
'post' => $post,
|
86 |
'watermarks' => $watermarks,
|
87 |
'applied_watermarks' => $applied_watermarks,
|
|
|
88 |
'all_applied' => $all_applied,
|
89 |
'has_backup' => $has_backup,
|
90 |
] );
|
61 |
$applied_watermarks = [];
|
62 |
}
|
63 |
|
64 |
+
$all_applied = true;
|
65 |
+
$watermark_ids = [];
|
66 |
|
67 |
foreach ( $watermarks as $watermark ) {
|
68 |
+
$watermark_ids[] = $watermark->ID;
|
69 |
+
|
70 |
+
if ( array_key_exists( $watermark->ID, $applied_watermarks ) ) {
|
71 |
$watermark->is_applied = true;
|
72 |
} else {
|
73 |
$watermark->is_applied = false;
|
75 |
}
|
76 |
}
|
77 |
|
78 |
+
$removed_watermarks = [];
|
79 |
+
|
80 |
+
foreach ( $applied_watermarks as $id => $name ) {
|
81 |
+
if ( ! in_array( $id, $watermark_ids, true ) ) {
|
82 |
+
$removed_watermarks[] = $name;
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
$used_as_watermark = get_post_meta( $post->ID, '_ew_used_as_watermark', true );
|
87 |
|
88 |
if ( $used_as_watermark ) {
|
96 |
'post' => $post,
|
97 |
'watermarks' => $watermarks,
|
98 |
'applied_watermarks' => $applied_watermarks,
|
99 |
+
'removed_watermarks' => $removed_watermarks,
|
100 |
'all_applied' => $all_applied,
|
101 |
'has_backup' => $has_backup,
|
102 |
] );
|
src/classes/Watermark/Ajax.php
CHANGED
@@ -202,13 +202,13 @@ class Ajax {
|
|
202 |
|
203 |
$query = "
|
204 |
SELECT
|
205 |
-
`{$wpdb->
|
206 |
-
`{$wpdb->
|
207 |
-
EXISTS( SELECT `{$wpdb->
|
208 |
-
EXISTS( SELECT `{$wpdb->
|
209 |
FROM
|
210 |
-
`{$wpdb->
|
211 |
-
WHERE `{$wpdb->
|
212 |
";
|
213 |
|
214 |
// phpcs:ignore WordPress.DB
|
202 |
|
203 |
$query = "
|
204 |
SELECT
|
205 |
+
`{$wpdb->posts}`.`ID` as id,
|
206 |
+
`{$wpdb->posts}`.`post_mime_type` as mime,
|
207 |
+
EXISTS( SELECT `{$wpdb->postmeta}`.`meta_value` FROM `{$wpdb->postmeta}` WHERE `{$wpdb->postmeta}`.`post_id` = `{$wpdb->posts}`.`ID` AND `{$wpdb->postmeta}`.`meta_key` = '_ew_used_as_watermark' ) AS 'usedAsWatermark',
|
208 |
+
EXISTS( SELECT `{$wpdb->postmeta}`.`meta_value` FROM `{$wpdb->postmeta}` WHERE `{$wpdb->postmeta}`.`post_id` = `{$wpdb->posts}`.`ID` AND `{$wpdb->postmeta}`.`meta_key` = '_ew_has_backup' ) AS 'hasBackup'
|
209 |
FROM
|
210 |
+
`{$wpdb->posts}`
|
211 |
+
WHERE `{$wpdb->posts}`.`ID` IN ({$placeholders})
|
212 |
";
|
213 |
|
214 |
// phpcs:ignore WordPress.DB
|
src/classes/Watermark/Handler.php
CHANGED
@@ -235,7 +235,7 @@ class Handler {
|
|
235 |
}
|
236 |
|
237 |
$watermarks = array_filter( $watermarks, function( $watermark ) use ( $applied_watermarks ) {
|
238 |
-
return !
|
239 |
} );
|
240 |
|
241 |
if ( empty( $meta ) ) {
|
@@ -272,8 +272,8 @@ class Handler {
|
|
272 |
|
273 |
$this->processor->add_watermark( $watermark );
|
274 |
|
275 |
-
if ( !
|
276 |
-
$applied_watermarks[] = $watermark->
|
277 |
}
|
278 |
}
|
279 |
}
|
235 |
}
|
236 |
|
237 |
$watermarks = array_filter( $watermarks, function( $watermark ) use ( $applied_watermarks ) {
|
238 |
+
return ! array_key_exists( $watermark->ID, $applied_watermarks );
|
239 |
} );
|
240 |
|
241 |
if ( empty( $meta ) ) {
|
272 |
|
273 |
$this->processor->add_watermark( $watermark );
|
274 |
|
275 |
+
if ( ! array_key_exists( $watermark->ID, $applied_watermarks ) ) {
|
276 |
+
$applied_watermarks[ $watermark->ID ] = $watermark->post_title;
|
277 |
}
|
278 |
}
|
279 |
}
|
src/views/edit-screen/metaboxes/attachment/watermarks.php
CHANGED
@@ -48,5 +48,14 @@
|
|
48 |
<p><a href="<?php echo esc_url( admin_url( 'post-new.php?post_type=watermark' ) ); ?>"><?php esc_html_e( 'Create watermark', 'easy-watermark' ); ?></a></p>
|
49 |
<?php endif; ?>
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
<?php do_action( 'easy-watermark/attachment-metabox-content', $watermarks ); ?>
|
52 |
</div>
|
48 |
<p><a href="<?php echo esc_url( admin_url( 'post-new.php?post_type=watermark' ) ); ?>"><?php esc_html_e( 'Create watermark', 'easy-watermark' ); ?></a></p>
|
49 |
<?php endif; ?>
|
50 |
|
51 |
+
<?php if ( $removed_watermarks ) : ?>
|
52 |
+
<p class="description"><?php esc_html_e( 'This image contains watermarks which has been removed:', 'easy-watermark' ); ?></p>
|
53 |
+
<ul class="removed-watermarks">
|
54 |
+
<?php foreach ( $removed_watermarks as $watermark_name ) : ?>
|
55 |
+
<li><?php echo esc_html( $watermark_name ); ?></li>
|
56 |
+
<?php endforeach; ?>
|
57 |
+
</ul>
|
58 |
+
<?php endif; ?>
|
59 |
+
|
60 |
<?php do_action( 'easy-watermark/attachment-metabox-content', $watermarks ); ?>
|
61 |
</div>
|