PluginProbe
Hide/Remove Metadata / 1.1
Hide/Remove Metadata v1.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.1, at hide-metadata.php

298 lines 10.3 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.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.1' );
32
33 class Hide_Metadata {
34 private $plugin_name;
35 private $version;
36 private $options;
37
38 function __construct() {
39 $this->plugin_name = 'hide-metadata';
40 $this->version = HIDE_METADATA_VERSION;
41 $this->options = hide_metadata_get_options();
42
43 add_action( 'admin_init', array( $this, 'register_settings' ) );
44 add_action( 'admin_menu', array( $this, 'add_plugin_settings_menu' ) );
45 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) );
46 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
47
48 add_filter( 'plugin_row_meta', array( $this, 'add_plugin_meta_links' ), 10, 2 );
49
50 add_filter( 'plugin_action_links', array( $this, 'action_links' ), 10, 2 );
51
52 if ( 'php' == $this->options['hide_by'] ) {
53 add_action( 'loop_start', array( $this, 'remove_php' ) );
54 }
55 add_action( 'wp_head', array( $this, 'css_filter_option' ) );
56 }
57
58 /**
59 * Register the stylesheets for the admin area.
60 *
61 * @since 1.0.0
62 */
63 function enqueue_styles() {
64 if ( isset( $_GET['page'] ) && 'hide-metadata' == $_GET['page'] ) {
65 wp_enqueue_style( $this->plugin_name . '-display-dashboard', plugin_dir_url( __FILE__ ) . 'css/admin-dashboard.css', array(), $this->version, 'all' );
66 }
67 }
68
69 /**
70 * Register the scripts for the admin area.
71 *
72 * @since 1.0.0
73 */
74 function enqueue_scripts() {
75 if ( isset( $_GET['page'] ) && 'hide-metadata' == $_GET['page'] ) {
76 wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/hide-metadata-admin.js', array( 'jquery', 'matchHeight', 'jquery-ui-tooltip' ), $this->version, false );
77
78 wp_enqueue_script( 'matchHeight', plugin_dir_url( __FILE__ ) . 'js/jquery-matchHeight.min.js', array( 'jquery' ), $this->version, false );
79
80 }
81 }
82
83 /**
84 * Hide/Remove MetaData: action_links
85 * Hide/Remove MetaData Settings Link function callback
86 *
87 * @param arrray $links Link url.
88 *
89 * @param arrray $file File name.
90 */
91 function action_links( $links, $file ) {
92 if ( $file === $this->plugin_name . '/' . $this->plugin_name . '.php' ) {
93 $settings_link = '<a href="' . esc_url( admin_url( 'admin.php?page=hide-metadata' ) ) . '">' . esc_html__( 'Settings', 'hide-metadata' ) . '</a>';
94
95 array_unshift( $links, $settings_link );
96 }
97 return $links;
98 }
99
100 /**
101 * Add settings menu
102 */
103 function add_plugin_settings_menu() {
104 // Add Main Menu
105 add_menu_page(
106 esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
107 esc_html__( 'Hide/Remove Metadata', 'hide-metadata' ),
108 'manage_options',
109 'hide-metadata',
110 array( $this, 'settings_page' ),
111 'dashicons-visibility',
112 '99.01564'
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 if ( isset( $input['reset'] ) && $input['reset'] ) {
138 //If reset, restore defaults
139 return hide_metadata_default_options();
140 }
141 $message = null;
142 $type = null;
143
144 // Verify the nonce before proceeding.
145 if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
146 || ( ! isset( $_POST['hide_metadata_nounce'] )
147 || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['hide_metadata_nounce'] ) ), basename( __FILE__ ) ) )
148 || ( ! check_admin_referer( basename( __FILE__ ), 'hide_metadata_nounce' ) ) ) {
149 if ( null !== $input ) {
150
151 $input['hide_by'] = sanitize_key( $input['hide_by'] );
152 $input['hide_author'] = ( isset( $input['hide_author'] ) && 'on' == $input['hide_author'] ) ? '1' : '0';
153 $input['hide_date'] = ( isset( $input['hide_date'] ) && 'on' == $input['hide_date'] ) ? '1' : '0';
154
155 return $input;
156 }
157 return 'Invalid Nonce';
158 }
159 }
160
161 function hide_by_css() {
162
163 $css = '';
164 $options = hide_metadata_get_options();
165
166 // Hide author CSS
167 if ( 1 == $options['hide_author'] && 'css' == $options['hide_by'] ) {
168 $css .= '.entry-meta .byline,
169 .entry-header .entry-meta > span.byline {
170 display: none;
171 }';
172 }
173
174 // Hide date CSS
175 if ( 1 == $options['hide_date'] && 'css' == $options['hide_by'] ) {
176 $css .= '.entry-meta .posted-on,
177 .entry-header .entry-meta > span.posted-on {
178 display: none;
179 }';
180 }
181
182 // Hide author
183 if ( 1 == $options['hide_author'] && 'php' == $options['hide_by'] ) {
184 $css .= '.entry-meta .byline:before,
185 .entry-header .entry-meta span.byline:before,
186 .entry-meta .byline:after,
187 .entry-header .entry-meta span.byline:after,
188 .single .byline, .group-blog .byline,
189 .entry-meta .byline,
190 .entry-header .entry-meta > span.byline {
191 content: "";
192 display: none;
193 margin: 0;
194 }';
195 }
196
197 // Hide date
198 if ( 1 == $options['hide_date'] && 'php' == $options['hide_by'] ) {
199 $css .= '.entry-meta .posted-on:before,
200 .entry-header .entry-meta > span.posted-on:before,
201 .entry-meta .posted-on:after,
202 .entry-header .entry-meta > span.posted-on:after,
203 .entry-meta .posted-on,
204 .entry-header .entry-meta > span.posted-on {
205 content: "";
206 display: none;
207 margin: 0;
208 }';
209 }
210
211 return $css;
212 }
213
214 //Removal using css
215
216 function inline_style() {
217 if ( ! empty( $this->hide_by_css() ) ) {
218 echo '<style>/* CSS added by Hide Metadata Plugin */' . $this->hide_by_css() . '</style>';
219 }
220 }
221
222 function remove_php() {
223 $options = hide_metadata_get_options();
224
225 if ( 1 == $options['hide_author'] ) {
226 add_filter( 'the_author', '__return_false' );
227 add_filter( 'get_the_author', '__return_false' );
228 add_filter( 'author_link', '__return_false' );
229 }
230
231 if ( 1 == $options['hide_date'] ) {
232 add_filter( 'the_date', '__return_false' );
233 add_filter( 'the_time', '__return_false' );
234 add_filter( 'the_modified_date', '__return_false' );
235 add_filter( 'get_the_date', '__return_false' );
236 add_filter( 'get_the_title', '__return_false' );
237 add_filter( 'get_the_time', '__return_false' );
238 add_filter( 'get_the_modified_date', '__return_false' );
239 }
240 }
241
242 function css_filter_option() {
243 $this->inline_style();
244 }
245
246 function add_plugin_meta_links( $meta_fields, $file ) {
247
248 if ( $file == plugin_basename( __FILE__ ) ) {
249
250 $meta_fields[] = "<a href='https://catchplugins.com/support-forum/forum/hide-metadata/' target='_blank'>Support Forum</a>";
251 $meta_fields[] = "<a href='https://wordpress.org/support/plugin/hide-metadata/reviews#new-post' target='_blank' title='Rate'>
252 <i class='ct-rate-stars'>"
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 . "<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>"
255 . "<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>"
256 . "<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>"
257 . "<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>"
258 . '</i></a>';
259
260 $stars_color = '#ffb900';
261
262 echo '<style>'
263 . '.ct-rate-stars{display:inline-block;color:' . $stars_color . ';position:relative;top:3px;}'
264 . '.ct-rate-stars svg{fill:' . $stars_color . ';}'
265 . '.ct-rate-stars svg:hover{fill:' . $stars_color . '}'
266 . '.ct-rate-stars svg:hover ~ svg{fill:none;}'
267 . '</style>';
268 }
269
270 return $meta_fields;
271 }
272
273 }
274
275 new Hide_Metadata();
276
277
278 function hide_metadata_default_options( $option = null ) {
279 $default_options = array(
280 'hide_by' => 'css',
281 'hide_author' => 0,
282 'hide_date' => 0,
283 );
284
285 if ( null == $option ) {
286 return apply_filters( 'hide_metadata_options', $default_options );
287 } else {
288 return $default_options[ $option ];
289 }
290 }
291
292 function hide_metadata_get_options() {
293 $defaults = hide_metadata_default_options();
294 $options = get_option( 'hide_metadata_options', $defaults );
295
296 return wp_parse_args( $options, $defaults );
297 }
298