Files
2026-04-28 15:13:50 +02:00

120 lines
3.0 KiB
PHP

<?php
namespace AIOSEO\Plugin\Pro\Admin;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Lite\Admin as LiteAdmin;
/**
* Abstract class that Pro and Lite both extend.
*
* @since 4.0.0
*/
class PostSettings extends LiteAdmin\PostSettings {
/**
* Class constructor.
*
* @since 4.7.8
*/
public function __construct() {
parent::__construct();
// Add metabox to terms.
add_action( 'current_screen', [ $this, 'init' ] );
}
/**
* Add metabox to terms.
*
* @since 4.0.0
*
* @return void
*/
public function init() {
if ( ! aioseo()->license->isActive() ) {
parent::init();
return;
}
$generalSettingsCapability = aioseo()->access->hasCapability( 'aioseo_page_general_settings' );
$socialSettingsCapability = aioseo()->access->hasCapability( 'aioseo_page_social_settings' );
$advancedSettingsCapability = aioseo()->access->hasCapability( 'aioseo_page_advanced_settings' );
if (
empty( $generalSettingsCapability ) &&
empty( $socialSettingsCapability ) &&
empty( $advancedSettingsCapability )
) {
return;
}
$currentScreen = aioseo()->helpers->getCurrentScreen();
if (
empty( $currentScreen ) ||
! in_array( $currentScreen->base, [ 'edit-tags', 'term' ], true )
) {
return;
}
$termId = intval( filter_input( INPUT_GET, 'tag_ID', FILTER_SANITIZE_NUMBER_INT ) );
$term = aioseo()->helpers->getTerm( $termId );
$publicTaxonomies = aioseo()->helpers->getPublicTaxonomies( true );
if ( empty( $term->taxonomy ) || ! in_array( $term->taxonomy, $publicTaxonomies, true ) ) {
return;
}
$dynamicOptions = aioseo()->dynamicOptions->noConflict();
if (
! $dynamicOptions->searchAppearance->taxonomies->has( $term->taxonomy ) ||
! $dynamicOptions->searchAppearance->taxonomies->{$term->taxonomy}->advanced->showMetaBox
) {
return;
}
add_action( "{$currentScreen->taxonomy}_edit_form", [ $this, 'addTermsMetabox' ] );
}
/**
* Adds a meta box to edit terms screens.
*
* @since 4.0.0
*
* @return void
*/
public function addTermsMetabox() {
if ( ! aioseo()->license->isActive() ) {
return;
}
wp_enqueue_media();
?>
<div id="poststuff">
<div id="advanced-sortables" class="meta-box-sortables">
<div id="aioseo-tabbed" class="postbox ">
<h2 class="hndle">
<span>
<?php
echo sprintf(
// Translators: 1 - The plugin short name ("AIOSEO").
esc_html__( '%1$s Settings', 'aioseo-pro' ),
AIOSEO_PLUGIN_SHORT_NAME //phpcs:ignore
)
?>
</span>
</h2>
<div id="aioseo-term-settings-field">
<input type="hidden" name="aioseo-term-settings" id="aioseo-term-settings" value="" />
<?php wp_nonce_field( 'aioseoTermSettingsNonce', 'TermSettingsNonce' ); ?>
</div>
<div id="aioseo-term-settings-metabox" class="inside">
<?php aioseo()->templates->getTemplate( 'parts/loader.php' ); ?>
</div>
</div>
</div>
</div>
<?php
}
}