PluginProbe
Hide/Remove Metadata / 1.2.1
Hide/Remove Metadata v1.2.1
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
hide-metadata / hide-metadata.php

hide-metadata.php in Hide/Remove Metadata 1.2.1, at hide-metadata.php

304 lines 10.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Hide/Remove Metadata
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 * Plugin URI: http://catchplugins.com/plugins/hide-metadata
6 * Author: Catch Plugins
7 * Author URI: http://catchplugins.com/
8 * Version: 1.2.1
9 * License: GPL2
10 * Text Domain: hide-metadata
11 * Domain Path: /languages
12 */
13
14 /*
15 Copyright (C) Year Author Email
16
17 This program is free software; you can redistribute it and/or modify
18 it under the terms of the GNU General Public License, version 2, as
19 published by the Free Software Foundation.
20
21 This program is distributed in the hope that it will be useful,
22 but WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 GNU General Public License for more details.
25
26 You should have received a copy of the GNU General Public License
27 along with this program; if not, write to the Free Software
28 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 */
30
31 define( 'HIDE_METADATA_VERSION', '1.2.1' );
32 define( 'HIDE_METADATA_BASENAME', plugin_basename( __FILE__ ) );
33
34 class Hide_Metadata {
35 private $plugin_name;
36 private $version;
37 private $options;
38
39 function __construct() {
40 $this->plugin_name = 'hide-metadata';
41 $this->version = HIDE_METADATA_VERSION;
42 $this->options = hide_metadata_get_options();
43
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' ) );
48
49 add_filter( 'plugin_row_meta', array( $this, 'add_plugin_meta_links' ), 10, 2 );
50
51 add_filter( 'plugin_action_links', array( $this, 'action_links' ), 10, 2 );
52
53 if ( 'php' === $this->options['hide_by'] ) {
54 add_action( 'loop_start', array( $this, 'remove_php' ) );
55 }
56 add_action( 'wp_head', array( $this, 'css_filter_option' ) );
57 }
58
59 /**
60 * Register the stylesheets for the admin area.
61 *
62 * @since 1.0.0
63 */
64 function enqueue_styles() {
65 if ( isset( $_GET['page'] ) && 'hide-metadata' === $_GET['page'] ) {
66 wp_enqueue_style( $this->plugin_name . '-display-dashboard', plugin_dir_url( __FILE__ ) . 'css/admin-dashboard.css', array(), $this->version, 'all' );
67 }
68 }
69
70 /**
71 * Register the scripts for the admin area.
72 *
73 * @since 1.0.0
74 */
75 function enqueue_scripts() {
76 if ( isset( $_GET['page'] ) && 'hide-metadata' === $_GET['page'] ) {
77 wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/hide-metadata-admin.js', array( 'jquery', 'matchHeight', 'jquery-ui-tooltip' ), $this->version, false );
78
79 wp_enqueue_script( 'matchHeight', plugin_dir_url( __FILE__ ) . 'js/jquery-matchHeight.min.js', array( 'jquery' ), $this->version, false );
80
81 }
82 }
83
84 /**
85 * Hide/Remove MetaData: action_links
86 * Hide/Remove MetaData Settings Link function callback
87 *
88 * @param arrray $links Link url.
89 *
90 * @param arrray $file File name.
91 */
92 function action_links( $links, $file ) {
93 if ( $file === $this->plugin_name . '/' . $this->plugin_name . '.php' ) {
94 $settings_link = '<a href="' . esc_url( admin_url( 'admin.php?page=hide-metadata' ) ) . '">' . esc_html__( 'Settings', 'hide-metadata' ) . '</a>';
95
96 array_unshift( $links, $settings_link );
97 }
98 return $links;
99 }
100
101 /**
102 * Add settings menu
103 */
104 function add_plugin_settings_menu() {
105 // Add menu under tools
106 add_submenu_page(
107 'tools.php',
108 esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
109 esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
110 'manage_options',
111 'hide-metadata',
112 array( $this, 'settings_page' )
113 );
114 }
115
116 /**
117 * Hide/Remove MetaData: settings_page
118 * Hide/Remove MetaData Setting function
119 */
120 function settings_page() {
121 if ( ! current_user_can( 'manage_options' ) ) {
122 wp_die( esc_html__( 'You do not have sufficient permissions to access this page.' ) );
123 }
124
125 require plugin_dir_path( __FILE__ ) . 'partials/admin-display.php';
126 }
127
128 function register_settings() {
129 register_setting(
130 'hide-metadata-group',
131 'hide_metadata_options',
132 array( $this, 'sanitize_callback' )
133 );
134 }
135
136 public function sanitize_callback( $input ) {
137
138 if ( isset( $input['reset'] ) && $input['reset'] ) {
139 //If reset, restore defaults
140 return hide_metadata_default_options();
141 }
142 $message = null;
143 $type = null;
144
145 // Verify the nonce before proceeding.
146 if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
147 || ( ! isset( $_POST['hide_metadata_nonce'] )
148 || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['hide_metadata_nonce'] ) ), HIDE_METADATA_BASENAME ) )
149 || ( ! check_admin_referer( HIDE_METADATA_BASENAME, 'hide_metadata_nonce' ) ) ) {
150
151 return esc_html__( 'Invalid Nonce', 'hide-metadata' );
152
153 } else {
154 if ( null !== $input ) {
155
156 $input['hide_by'] = sanitize_key( $input['hide_by'] );
157 $input['hide_author'] = ( isset( $input['hide_author'] ) && '1' === $input['hide_author'] ) ? '1' : '0';
158 $input['hide_date'] = ( isset( $input['hide_date'] ) && '1' === $input['hide_date'] ) ? '1' : '0';
159
160 }
161 return $input;
162 }
163 }
164
165 function hide_by_css() {
166
167 $css = '';
168 $options = hide_metadata_get_options();
169
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 display: none;
176 }\n";
177 }
178
179 // Hide date CSS
180 if ( '1' === $options['hide_date'] && 'css' === $options['hide_by'] ) {
181 $css .= ".entry-meta .posted-on,
182 .entry-header .entry-meta > span.posted-on {
183 display: none;
184 }\n";
185 }
186
187 // Hide author
188 if ( '1' === $options['hide_author'] && 'php' === $options['hide_by'] ) {
189 $css .= ".entry-meta .byline:before,
190 .entry-header .entry-meta span.byline:before,
191 .entry-meta .byline:after,
192 .entry-header .entry-meta span.byline:after,
193 .single .byline, .group-blog .byline,
194 .entry-meta .byline,
195 .entry-header .entry-meta > span.byline {
196 content: '';
197 display: none;
198 margin: 0;
199 }\n";
200 }
201
202 // Hide date
203 if ( '1' == $options['hide_date'] && 'php' === $options['hide_by'] ) {
204 $css .= ".entry-meta .posted-on:before,
205 .entry-header .entry-meta > span.posted-on:before,
206 .entry-meta .posted-on:after,
207 .entry-header .entry-meta > span.posted-on:after,
208 .entry-meta .posted-on,
209 .entry-header .entry-meta > span.posted-on {
210 content: '';
211 display: none;
212 margin: 0;
213 }\n";
214 }
215
216 return $css;
217 }
218
219 //Removal using css
220
221 function inline_style() {
222 $css = $this->hide_by_css();
223 if ( ! empty( $css ) ) {
224 echo "<style>\n\n/* CSS added by Hide Metadata Plugin */\n\n" . wp_strip_all_tags( $css ) . "</style>\n";
225 }
226 }
227
228 function remove_php() {
229 $options = hide_metadata_get_options();
230
231 if ( true === $options['hide_author'] ) {
232 add_filter( 'the_author', '__return_false' );
233 add_filter( 'get_the_author', '__return_false' );
234 add_filter( 'author_link', '__return_false' );
235 }
236
237 if ( true === $options['hide_date'] ) {
238 add_filter( 'the_date', '__return_false' );
239 add_filter( 'the_time', '__return_false' );
240 add_filter( 'the_modified_date', '__return_false' );
241 add_filter( 'get_the_date', '__return_false' );
242 add_filter( 'get_the_title', '__return_false' );
243 add_filter( 'get_the_time', '__return_false' );
244 add_filter( 'get_the_modified_date', '__return_false' );
245 }
246 }
247
248 function css_filter_option() {
249 $this->inline_style();
250 }
251
252 function add_plugin_meta_links( $meta_fields, $file ) {
253
254 if ( plugin_basename( __FILE__ ) === $file ) {
255
256 $meta_fields[] = "<a href='https://catchplugins.com/support-forum/forum/hide-metadata/' target='_blank'>Support Forum</a>";
257 $meta_fields[] = "<a href='https://wordpress.org/support/plugin/hide-metadata/reviews#new-post' target='_blank' title='Rate'>
258 <i class='ct-rate-stars'>"
259 . "<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>"
260 . "<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>"
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 . '</i></a>';
265
266 $stars_color = '#ffb900';
267
268 echo '<style>'
269 . '.ct-rate-stars{display:inline-block;color:' . $stars_color . ';position:relative;top:3px;}'
270 . '.ct-rate-stars svg{fill:' . $stars_color . ';}'
271 . '.ct-rate-stars svg:hover{fill:' . $stars_color . '}'
272 . '.ct-rate-stars svg:hover ~ svg{fill:none;}'
273 . '</style>';
274 }
275
276 return $meta_fields;
277 }
278
279 }
280
281 new Hide_Metadata();
282
283
284 function hide_metadata_default_options( $option = null ) {
285 $default_options = array(
286 'hide_by' => 'css',
287 'hide_author' => '0',
288 'hide_date' => '0',
289 );
290
291 if ( null === $option ) {
292 return apply_filters( 'hide_metadata_options', $default_options );
293 } else {
294 return $default_options[ $option ];
295 }
296 }
297
298 function hide_metadata_get_options() {
299 $defaults = hide_metadata_default_options();
300 $options = get_option( 'hide_metadata_options', $defaults );
301
302 return wp_parse_args( $options, $defaults );
303 }
304