Version Description
- [Fixed] Freemius screen displayed incorrectly after activation
- [Fixed] Permission settings now actualy works
- [Fixed] Config is now saved in unicode so you can use other character sets, like cyrylic
- [Fixed] Incompatibilities with caching plugins
- [Fixed] Srcset fatal error edge case
- [Fixed] Watermark deleting
Download this release
Release Info
Developer | Kubitomakita |
Plugin | Easy Watermark |
Version | 1.0.1 |
Comparing to | |
See all releases |
Code changes from version 1.0.0 to 1.0.1
- easy-watermark.php +2 -2
- readme.txt +10 -2
- src/classes/Core/Assets.php +4 -0
- src/classes/Core/Installer.php +9 -3
- src/classes/Core/Plugin.php +12 -9
- src/classes/Dashboard/Dashboard.php +1 -1
- src/classes/Dashboard/Page.php +13 -4
- src/classes/Dashboard/Permissions.php +1 -0
- src/classes/Dashboard/Settings.php +1 -0
- src/classes/Dashboard/Tools.php +27 -14
- src/classes/Features/SrcsetFilter.php +5 -0
- src/classes/Settings/Settings.php +1 -1
- src/classes/Watermark/PostType.php +2 -2
- src/classes/Watermark/Watermark.php +2 -1
- src/inc/freemius.php +11 -2
- src/inc/hooks.php +1 -1
- src/views/dashboard/pages/tools.php +17 -13
- src/views/dashboard/pages/watermarks.php +16 -6
easy-watermark.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Easy Watermark
|
4 |
-
* Description: This plugin can automatically add image and text watermark to pictures as they are uploaded to WordPress media library. You can also watermark existing images manually (all at once or an every single image). Watermark image can be a png, gif (alpha channel supported in both cases) or jpg. It's also possibile to set watermark opacity (doesn't apply to png with alpha channel). For text watermark you can select font, set color, size,
|
5 |
* Author: BracketSpace
|
6 |
* Author URI: https://bracketspace.com/
|
7 |
* Text Domain: easy-watermark
|
8 |
* Domain Path: /languages
|
9 |
-
* Version: 1.0.
|
10 |
* License: GPLv2 or later
|
11 |
*
|
12 |
* @package easy-watermark
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Easy Watermark
|
4 |
+
* Description: This plugin can automatically add image and text watermark to pictures as they are uploaded to WordPress media library. You can also watermark existing images manually (all at once or an every single image). Watermark image can be a png, gif (alpha channel supported in both cases) or jpg. It's also possibile to set watermark opacity (doesn't apply to png with alpha channel). For text watermark you can select font, set color, size, angle and opacity.
|
5 |
* Author: BracketSpace
|
6 |
* Author URI: https://bracketspace.com/
|
7 |
* Text Domain: easy-watermark
|
8 |
* Domain Path: /languages
|
9 |
+
* Version: 1.0.1
|
10 |
* License: GPLv2 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: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
Text Domain: easy-watermark
|
@@ -86,7 +86,7 @@ Watermark position can be adjusted vertically and horizontally by selecting alig
|
|
86 |
Yes, there is a posibility to add only image, only text or both.
|
87 |
|
88 |
= How Can I adjust text watermark? =
|
89 |
-
You can choose text font from the list of ten fonts included to this plugin. You can also set font size, color,
|
90 |
|
91 |
= Can I use my font for text watermark? =
|
92 |
Unfortunately no. In PRO version you'll be able to use more fonts.
|
@@ -118,6 +118,14 @@ All available placeholders are listed in a box titled 'Placeholders' displayed w
|
|
118 |
|
119 |
== Changelog ==
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
= 1.0.0 =
|
122 |
* The plugin has been rewrote from ground up.
|
123 |
|
5 |
Requires at least: 3.8
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.2
|
8 |
+
Stable tag: 1.0.1
|
9 |
License: GPLv3 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
Text Domain: easy-watermark
|
86 |
Yes, there is a posibility to add only image, only text or both.
|
87 |
|
88 |
= How Can I adjust text watermark? =
|
89 |
+
You can choose text font from the list of ten fonts included to this plugin. You can also set font size, color, angle and opacity. Position of text watermark can be adjusted exactly like the image watermark position.
|
90 |
|
91 |
= Can I use my font for text watermark? =
|
92 |
Unfortunately no. In PRO version you'll be able to use more fonts.
|
118 |
|
119 |
== Changelog ==
|
120 |
|
121 |
+
= 1.0.1 =
|
122 |
+
* [Fixed] Freemius screen displayed incorrectly after activation
|
123 |
+
* [Fixed] Permission settings now actualy works
|
124 |
+
* [Fixed] Config is now saved in unicode so you can use other character sets, like cyrylic
|
125 |
+
* [Fixed] Incompatibilities with caching plugins
|
126 |
+
* [Fixed] Srcset fatal error edge case
|
127 |
+
* [Fixed] Watermark deleting
|
128 |
+
|
129 |
= 1.0.0 =
|
130 |
* The plugin has been rewrote from ground up.
|
131 |
|
src/classes/Core/Assets.php
CHANGED
@@ -125,6 +125,10 @@ class Assets {
|
|
125 |
];
|
126 |
break;
|
127 |
case 'upload':
|
|
|
|
|
|
|
|
|
128 |
$this->wp_enqueue_media();
|
129 |
$enqueue = 'media-library';
|
130 |
$localize = [
|
125 |
];
|
126 |
break;
|
127 |
case 'upload':
|
128 |
+
if ( ! current_user_can( 'apply_watermark' ) ) {
|
129 |
+
break;
|
130 |
+
}
|
131 |
+
|
132 |
$this->wp_enqueue_media();
|
133 |
$enqueue = 'media-library';
|
134 |
$localize = [
|
src/classes/Core/Installer.php
CHANGED
@@ -107,6 +107,12 @@ class Installer {
|
|
107 |
$role->remove_cap( 'apply_watermark' );
|
108 |
}
|
109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
}
|
111 |
|
112 |
/**
|
@@ -198,6 +204,9 @@ class Installer {
|
|
198 |
$defaults['general']['jpeg_quality'] = $settings['general']['jpg_quality'];
|
199 |
}
|
200 |
|
|
|
|
|
|
|
201 |
if ( isset( $settings['image']['watermark_id'] ) && ! empty( $settings['image']['watermark_id'] ) ) {
|
202 |
self::insert_image_watermark( $watermark_defaults, $settings );
|
203 |
}
|
@@ -206,9 +215,6 @@ class Installer {
|
|
206 |
self::insert_text_watermark( $watermark_defaults, $settings );
|
207 |
}
|
208 |
|
209 |
-
update_option( Plugin::get()->get_slug() . '-settings', $defaults );
|
210 |
-
update_option( Plugin::get()->get_slug() . '-version', Plugin::get()->get_version() );
|
211 |
-
|
212 |
self::update_backup_info();
|
213 |
|
214 |
}
|
107 |
$role->remove_cap( 'apply_watermark' );
|
108 |
}
|
109 |
|
110 |
+
$watermarks = Watermark::get_all();
|
111 |
+
|
112 |
+
foreach ( $watermarks as $watermark ) {
|
113 |
+
$result = wp_delete_post( $watermark->ID, true );
|
114 |
+
}
|
115 |
+
|
116 |
}
|
117 |
|
118 |
/**
|
204 |
$defaults['general']['jpeg_quality'] = $settings['general']['jpg_quality'];
|
205 |
}
|
206 |
|
207 |
+
update_option( Plugin::get()->get_slug() . '-settings', $defaults );
|
208 |
+
update_option( Plugin::get()->get_slug() . '-version', Plugin::get()->get_version() );
|
209 |
+
|
210 |
if ( isset( $settings['image']['watermark_id'] ) && ! empty( $settings['image']['watermark_id'] ) ) {
|
211 |
self::insert_image_watermark( $watermark_defaults, $settings );
|
212 |
}
|
215 |
self::insert_text_watermark( $watermark_defaults, $settings );
|
216 |
}
|
217 |
|
|
|
|
|
|
|
218 |
self::update_backup_info();
|
219 |
|
220 |
}
|
src/classes/Core/Plugin.php
CHANGED
@@ -73,7 +73,6 @@ class Plugin extends Singleton {
|
|
73 |
|
74 |
register_activation_hook( EW_FILE_PATH, [ 'EasyWatermark\Core\Installer', 'activate' ] );
|
75 |
register_deactivation_hook( EW_FILE_PATH, [ 'EasyWatermark\Core\Installer', 'deactivate' ] );
|
76 |
-
register_uninstall_hook( EW_FILE_PATH, [ 'EasyWatermark\Core\Installer', 'uninstall' ] );
|
77 |
|
78 |
if ( ! ew_dochooks_enabled() ) {
|
79 |
add_action( 'plugins_loaded', [ $this, 'setup' ] );
|
@@ -82,7 +81,10 @@ class Plugin extends Singleton {
|
|
82 |
$this->hook();
|
83 |
|
84 |
// Init Freemius.
|
85 |
-
ew_fs();
|
|
|
|
|
|
|
86 |
|
87 |
// Signal that SDK was initiated.
|
88 |
do_action( 'ew_fs_loaded' );
|
@@ -111,13 +113,7 @@ class Plugin extends Singleton {
|
|
111 |
|
112 |
$this->get_watermark_handler();
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
$last_version = get_option( $this->slug . '-version' );
|
117 |
-
if ( $this->version !== $last_version ) {
|
118 |
-
// Version has changed. Update.
|
119 |
-
Installer::update( $last_version, $settings->get_settings() );
|
120 |
-
}
|
121 |
|
122 |
$this->setup_metaboxes();
|
123 |
|
@@ -163,6 +159,13 @@ class Plugin extends Singleton {
|
|
163 |
add_rewrite_tag( '%watermark_id%', '([0-9]+)' );
|
164 |
add_rewrite_tag( '%image_size%', '([^./-]+)' );
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
}
|
167 |
|
168 |
/**
|
73 |
|
74 |
register_activation_hook( EW_FILE_PATH, [ 'EasyWatermark\Core\Installer', 'activate' ] );
|
75 |
register_deactivation_hook( EW_FILE_PATH, [ 'EasyWatermark\Core\Installer', 'deactivate' ] );
|
|
|
76 |
|
77 |
if ( ! ew_dochooks_enabled() ) {
|
78 |
add_action( 'plugins_loaded', [ $this, 'setup' ] );
|
81 |
$this->hook();
|
82 |
|
83 |
// Init Freemius.
|
84 |
+
$fs = ew_fs();
|
85 |
+
|
86 |
+
// Register uninstall hook with freemius.
|
87 |
+
$fs->add_action( 'after_uninstall', [ 'EasyWatermark\Core\Installer', 'uninstall' ] );
|
88 |
|
89 |
// Signal that SDK was initiated.
|
90 |
do_action( 'ew_fs_loaded' );
|
113 |
|
114 |
$this->get_watermark_handler();
|
115 |
|
116 |
+
Settings::get();
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
$this->setup_metaboxes();
|
119 |
|
159 |
add_rewrite_tag( '%watermark_id%', '([0-9]+)' );
|
160 |
add_rewrite_tag( '%image_size%', '([^./-]+)' );
|
161 |
|
162 |
+
$last_version = get_option( $this->slug . '-version' );
|
163 |
+
if ( $this->version !== $last_version ) {
|
164 |
+
// Version has changed. Update.
|
165 |
+
$settings = Settings::get();
|
166 |
+
Installer::update( $last_version, $settings->get_settings() );
|
167 |
+
}
|
168 |
+
|
169 |
}
|
170 |
|
171 |
/**
|
src/classes/Dashboard/Dashboard.php
CHANGED
@@ -64,7 +64,7 @@ class Dashboard {
|
|
64 |
$this->page_hook = add_management_page(
|
65 |
__( 'Easy Watermark', 'easy-watermark' ),
|
66 |
__( 'Easy Watermark', 'easy-watermark' ),
|
67 |
-
'
|
68 |
'easy-watermark',
|
69 |
[ $this, 'page_content' ]
|
70 |
);
|
64 |
$this->page_hook = add_management_page(
|
65 |
__( 'Easy Watermark', 'easy-watermark' ),
|
66 |
__( 'Easy Watermark', 'easy-watermark' ),
|
67 |
+
'apply_watermark',
|
68 |
'easy-watermark',
|
69 |
[ $this, 'page_content' ]
|
70 |
);
|
src/classes/Dashboard/Page.php
CHANGED
@@ -37,6 +37,13 @@ abstract class Page {
|
|
37 |
*/
|
38 |
protected $priority;
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
/**
|
41 |
* Constructor
|
42 |
*
|
@@ -66,10 +73,12 @@ abstract class Page {
|
|
66 |
*/
|
67 |
public function add_tab( $tabs ) {
|
68 |
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
73 |
|
74 |
return $tabs;
|
75 |
|
37 |
*/
|
38 |
protected $priority;
|
39 |
|
40 |
+
/**
|
41 |
+
* Permission
|
42 |
+
*
|
43 |
+
* @var string
|
44 |
+
*/
|
45 |
+
protected $permission = 'apply_watermark';
|
46 |
+
|
47 |
/**
|
48 |
* Constructor
|
49 |
*
|
73 |
*/
|
74 |
public function add_tab( $tabs ) {
|
75 |
|
76 |
+
if ( current_user_can( $this->permission ) ) {
|
77 |
+
$tabs[ $this->slug ] = [
|
78 |
+
'title' => $this->title,
|
79 |
+
'priority' => $this->priority,
|
80 |
+
];
|
81 |
+
}
|
82 |
|
83 |
return $tabs;
|
84 |
|
src/classes/Dashboard/Permissions.php
CHANGED
@@ -18,6 +18,7 @@ class Permissions extends Page {
|
|
18 |
* Constructor
|
19 |
*/
|
20 |
public function __construct() {
|
|
|
21 |
parent::__construct( __( 'Permissions', 'easy-watermark' ), null, 100 );
|
22 |
}
|
23 |
|
18 |
* Constructor
|
19 |
*/
|
20 |
public function __construct() {
|
21 |
+
$this->permission = 'manage_options';
|
22 |
parent::__construct( __( 'Permissions', 'easy-watermark' ), null, 100 );
|
23 |
}
|
24 |
|
src/classes/Dashboard/Settings.php
CHANGED
@@ -19,6 +19,7 @@ class Settings extends Page {
|
|
19 |
* Constructor
|
20 |
*/
|
21 |
public function __construct() {
|
|
|
22 |
parent::__construct( __( 'Settings', 'easy-watermark' ), null, 80 );
|
23 |
}
|
24 |
|
19 |
* Constructor
|
20 |
*/
|
21 |
public function __construct() {
|
22 |
+
$this->permission = 'manage_options';
|
23 |
parent::__construct( __( 'Settings', 'easy-watermark' ), null, 80 );
|
24 |
}
|
25 |
|
src/classes/Dashboard/Tools.php
CHANGED
@@ -60,33 +60,26 @@ class Tools extends Page {
|
|
60 |
return [
|
61 |
'watermarks' => $handler->get_watermarks(),
|
62 |
'backup_count' => $backup_count,
|
|
|
63 |
];
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
*
|
68 |
-
*
|
69 |
-
* @action wp_ajax_easy-watermark/tools/get-attachments
|
70 |
*
|
71 |
-
* @
|
|
|
72 |
*/
|
73 |
-
|
74 |
-
|
75 |
-
check_ajax_referer( 'get_attachments', 'nonce' );
|
76 |
|
77 |
$mime_types = ImageHelper::get_available_mime_types();
|
78 |
-
|
79 |
-
|
80 |
-
$mode = isset( $_REQUEST['mode'] ) ? $_REQUEST['mode'] : null;
|
81 |
-
|
82 |
-
$posts = get_posts( [
|
83 |
'post_type' => 'attachment',
|
84 |
'post_mime_type' => array_keys( $mime_types ),
|
85 |
'numberposts' => -1,
|
86 |
] );
|
87 |
|
88 |
-
$result = [];
|
89 |
-
|
90 |
foreach ( $posts as $post ) {
|
91 |
if ( get_post_meta( $post->ID, '_ew_used_as_watermark', true ) ) {
|
92 |
// Skip images used as watermark.
|
@@ -104,6 +97,26 @@ class Tools extends Page {
|
|
104 |
];
|
105 |
}
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
wp_send_json_success( $result );
|
|
|
108 |
}
|
109 |
}
|
60 |
return [
|
61 |
'watermarks' => $handler->get_watermarks(),
|
62 |
'backup_count' => $backup_count,
|
63 |
+
'attachments' => $this->get_attachments(),
|
64 |
];
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Gets attachments available for watermarking
|
|
|
|
|
69 |
*
|
70 |
+
* @param string $mode Mode (watermark|restore).
|
71 |
+
* @return array
|
72 |
*/
|
73 |
+
private function get_attachments( $mode = 'watermark' ) {
|
|
|
|
|
74 |
|
75 |
$mime_types = ImageHelper::get_available_mime_types();
|
76 |
+
$result = [];
|
77 |
+
$posts = get_posts( [
|
|
|
|
|
|
|
78 |
'post_type' => 'attachment',
|
79 |
'post_mime_type' => array_keys( $mime_types ),
|
80 |
'numberposts' => -1,
|
81 |
] );
|
82 |
|
|
|
|
|
83 |
foreach ( $posts as $post ) {
|
84 |
if ( get_post_meta( $post->ID, '_ew_used_as_watermark', true ) ) {
|
85 |
// Skip images used as watermark.
|
97 |
];
|
98 |
}
|
99 |
|
100 |
+
return $result;
|
101 |
+
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Prepares arguments for view
|
106 |
+
*
|
107 |
+
* @action wp_ajax_easy-watermark/tools/get-attachments
|
108 |
+
*
|
109 |
+
* @return void
|
110 |
+
*/
|
111 |
+
public function ajax_get_attachments() {
|
112 |
+
|
113 |
+
check_ajax_referer( 'get_attachments', 'nonce' );
|
114 |
+
|
115 |
+
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput
|
116 |
+
$mode = isset( $_REQUEST['mode'] ) ? $_REQUEST['mode'] : null;
|
117 |
+
$result = $this->get_attachments( $mode );
|
118 |
+
|
119 |
wp_send_json_success( $result );
|
120 |
+
|
121 |
}
|
122 |
}
|
src/classes/Features/SrcsetFilter.php
CHANGED
@@ -92,6 +92,11 @@ class SrcsetFilter {
|
|
92 |
*/
|
93 |
public function wp_calculate_image_srcset_meta( $image_meta, $size_array, $image_src, $attachment_id ) {
|
94 |
|
|
|
|
|
|
|
|
|
|
|
95 |
if ( true === $this->switch->get_value() && isset( $image_meta['sizes'] ) && is_array( $image_meta['sizes'] ) ) {
|
96 |
$applied_watermarks = get_post_meta( $attachment_id, '_ew_applied_watermarks', true );
|
97 |
|
92 |
*/
|
93 |
public function wp_calculate_image_srcset_meta( $image_meta, $size_array, $image_src, $attachment_id ) {
|
94 |
|
95 |
+
if ( ! $this->switch ) {
|
96 |
+
// Don't do anything if settings have not been loaded yet.
|
97 |
+
return $image_meta;
|
98 |
+
}
|
99 |
+
|
100 |
if ( true === $this->switch->get_value() && isset( $image_meta['sizes'] ) && is_array( $image_meta['sizes'] ) ) {
|
101 |
$applied_watermarks = get_post_meta( $attachment_id, '_ew_applied_watermarks', true );
|
102 |
|
src/classes/Settings/Settings.php
CHANGED
@@ -44,7 +44,7 @@ class Settings extends Singleton {
|
|
44 |
/**
|
45 |
* Constructor
|
46 |
*/
|
47 |
-
|
48 |
$this->hook();
|
49 |
$this->register_sections();
|
50 |
$this->load_settings();
|
44 |
/**
|
45 |
* Constructor
|
46 |
*/
|
47 |
+
protected function __construct() {
|
48 |
$this->hook();
|
49 |
$this->register_sections();
|
50 |
$this->load_settings();
|
src/classes/Watermark/PostType.php
CHANGED
@@ -233,7 +233,7 @@ class PostType {
|
|
233 |
public function redirect( $location ) {
|
234 |
global $post;
|
235 |
|
236 |
-
if ( 'watermark' === $post->post_type ) {
|
237 |
if ( false !== strpos( $location, 'untrashed=1' ) && ! $this->untrashed ) {
|
238 |
$location = add_query_arg( [
|
239 |
'ew-limited' => '1',
|
@@ -447,7 +447,7 @@ class PostType {
|
|
447 |
if ( 'watermark' === $data['post_type'] && isset( $postarr['watermark'] ) ) {
|
448 |
$watermark_data = Watermark::parse_params( $postarr['watermark'] );
|
449 |
|
450 |
-
$data['post_content'] = wp_json_encode( $watermark_data );
|
451 |
|
452 |
$old_attachment_id = isset( $postarr['ew-previous-attachment-id'] ) ? $postarr['ew-previous-attachment-id'] : false;
|
453 |
$new_attachment_id = $postarr['watermark']['attachment_id'];
|
233 |
public function redirect( $location ) {
|
234 |
global $post;
|
235 |
|
236 |
+
if ( $post && 'watermark' === $post->post_type ) {
|
237 |
if ( false !== strpos( $location, 'untrashed=1' ) && ! $this->untrashed ) {
|
238 |
$location = add_query_arg( [
|
239 |
'ew-limited' => '1',
|
447 |
if ( 'watermark' === $data['post_type'] && isset( $postarr['watermark'] ) ) {
|
448 |
$watermark_data = Watermark::parse_params( $postarr['watermark'] );
|
449 |
|
450 |
+
$data['post_content'] = wp_json_encode( $watermark_data, JSON_UNESCAPED_UNICODE );
|
451 |
|
452 |
$old_attachment_id = isset( $postarr['ew-previous-attachment-id'] ) ? $postarr['ew-previous-attachment-id'] : false;
|
453 |
$new_attachment_id = $postarr['watermark']['attachment_id'];
|
src/classes/Watermark/Watermark.php
CHANGED
@@ -102,7 +102,8 @@ class Watermark {
|
|
102 |
public static function get_all() {
|
103 |
|
104 |
$posts = get_posts( [
|
105 |
-
'post_type'
|
|
|
106 |
] );
|
107 |
|
108 |
foreach ( $posts as $post ) {
|
102 |
public static function get_all() {
|
103 |
|
104 |
$posts = get_posts( [
|
105 |
+
'post_type' => 'watermark',
|
106 |
+
'numberposts' => -1,
|
107 |
] );
|
108 |
|
109 |
foreach ( $posts as $post ) {
|
src/inc/freemius.php
CHANGED
@@ -15,7 +15,7 @@ function ew_fs() {
|
|
15 |
// Include Freemius SDK.
|
16 |
require_once EW_DIR_PATH . '/freemius/start.php';
|
17 |
|
18 |
-
$ew_fs = fs_dynamic_init(
|
19 |
'id' => '2801',
|
20 |
'slug' => 'easy-watermark',
|
21 |
'type' => 'plugin',
|
@@ -23,7 +23,16 @@ function ew_fs() {
|
|
23 |
'is_premium' => false,
|
24 |
'has_addons' => false,
|
25 |
'has_paid_plans' => false,
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
}
|
28 |
|
29 |
return $ew_fs;
|
15 |
// Include Freemius SDK.
|
16 |
require_once EW_DIR_PATH . '/freemius/start.php';
|
17 |
|
18 |
+
$ew_fs = fs_dynamic_init( [
|
19 |
'id' => '2801',
|
20 |
'slug' => 'easy-watermark',
|
21 |
'type' => 'plugin',
|
23 |
'is_premium' => false,
|
24 |
'has_addons' => false,
|
25 |
'has_paid_plans' => false,
|
26 |
+
'menu' => [
|
27 |
+
'slug' => 'easy-watermark',
|
28 |
+
'account' => false,
|
29 |
+
'contact' => false,
|
30 |
+
'support' => false,
|
31 |
+
'parent' => [
|
32 |
+
'slug' => 'tools.php',
|
33 |
+
],
|
34 |
+
],
|
35 |
+
] );
|
36 |
}
|
37 |
|
38 |
return $ew_fs;
|
src/inc/hooks.php
CHANGED
@@ -49,7 +49,7 @@ add_filter( 'easy-watermark/dashboard/permissions/view-args', [ $this->objects['
|
|
49 |
add_filter( 'easy-watermark/dashboard/tabs', [ $this->objects['EasyWatermark\Dashboard\Permissions']['instance'], 'add_tab' ], 10, 1 );
|
50 |
add_action( 'easy-watermark/dashboard/settings/notices', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'admin_notices' ], 10, 0 );
|
51 |
add_filter( 'easy-watermark/dashboard/tools/view-args', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'view_args' ], 10, 1 );
|
52 |
-
add_action( 'wp_ajax_easy-watermark/tools/get-attachments', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], '
|
53 |
add_filter( 'easy-watermark/dashboard/tabs', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'add_tab' ], 10, 1 );
|
54 |
add_action( 'easy-watermark/settings/register/general', [ $this->objects['EasyWatermark\Features\SrcsetFilter']['instance'], 'register_settings' ], 10, 1 );
|
55 |
add_filter( 'wp_calculate_image_srcset_meta', [ $this->objects['EasyWatermark\Features\SrcsetFilter']['instance'], 'wp_calculate_image_srcset_meta' ], 1000, 4 );
|
49 |
add_filter( 'easy-watermark/dashboard/tabs', [ $this->objects['EasyWatermark\Dashboard\Permissions']['instance'], 'add_tab' ], 10, 1 );
|
50 |
add_action( 'easy-watermark/dashboard/settings/notices', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'admin_notices' ], 10, 0 );
|
51 |
add_filter( 'easy-watermark/dashboard/tools/view-args', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'view_args' ], 10, 1 );
|
52 |
+
add_action( 'wp_ajax_easy-watermark/tools/get-attachments', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'ajax_get_attachments' ], 10, 0 );
|
53 |
add_filter( 'easy-watermark/dashboard/tabs', [ $this->objects['EasyWatermark\Dashboard\Tools']['instance'], 'add_tab' ], 10, 1 );
|
54 |
add_action( 'easy-watermark/settings/register/general', [ $this->objects['EasyWatermark\Features\SrcsetFilter']['instance'], 'register_settings' ], 10, 1 );
|
55 |
add_filter( 'wp_calculate_image_srcset_meta', [ $this->objects['EasyWatermark\Features\SrcsetFilter']['instance'], 'wp_calculate_image_srcset_meta' ], 1000, 4 );
|
src/views/dashboard/pages/tools.php
CHANGED
@@ -13,19 +13,23 @@
|
|
13 |
<div class="content">
|
14 |
<p><?php esc_html_e( 'Using this tool you can quickly apply watermark to all images in the Media Library.', 'easy-watermark' ); ?></p>
|
15 |
<?php if ( count( $watermarks ) ) : ?>
|
16 |
-
|
17 |
-
<
|
18 |
-
<
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
<?php else : ?>
|
30 |
<?php $link = sprintf( '<a href="%s">%s</a>', admin_url( 'post-new.php?post_type=watermark' ), esc_html_x( 'create watermark', 'link text for new watermark page', 'easy-watermark' ) ); ?>
|
31 |
<?php /* translators: %s is a "create watermark" link */ ?>
|
13 |
<div class="content">
|
14 |
<p><?php esc_html_e( 'Using this tool you can quickly apply watermark to all images in the Media Library.', 'easy-watermark' ); ?></p>
|
15 |
<?php if ( count( $watermarks ) ) : ?>
|
16 |
+
<?php if ( count( $attachments ) ) : ?>
|
17 |
+
<p>
|
18 |
+
<select class="watermark">
|
19 |
+
<option value="-1"><?php esc_html_e( 'Select Watermark', 'easy-watermark' ); ?></option>
|
20 |
+
<?php if ( 1 < count( $watermarks ) ) : ?>
|
21 |
+
<option value="all" data-nonce="<?php echo esc_attr( wp_create_nonce( 'apply_all' ) ); ?>"><?php esc_html_e( 'All Watermarks', 'easy-watermark' ); ?></option>
|
22 |
+
<?php endif; ?>
|
23 |
+
<?php foreach ( $watermarks as $watermark ) : ?>
|
24 |
+
<option value="<?php echo esc_attr( $watermark->ID ); ?>" data-nonce="<?php echo esc_attr( wp_create_nonce( 'apply_single-' . $watermark->ID ) ); ?>"><?php echo esc_html( $watermark->post_title ); ?></option>
|
25 |
+
<?php endforeach; ?>
|
26 |
+
</select>
|
27 |
+
</p>
|
28 |
+
<p><a href="#" class="button-primary"><?php esc_html_e( 'Start', 'easy-watermark' ); ?></a><span class="spinner"></span></p>
|
29 |
+
<p class="description"><?php esc_html_e( 'Note: The same watermark will never get applied twice to the same image. This tool is safe to use even if some of the images are already watermarked.', 'easy-watermark' ); ?></p>
|
30 |
+
<?php else : ?>
|
31 |
+
<p><?php esc_html_e( 'There are no image attachments in your Media Library available for watermarking.', 'easy-watermark' ); ?></p>
|
32 |
+
<?php endif; ?>
|
33 |
<?php else : ?>
|
34 |
<?php $link = sprintf( '<a href="%s">%s</a>', admin_url( 'post-new.php?post_type=watermark' ), esc_html_x( 'create watermark', 'link text for new watermark page', 'easy-watermark' ) ); ?>
|
35 |
<?php /* translators: %s is a "create watermark" link */ ?>
|
src/views/dashboard/pages/watermarks.php
CHANGED
@@ -11,7 +11,13 @@
|
|
11 |
<div class="postbox item">
|
12 |
<div class="inside">
|
13 |
<?php /* translators: watermark name */ ?>
|
14 |
-
<h3
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
<div class="watermark-preview">
|
16 |
<?php if ( 'image' === $watermark->type ) : ?>
|
17 |
<?php echo wp_get_attachment_image( $watermark->attachment_id, 'full' ); ?>
|
@@ -20,16 +26,20 @@
|
|
20 |
<?php endif; ?>
|
21 |
</div>
|
22 |
<div class="row-actions">
|
23 |
-
<?php
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
27 |
</div>
|
28 |
</div>
|
29 |
</div>
|
30 |
<?php endforeach; ?>
|
31 |
|
32 |
-
<?php if ( 2 > $watermarks_count ) : ?>
|
33 |
<div class="postbox item">
|
34 |
<div class="inside">
|
35 |
<a href="<?php echo esc_url( admin_url( 'post-new.php?post_type=watermark' ) ); ?>" class="button button-primary button-hero"><?php esc_html_e( 'Add New Watermark', 'easy-watermark' ); ?></a>
|
11 |
<div class="postbox item">
|
12 |
<div class="inside">
|
13 |
<?php /* translators: watermark name */ ?>
|
14 |
+
<h3>
|
15 |
+
<?php if ( current_user_can( 'edit_others_watermarks' ) || get_current_user_id() === (int) $watermark->post_author ) : ?>
|
16 |
+
<a href="<?php echo esc_url( get_edit_post_link( $watermark->ID ) ); ?>" aria-label="<?php esc_attr_e( sprintf( 'Edit “%s”', $watermark->post_title ) ); ?>"><?php echo esc_html( $watermark->post_title ); ?></a>
|
17 |
+
<?php else : ?>
|
18 |
+
<?php echo esc_html( $watermark->post_title ); ?>
|
19 |
+
<?php endif; ?>
|
20 |
+
</h3>
|
21 |
<div class="watermark-preview">
|
22 |
<?php if ( 'image' === $watermark->type ) : ?>
|
23 |
<?php echo wp_get_attachment_image( $watermark->attachment_id, 'full' ); ?>
|
26 |
<?php endif; ?>
|
27 |
</div>
|
28 |
<div class="row-actions">
|
29 |
+
<?php if ( current_user_can( 'edit_others_watermarks' ) || get_current_user_id() === (int) $watermark->post_author ) : ?>
|
30 |
+
<?php /* translators: watermark name */ ?>
|
31 |
+
<span class="edit"><a href="<?php echo esc_url( get_edit_post_link( $watermark->ID ) ); ?>" aria-label="<?php esc_attr_e( sprintf( 'Edit “%s”', $watermark->post_title ) ); ?>"><?php esc_html_e( 'Edit', 'easy-watermark' ); ?></a> | </span>
|
32 |
+
<?php endif; ?>
|
33 |
+
<?php if ( current_user_can( 'delete_others_watermarks' ) || get_current_user_id() === (int) $watermark->post_author ) : ?>
|
34 |
+
<?php /* translators: watermark name */ ?>
|
35 |
+
<span class="delete"><a href="<?php echo esc_url( get_delete_post_link( $watermark->ID, '', true ) ); ?>" class="submitdelete" data-watermark-name="<?php echo esc_attr( $watermark->post_title ); ?>" aria-label="<?php esc_attr_e( sprintf( 'Permanently Delete “%s”', $watermark->post_title ) ); ?>"><?php esc_html_e( 'Delete Permanently', 'easy-watermark' ); ?></a></span>
|
36 |
+
<?php endif; ?>
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
40 |
<?php endforeach; ?>
|
41 |
|
42 |
+
<?php if ( 2 > $watermarks_count && current_user_can( 'edit_watermarks' ) ) : ?>
|
43 |
<div class="postbox item">
|
44 |
<div class="inside">
|
45 |
<a href="<?php echo esc_url( admin_url( 'post-new.php?post_type=watermark' ) ); ?>" class="button button-primary button-hero"><?php esc_html_e( 'Add New Watermark', 'easy-watermark' ); ?></a>
|