<?php /** * @package PublishPress Authors * @author PublishPress * * Copyright (C) 2018 PublishPress * * This file is part of PublishPress Authors * * PublishPress Authors is free software: you can redistribute it * and/or modify it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * PublishPress is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PublishPress. If not, see <http://www.gnu.org/licenses/>. */ use MultipleAuthors\Classes\Content_Model; use MultipleAuthors\Classes\Legacy\Module; use MultipleAuthors\Classes\Utils; use MultipleAuthors\Factory; if (!class_exists('MA_Debug')) { /** * class MA_Debug */ class MA_Debug extends Module { public $module_name = 'debug'; /** * Instance for the module * * @var stdClass */ public $module; public $module_url; /** * Construct the MA_Debug class */ public function __construct() { $this->module_url = $this->get_module_url(__FILE__); // Register the module with PublishPress $args = [ 'title' => __('Debug', 'publishpress-authors'), 'short_description' => __('Add debug information for the plugin', 'publishpress-authors'), 'module_url' => $this->module_url, 'icon_class' => 'dashicons dashicons-feedback', 'slug' => 'debug', 'default_options' => [ 'enabled' => 'on', ], 'options_page' => false, 'autoload' => true, ]; // Apply a filter to the default options $args['default_options'] = apply_filters( 'pp_debug_default_options', $args['default_options'] ); $legacyPlugin = Factory::getLegacyPlugin(); $this->module = $legacyPlugin->register_module($this->module_name, $args); } /** * Initialize the module. Conditionally loads if the module is enabled */ public function init() { if (is_admin()) { add_action( 'add_meta_boxes', [$this, 'addMetaBoxForDebugInformation'], 105 ); } } public function addMetaBoxForDebugInformation() { $supportedPostTypes = Content_Model::get_author_supported_post_types(); foreach ($supportedPostTypes as $postType) { add_meta_box( 'authors_debug', __('Authors Debug', 'publishpress-authors'), [$this, 'renderDebugMetaBox'], $postType, 'normal', 'default' ); } } public function renderDebugMetaBox() { global $wpdb; $dataList = []; // The post ID. $post = get_post(); $dataList['$post->ID'] = $post->ID; // Query the post_author. $postAuthor = $wpdb->get_var( $wpdb->prepare("SELECT post_author FROM {$wpdb->posts} WHERE ID = %d", $post->ID) ); $dataList['$post->post_author'] = $postAuthor; // get_post_authors function. $resultGetMultipleAuthors = get_post_authors(); $dataList['get_post_authors()'] = $resultGetMultipleAuthors; // Get the post terms for "author". $authorTerms = wp_get_post_terms($post->ID, 'author'); $dataList['Post terms [author]'] = $authorTerms; echo '<pre><ul>'; foreach ($dataList as $key => $data) { echo '<li style="border-bottom: 1px solid silver; padding: 5px;">' . esc_html($key) . ' = ' . esc_html(print_r($data, true)) . '</li>'; } echo '</ul></pre>'; } } }