PluginProbe
Hide/Remove Metadata / trunk
Hide/Remove Metadata vtrunk
trunk 1.0.0 1.0.1 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.1
← All changes | hide-metadata.php +127 -138 1.2.7trunk View file →
@@ -4,9 +4,9 @@
4 4 * Description: Hide/Remove Metadata is a free, simple yet extremely handy WordPress plugin that helps you hide author and published date either by CSS or PHP from your website effortlessly.
5 5 * Plugin URI: http://catchplugins.com/plugins/hide-metadata
6 6 * Author: Catch Plugins
7 7 * Author URI: http://catchplugins.com/
8 - * Version: 1.2.7
8 + * Version: 2.1
9 9 * License: GPL2
10 10 * Text Domain: hide-metadata
11 11 * Domain Path: /languages
12 12 */
@@ -27,59 +27,83 @@
27 27 along with this program; if not, write to the Free Software
28 28 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 29 */
30 30
31 -define( 'HIDE_METADATA_VERSION', '1.2.7' );
32 -define( 'HIDE_METADATA_BASENAME', plugin_basename( __FILE__ ) );
31 +if (! defined('ABSPATH')) {
32 + exit; // Exit if accessed directly
33 +}
33 34
34 -class Hide_Metadata {
35 +// Define Version
36 +if ( ! defined( 'HIDE_METADATA_VERSION' ) ) {
37 + define( 'HIDE_METADATA_VERSION', '2.1' );
38 +}
39 +
40 +if ( ! defined( 'HIDE_METADATA_BASENAME' ) ) {
41 + define('HIDE_METADATA_BASENAME', plugin_basename(__FILE__));
42 +}
43 +
44 +class Hide_Metadata
45 +{
35 46 private $plugin_name;
36 47 private $version;
37 48 private $options;
38 49
39 - function __construct() {
50 + function __construct()
51 + {
40 52 $this->plugin_name = 'hide-metadata';
41 53 $this->version = HIDE_METADATA_VERSION;
42 54 $this->options = hide_metadata_get_options();
43 55
44 - add_action( 'admin_init', array( $this, 'register_settings' ) );
45 - add_action( 'admin_menu', array( $this, 'add_plugin_settings_menu' ) );
46 - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) );
47 - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
56 + add_filter('body_class', array($this, 'hide_metadata_body_class'));
57 + add_action('admin_init', array($this, 'register_settings'));
58 + add_action('admin_menu', array($this, 'add_plugin_settings_menu'));
59 + add_action('admin_enqueue_scripts', array($this, 'enqueue_styles'));
60 + add_action('wp_enqueue_scripts', array($this, 'plugin_styles'));
61 + add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
48 62
49 - add_filter( 'plugin_row_meta', array( $this, 'add_plugin_meta_links' ), 10, 2 );
63 + add_filter('plugin_row_meta', array($this, 'add_plugin_meta_links'), 10, 2);
50 64
51 - add_filter( 'plugin_action_links', array( $this, 'action_links' ), 10, 2 );
65 + add_filter('plugin_action_links', array($this, 'action_links'), 10, 2);
52 66
53 - if ( 'php' === $this->options['hide_by'] ) {
54 - add_action( 'loop_start', array( $this, 'remove_php' ) );
55 - add_action( 'init', array( $this, 'remove_php' ) );
67 + if ('php' === $this->options['hide_by']) {
68 + add_action('loop_start', array($this, 'remove_php'));
69 + add_action('init', array($this, 'remove_php'));
56 70 }
57 - add_action( 'wp_head', array( $this, 'css_filter_option' ) );
58 71 }
59 72
73 +
60 74 /**
61 75 * Register the stylesheets for the admin area.
62 76 *
63 77 * @since 1.0.0
64 78 */
65 - function enqueue_styles() {
66 - if ( isset( $_GET['page'] ) && 'hide-metadata' === $_GET['page'] ) {
67 - wp_enqueue_style( $this->plugin_name . '-display-dashboard', plugin_dir_url( __FILE__ ) . 'css/admin-dashboard.css', array(), $this->version, 'all' );
79 + function enqueue_styles()
80 + {
81 + $hm_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only page check for admin style loading.
82 + if ('hide-metadata' === $hm_page) {
83 + wp_enqueue_style($this->plugin_name . '-display-dashboard', plugin_dir_url(__FILE__) . 'css/admin-dashboard.css', array(), $this->version, 'all');
68 84 }
69 85 }
70 86
87 +
88 + function plugin_styles()
89 + {
90 + wp_enqueue_style($this->plugin_name . '-style', plugin_dir_url(__FILE__) . 'css/style.css', array(), $this->version, 'all');
91 + }
92 +
93 +
71 94 /**
72 95 * Register the scripts for the admin area.
73 96 *
74 97 * @since 1.0.0
75 98 */
76 - function enqueue_scripts() {
77 - if ( isset( $_GET['page'] ) && 'hide-metadata' === $_GET['page'] ) {
78 - wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/hide-metadata-admin.js', array( 'jquery', 'matchHeight', 'jquery-ui-tooltip' ), $this->version, false );
99 + function enqueue_scripts()
100 + {
101 + $hm_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only page check for admin script loading.
102 + if ('hide-metadata' === $hm_page) {
103 + wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/hide-metadata-admin.js', array('jquery', 'matchHeight', 'jquery-ui-tooltip'), $this->version, false);
79 104
80 - wp_enqueue_script( 'matchHeight', plugin_dir_url( __FILE__ ) . 'js/jquery-matchHeight.min.js', array( 'jquery' ), $this->version, false );
81 -
105 + wp_enqueue_script('matchHeight', plugin_dir_url(__FILE__) . 'js/jquery-matchHeight.min.js', array('jquery'), $this->version, false);
82 106 }
83 107 }
84 108
85 109 /**
@@ -89,13 +113,14 @@
89 113 * @param arrray $links Link url.
90 114 *
91 115 * @param arrray $file File name.
92 116 */
93 - function action_links( $links, $file ) {
94 - if ( $file === $this->plugin_name . '/' . $this->plugin_name . '.php' ) {
95 - $settings_link = '<a href="' . esc_url( admin_url( 'admin.php?page=hide-metadata' ) ) . '">' . esc_html__( 'Settings', 'hide-metadata' ) . '</a>';
117 + function action_links($links, $file)
118 + {
119 + if ($file === $this->plugin_name . '/' . $this->plugin_name . '.php') {
120 + $settings_link = '<a href="' . esc_url(admin_url('tools.php?page=hide-metadata')) . '">' . esc_html__('Settings', 'hide-metadata') . '</a>';
96 121
97 - array_unshift( $links, $settings_link );
122 + array_unshift($links, $settings_link);
98 123 }
99 124 return $links;
100 125 }
101 126
@@ -101,17 +126,18 @@
101 126
102 127 /**
103 128 * Add settings menu
104 129 */
105 - function add_plugin_settings_menu() {
130 + function add_plugin_settings_menu()
131 + {
106 132 // Add menu under tools
107 133 add_submenu_page(
108 134 'tools.php',
109 - esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
110 - esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
135 + esc_html__('Hide/Remove Metadata', 'hide-metadata'),
136 + esc_html__('Hide/Remove Metadata', 'hide-metadata'),
111 137 'manage_options',
112 138 'hide-metadata',
113 - array( $this, 'settings_page' )
139 + array($this, 'settings_page')
114 140 );
115 141 }
116 142
117 143 /**
@@ -117,27 +143,30 @@
117 143 /**
118 144 * Hide/Remove MetaData: settings_page
119 145 * Hide/Remove MetaData Setting function
120 146 */
121 - function settings_page() {
122 - if ( ! current_user_can( 'manage_options' ) ) {
123 - wp_die( esc_html__( 'You do not have sufficient permissions to access this page.' ) );
147 + function settings_page()
148 + {
149 + if (! current_user_can('manage_options')) {
150 + wp_die(esc_html__('You do not have sufficient permissions to access this page.', 'hide-metadata'));
124 151 }
125 152
126 - require plugin_dir_path( __FILE__ ) . 'partials/admin-display.php';
153 + require plugin_dir_path(__FILE__) . 'partials/admin-display.php';
127 154 }
128 155
129 - function register_settings() {
156 + function register_settings()
157 + {
130 158 register_setting(
131 159 'hide-metadata-group',
132 160 'hide_metadata_options',
133 - array( $this, 'sanitize_callback' )
161 + array($this, 'sanitize_callback')
134 162 );
135 163 }
136 164
137 - public function sanitize_callback( $input ) {
165 + public function sanitize_callback($input)
166 + {
138 167
139 - if ( isset( $input['reset'] ) && $input['reset'] ) {
168 + if (isset($input['reset']) && $input['reset']) {
140 169 // If reset, restore defaults
141 170 return hide_metadata_default_options();
142 171 }
143 172 $message = null;
@@ -143,135 +172,94 @@
143 172 $message = null;
144 173 $type = null;
145 174
146 175 // Verify the nonce before proceeding.
147 - if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
148 - || ( ! isset( $_POST['hide_metadata_nonce'] )
149 - || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['hide_metadata_nonce'] ) ), HIDE_METADATA_BASENAME ) )
150 - || ( ! check_admin_referer( HIDE_METADATA_BASENAME, 'hide_metadata_nonce' ) ) ) {
176 + if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
177 + || (! isset($_POST['hide_metadata_nonce'])
178 + || ! wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['hide_metadata_nonce'])), HIDE_METADATA_BASENAME))
179 + || (! check_admin_referer(HIDE_METADATA_BASENAME, 'hide_metadata_nonce'))
180 + ) {
151 181
152 - return esc_html__( 'Invalid Nonce', 'hide-metadata' );
153 -
182 + return esc_html__('Invalid Nonce', 'hide-metadata');
154 183 } else {
155 - if ( null !== $input ) {
184 + if (null !== $input) {
156 185
157 - $input['hide_by'] = sanitize_key( $input['hide_by'] );
158 - $input['hide_author'] = ( isset( $input['hide_author'] ) && '1' === $input['hide_author'] ) ? '1' : '0';
159 - $input['hide_date'] = ( isset( $input['hide_date'] ) && '1' === $input['hide_date'] ) ? '1' : '0';
160 -
186 + $input['hide_by'] = sanitize_key($input['hide_by']);
187 + $input['hide_author'] = (isset($input['hide_author']) && '1' === $input['hide_author']) ? '1' : '0';
188 + $input['hide_date'] = (isset($input['hide_date']) && '1' === $input['hide_date']) ? '1' : '0';
161 189 }
162 190 return $input;
163 191 }
164 192 }
165 193
166 - function hide_by_css() {
167 194
168 - $css = '';
195 + // Removal using css
196 +
197 + public function hide_metadata_body_class($classes)
198 + {
199 +
169 200 $options = hide_metadata_get_options();
170 - // Hide author CSS
171 - if ( '1' === $options['hide_author'] && 'css' === $options['hide_by'] ) {
172 - $css .= ".entry-meta .byline,
173 - .entry-meta .by-author,
174 - .entry-header .entry-meta > span.byline,
175 - .entry-meta .author.vcard {
176 - display: none;
177 - }\n";
201 +
202 + if ('1' === $options['hide_author'] && 'css' === $options['hide_by']) {
203 + $classes[] = 'hide-meta-author';
178 204 }
179 -
180 - // Hide date CSS
181 - if ( '1' === $options['hide_date'] && 'css' === $options['hide_by'] ) {
182 - $css .= ".entry-meta .posted-on,
183 - .entry-header .entry-meta > span.posted-on {
184 - display: none;
185 - }\n";
205 + if ('1' === $options['hide_date'] && 'css' === $options['hide_by']) {
206 + $classes[] = 'hide-meta-date';
186 207 }
187 -
188 - // Hide author
189 - if ( '1' === $options['hide_author'] && 'php' === $options['hide_by'] ) {
190 - $css .= ".entry-meta .byline:before,
191 - .entry-header .entry-meta span.byline:before,
192 - .entry-meta .byline:after,
193 - .entry-header .entry-meta span.byline:after,
194 - .single .byline, .group-blog .byline,
195 - .entry-meta .byline,
196 - .entry-header .entry-meta > span.byline,
197 - .entry-meta .author.vcard {
198 - content: '';
199 - display: none;
200 - margin: 0;
201 - }\n";
208 + if ('1' === $options['hide_date'] && 'php' === $options['hide_by']) {
209 + $classes[] = 'hide-meta-date-php';
202 210 }
203 -
204 - // Hide date
205 - if ( '1' === $options['hide_date'] && 'php' === $options['hide_by'] ) {
206 - $css .= ".entry-meta .posted-on:before,
207 - .entry-header .entry-meta > span.posted-on:before,
208 - .entry-meta .posted-on:after,
209 - .entry-header .entry-meta > span.posted-on:after,
210 - .entry-meta .posted-on,
211 - .entry-header .entry-meta > span.posted-on {
212 - content: '';
213 - display: none;
214 - margin: 0;
215 - }\n";
211 + if ('1' === $options['hide_author'] && 'php' === $options['hide_by']) {
212 + $classes[] = 'hide-meta-author-php';
216 213 }
217 214
218 - return $css;
215 + return $classes;
219 216 }
220 217
221 - // Removal using css
222 218
223 - function inline_style() {
224 - $css = $this->hide_by_css();
225 - if ( ! empty( $css ) ) {
226 - echo "<style>\n\n/* CSS added by Hide Metadata Plugin */\n\n" . wp_strip_all_tags( $css ) . "</style>\n";
227 - }
228 - }
229 219
230 - function remove_php() {
220 + function remove_php()
221 + {
231 222 $options = hide_metadata_get_options();
232 223
233 - if ( '1' === $options['hide_author'] ) {
234 - add_filter( 'the_author', '__return_false' );
235 - add_filter( 'get_the_author', '__return_false' );
236 - add_filter( 'author_link', '__return_false' );
224 + if ('1' === $options['hide_author']) {
225 + add_filter('the_author', '__return_false');
226 + add_filter('get_the_author', '__return_false');
227 + add_filter('author_link', '__return_false');
237 228 }
238 229
239 - if ( '1' === $options['hide_date'] ) {
240 - add_filter( 'the_date', '__return_false' );
241 - add_filter( 'the_time', '__return_false' );
242 - add_filter( 'the_modified_date', '__return_false' );
243 - add_filter( 'get_the_date', '__return_false' );
244 - add_filter( 'get_the_title', '__return_false' );
245 - add_filter( 'get_the_time', '__return_false' );
246 - add_filter( 'get_the_modified_date', '__return_false' );
230 + if ('1' === $options['hide_date']) {
231 + add_filter('the_date', '__return_false');
232 + add_filter('the_time', '__return_false');
233 + add_filter('the_modified_date', '__return_false');
234 + add_filter('get_the_date', '__return_false');
235 + add_filter('get_the_time', '__return_false');
236 + add_filter('get_the_modified_date', '__return_false');
247 237 }
248 238 }
249 239
250 - function css_filter_option() {
251 - $this->inline_style();
252 - }
253 240
254 - function add_plugin_meta_links( $meta_fields, $file ) {
241 + function add_plugin_meta_links($meta_fields, $file)
242 + {
255 243
256 - if ( plugin_basename( __FILE__ ) === $file ) {
244 + if (plugin_basename(__FILE__) === $file) {
257 245
258 246 $meta_fields[] = "<a href='https://catchplugins.com/support-forum/forum/hide-metadata/' target='_blank'>Support Forum</a>";
259 247 $meta_fields[] = "<a href='https://wordpress.org/support/plugin/hide-metadata/reviews#new-post' target='_blank' title='Rate'>
260 248 <i class='ct-rate-stars'>"
261 - . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
262 - . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
263 - . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
264 - . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
265 - . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
266 - . '</i></a>';
249 + . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
250 + . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
251 + . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
252 + . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
253 + . "<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>"
254 + . '</i></a>';
267 255
268 256 $stars_color = '#ffb900';
269 257
270 258 echo '<style>'
271 - . '.ct-rate-stars{display:inline-block;color:' . $stars_color . ';position:relative;top:3px;}'
272 - . '.ct-rate-stars svg{fill:' . $stars_color . ';}'
273 - . '.ct-rate-stars svg:hover{fill:' . $stars_color . '}'
259 + . '.ct-rate-stars{display:inline-block;color:' . esc_html($stars_color) . ';position:relative;top:3px;}'
260 + . '.ct-rate-stars svg{fill:' . esc_html($stars_color) . ';}'
261 + . '.ct-rate-stars svg:hover{fill:' . esc_html($stars_color) . '}'
274 262 . '.ct-rate-stars svg:hover ~ svg{fill:none;}'
275 263 . '</style>';
276 264 }
277 265
@@ -276,15 +264,15 @@
276 264 }
277 265
278 266 return $meta_fields;
279 267 }
280 -
281 268 }
282 269
283 270 new Hide_Metadata();
284 271
285 272
286 -function hide_metadata_default_options( $option = null ) {
273 +function hide_metadata_default_options($option = null)
274 +{
287 275 $default_options = array(
288 276 'hide_by' => 'css',
289 277 'hide_author' => '0',
290 278 'hide_date' => '0',
@@ -289,17 +277,18 @@
289 277 'hide_author' => '0',
290 278 'hide_date' => '0',
291 279 );
292 280
293 - if ( null === $option ) {
294 - return apply_filters( 'hide_metadata_options', $default_options );
281 + if (null === $option) {
282 + return apply_filters('hide_metadata_options', $default_options);
295 283 } else {
296 - return $default_options[ $option ];
284 + return $default_options[$option];
297 285 }
298 286 }
299 287
300 -function hide_metadata_get_options() {
288 +function hide_metadata_get_options()
289 +{
301 290 $defaults = hide_metadata_default_options();
302 - $options = get_option( 'hide_metadata_options', $defaults );
291 + $options = get_option('hide_metadata_options', $defaults);
303 292
304 - return wp_parse_args( $options, $defaults );
293 + return wp_parse_args($options, $defaults);
305 294 }