plugin_name = 'hide-metadata';
$this->version = HIDE_METADATA_VERSION;
$this->options = hide_metadata_get_options();
add_filter('body_class', array($this, 'hide_metadata_body_class'));
add_action('admin_init', array($this, 'register_settings'));
add_action('admin_menu', array($this, 'add_plugin_settings_menu'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_styles'));
add_action('wp_enqueue_scripts', array($this, 'plugin_styles'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
add_filter('plugin_row_meta', array($this, 'add_plugin_meta_links'), 10, 2);
add_filter('plugin_action_links', array($this, 'action_links'), 10, 2);
if ('php' === $this->options['hide_by']) {
add_action('loop_start', array($this, 'remove_php'));
add_action('init', array($this, 'remove_php'));
}
}
/**
* Register the stylesheets for the admin area.
*
* @since 1.0.0
*/
function enqueue_styles()
{
if (isset($_GET['page']) && 'hide-metadata' === $_GET['page']) {
wp_enqueue_style($this->plugin_name . '-display-dashboard', plugin_dir_url(__FILE__) . 'css/admin-dashboard.css', array(), $this->version, 'all');
}
}
function plugin_styles()
{
wp_enqueue_style($this->plugin_name . '-style', plugin_dir_url(__FILE__) . 'css/style.css', array(), $this->version, 'all');
}
/**
* Register the scripts for the admin area.
*
* @since 1.0.0
*/
function enqueue_scripts()
{
if (isset($_GET['page']) && 'hide-metadata' === $_GET['page']) {
wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/hide-metadata-admin.js', array('jquery', 'matchHeight', 'jquery-ui-tooltip'), $this->version, false);
wp_enqueue_script('matchHeight', plugin_dir_url(__FILE__) . 'js/jquery-matchHeight.min.js', array('jquery'), $this->version, false);
}
}
/**
* Hide/Remove MetaData: action_links
* Hide/Remove MetaData Settings Link function callback
*
* @param arrray $links Link url.
*
* @param arrray $file File name.
*/
function action_links($links, $file)
{
if ($file === $this->plugin_name . '/' . $this->plugin_name . '.php') {
$settings_link = '' . esc_html__('Settings', 'hide-metadata') . '';
array_unshift($links, $settings_link);
}
return $links;
}
/**
* Add settings menu
*/
function add_plugin_settings_menu()
{
// Add menu under tools
add_submenu_page(
'tools.php',
esc_html__('Hide/Remove Metadata', 'hide-metadata'),
esc_html__('Hide/Remove Metadata', 'hide-metadata'),
'manage_options',
'hide-metadata',
array($this, 'settings_page')
);
}
/**
* Hide/Remove MetaData: settings_page
* Hide/Remove MetaData Setting function
*/
function settings_page()
{
if (! current_user_can('manage_options')) {
wp_die(esc_html__('You do not have sufficient permissions to access this page.', 'hide-metadata'));
}
require plugin_dir_path(__FILE__) . 'partials/admin-display.php';
}
function register_settings()
{
register_setting(
'hide-metadata-group',
'hide_metadata_options',
array($this, 'sanitize_callback')
);
}
public function sanitize_callback($input)
{
if (isset($input['reset']) && $input['reset']) {
// If reset, restore defaults
return hide_metadata_default_options();
}
$message = null;
$type = null;
// Verify the nonce before proceeding.
if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
|| (! isset($_POST['hide_metadata_nonce'])
|| ! wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['hide_metadata_nonce'])), HIDE_METADATA_BASENAME))
|| (! check_admin_referer(HIDE_METADATA_BASENAME, 'hide_metadata_nonce'))
) {
return esc_html__('Invalid Nonce', 'hide-metadata');
} else {
if (null !== $input) {
$input['hide_by'] = sanitize_key($input['hide_by']);
$input['hide_author'] = (isset($input['hide_author']) && '1' === $input['hide_author']) ? '1' : '0';
$input['hide_date'] = (isset($input['hide_date']) && '1' === $input['hide_date']) ? '1' : '0';
}
return $input;
}
}
// Removal using css
public function hide_metadata_body_class($classes)
{
$options = hide_metadata_get_options();
if ('1' === $options['hide_author'] && 'css' === $options['hide_by']) {
$classes[] = 'hide-meta-author';
}
if ('1' === $options['hide_date'] && 'css' === $options['hide_by']) {
$classes[] = 'hide-meta-date';
}
if ('1' === $options['hide_date'] && 'php' === $options['hide_by']) {
$classes[] = 'hide-meta-date-php';
}
if ('1' === $options['hide_author'] && 'php' === $options['hide_by']) {
$classes[] = 'hide-meta-author-php';
}
return $classes;
}
function remove_php()
{
$options = hide_metadata_get_options();
if ('1' === $options['hide_author']) {
add_filter('the_author', '__return_false');
add_filter('get_the_author', '__return_false');
add_filter('author_link', '__return_false');
}
if ('1' === $options['hide_date']) {
add_filter('the_date', '__return_false');
add_filter('the_time', '__return_false');
add_filter('the_modified_date', '__return_false');
add_filter('get_the_date', '__return_false');
add_filter('get_the_title', '__return_false');
add_filter('get_the_time', '__return_false');
add_filter('get_the_modified_date', '__return_false');
}
}
function add_plugin_meta_links($meta_fields, $file)
{
if (plugin_basename(__FILE__) === $file) {
$meta_fields[] = "Support Forum";
$meta_fields[] = "
"
. ""
. ""
. ""
. ""
. ""
. '';
$stars_color = '#ffb900';
echo '';
}
return $meta_fields;
}
}
new Hide_Metadata();
function hide_metadata_default_options($option = null)
{
$default_options = array(
'hide_by' => 'css',
'hide_author' => '0',
'hide_date' => '0',
);
if (null === $option) {
return apply_filters('hide_metadata_options', $default_options);
} else {
return $default_options[$option];
}
}
function hide_metadata_get_options()
{
$defaults = hide_metadata_default_options();
$options = get_option('hide_metadata_options', $defaults);
return wp_parse_args($options, $defaults);
}