Files
krolewskie-miody.pl/wp-content/plugins/all-in-one-seo-pack-pro/app/Pro/Admin/Term.php
2026-04-28 15:13:50 +02:00

78 lines
1.9 KiB
PHP

<?php
namespace AIOSEO\Plugin\Pro\Admin;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Pro\Models;
/**
* Abstract class that Pro and Lite both extend.
*
* @since 4.0.0
*/
class Term {
/**
* Initialize the admin.
*
* @since 4.0.0
*
* @return void
*/
public function __construct() {
// Save New Term data
add_action( 'created_term', [ $this, 'saveNewTerm' ], 1000 );
// Update term metabox
add_action( 'edit_term', [ $this, 'saveTermSettingsMetabox' ] );
}
/**
* Save New Term data into custom table.
*
* @since 4.0.0
*
* @param int $termId Term ID.
* @return void
*/
public function saveNewTerm( $termId ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$term = Models\Term::getTerm( $termId );
$term->term_id = $termId;
$term->priority = null;
$term->frequency = 'default';
$term->save();
}
/**
* Handles metabox saving.
*
* @since 4.0.3
*
* @param int $termId Term ID.
* @return void
*/
public function saveTermSettingsMetabox( $termId ) {
// Security check
if ( ! isset( $_POST['TermSettingsNonce'] ) || ! wp_verify_nonce( wp_unslash( $_POST['TermSettingsNonce'] ), 'aioseoTermSettingsNonce' ) ) {
return;
}
// If we don't have our term settings input, we can safely skip.
if ( ! isset( $_POST['aioseo-term-settings'] ) ) {
return;
}
$currentTerm = json_decode( stripslashes( $_POST['aioseo-term-settings'] ), true ); // phpcs:ignore HM.Security.ValidatedSanitizedInput
// If there is no data, there likely was an error, e.g. if the hidden field wasn't populated on load and the user saved the post without making changes in the metabox.
// In that case we should return to prevent a complete reset of the data.
if ( empty( $currentTerm ) ) {
return;
}
Models\Term::saveTerm( $termId, $currentTerm );
}
}