File "class-system-status.php"
Full Path: /home/diablzlo/glucosebalnce.com/wp-content/plugins/seo-by-rank-math-pro/includes/modules/status/class-system-status.php
File size: 3.94 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Status module.
*
* @since 1.0
* @package RankMathPro
* @author Rank Math <support@rankmath.com>
*/
namespace RankMathPro\Status;
use RankMath\Traits\Hooker;
use RankMath\Helper;
use RankMath\Helpers\Param;
use RankMath\Schema\DB;
use RankMath\Admin\Admin_Helper;
use RankMath\Google\Authentication;
use RankMath\Status\Error_Log;
use RankMath\Status\System_Status as System_Status_Free;
use RankMathPro\Admin\CSV_Import_Export\CSV_Import_Export;
defined( 'ABSPATH' ) || exit;
/**
* System_Status class.
*/
class System_Status {
use Hooker;
/**
* Register hooks.
*/
public function __construct() {
$this->filter( 'rank_math/status/rank_math_info', 'filter_status_info' );
$this->action( 'admin_enqueue_scripts', 'enqueue', 99 );
$this->filter( 'rank_math/status/import_export/json_data', 'add_csv_json_data' );
}
/**
* Filter Status Info
*
* @param array $rankmath Array of rankmath.
*/
public function filter_status_info( $rankmath ) {
$rankmath['fields']['version']['label'] = esc_html__( 'Free version', 'rank-math-pro' );
array_splice(
$rankmath['fields'],
1,
0,
[
[
'label' => esc_html__( 'PRO version', 'rank-math-pro' ),
'value' => get_option( 'rank_math_pro_version' ),
],
]
);
// Change pro_version key with keeping array order the same.
$keys = array_keys( $rankmath['fields'] );
$keys[1] = 'pro_version';
$rankmath['fields'] = array_combine( $keys, array_values( $rankmath['fields'] ) );
return $rankmath;
}
/**
* Enqueue script on Status & Tools page.
*
* @since 3.0.81
*/
public function enqueue() {
if ( Param::get( 'page' ) !== 'rank-math-status' ) {
return;
}
Helper::add_json( 'csvProgressNonce', wp_create_nonce( 'rank_math_csv_progress' ) );
wp_enqueue_script( 'rank-math-pro-status', RANK_MATH_PRO_URL . 'includes/modules/status/assets/js/status.js', [ 'rank-math-status' ], rank_math_pro()->version, true );
}
/**
* Localized data used in the CSV File Import/Export.
*
* @param array $data Localized data.
* @since 3.0.85
*/
public function add_csv_json_data( $data ) {
if ( ! function_exists( 'get_editable_roles' ) ) {
require_once ABSPATH . 'wp-admin/includes/user.php'; // @phpstan-ignore-line
}
$export_data = [];
$object_types = CSV_Import_Export::get_possible_object_types();
foreach ( $object_types as $key => $label ) {
$method = "get_{$key}_values";
$export_data[ $key ] = $this->$method();
}
$import_progress = [];
if ( get_option( 'rank_math_csv_import' ) ) {
ob_start();
CSV_Import_Export::import_progress_details();
$import_progress = [
'status' => 'processing',
'content' => ob_get_clean(),
];
}
$json = [
'exportData' => $export_data,
'exportCsvNonce' => wp_create_nonce( 'rank_math_pro_csv_export' ),
'csvProgressNonce' => wp_create_nonce( 'rank_math_csv_progress' ),
'importProgress' => $import_progress,
];
return array_merge( $data, $json );
}
/**
* Localized Posts data used in the CSV File Export.
*
* @since 3.0.85
*/
private function get_post_values() {
$post_types = Helper::get_allowed_post_types();
$data = [];
foreach ( $post_types as $post_type ) {
$data[ $post_type ] = esc_html( get_post_type_object( $post_type )->labels->name );
}
return $data;
}
/**
* Localized Taxonomies data used in the CSV File Export.
*
* @since 3.0.85
*/
private function get_term_values() {
$taxonomies = Helper::get_allowed_taxonomies();
$data = [];
foreach ( $taxonomies as $taxonomy ) {
$data[ $taxonomy ] = esc_html( get_taxonomy( $taxonomy )->labels->name );
}
return $data;
}
/**
* Localized User data used in the CSV File Export.
*
* @since 3.0.85
*/
private function get_user_values() {
$roles = get_editable_roles();
$data = [];
foreach ( $roles as $role_id => $role ) {
$data[ $role_id ] = esc_html( $role['name'] );
}
return $data;
}
}