Files
SIGE-WEB-snapshot/wp-content/plugins/wp-security-audit-log/classes/MainWPAddon/class-mainwp-settings.php

180 lines
4.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* MainWP settings for addon.
*
* @package wsal
* @subpackage mainwp
* @copyright 2026 Melapress
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 or higher
* @link https://wordpress.org/plugins/wp-security-audit-log/
*
* @since 5.0.0
*/
namespace WSAL\MainWP;
use WSAL\Helpers\Validator;
use WSAL\Helpers\User_Helper;
use WSAL\Helpers\Settings_Helper;
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
/**
* MainWP settings Helper class
*
* @since 5.0.0
*/
if ( ! class_exists( '\WSAL\MainWP\MainWP_Settings' ) ) {
/**
* Put all you migration methods here
*
* @package WSAL\MainWP
*
* @since 5.0.0
*/
class MainWP_Settings {
public const MWPAL_OPT_PREFIX = 'mwpal-';
/**
* Get MainWP Child Sites.
*
* @return array
*/
public static function get_mwp_child_sites() {
return \apply_filters( 'mainwp_getsites', WSAL_BASE_FILE_NAME, MainWP_Addon::get_child_key(), null );
}
/**
* Get MainWP child site by site ID.
*
* @param int $site_id Site ID.
*
* @return array|null
*/
public static function get_mwp_child_site_by_id( $site_id ) {
// Get MainWP child sites.
$mwp_sites = self::get_mwp_child_sites();
// Search for the site data.
$key = array_search( $site_id, array_column( $mwp_sites, 'id' ), false );
if ( false !== $key && isset( $mwp_sites[ $key ] ) ) {
return $mwp_sites[ $key ];
}
return null;
}
/**
* Return Site ID.
*
* @return integer
*
* @since 5.0.0
*/
public static function get_view_site_id() {
$site_id = isset( $_REQUEST['mwpal-site-id'] ) ? sanitize_text_field( \wp_unslash( $_REQUEST['mwpal-site-id'] ) ) : -1; // Site ID.
if ( -1 === $site_id ) {
$site_id = isset( $_REQUEST['wsal-cbid'] ) ? sanitize_text_field( \wp_unslash( $_REQUEST['wsal-cbid'] ) ) : -1; // Site ID.
}
if ( 'dashboard' !== $site_id ) {
return (int) ( (int) $site_id );
}
return $site_id;
}
/**
* Get number of child site events.
*
* @return integer
*
* @since 5.0.0
*/
public static function get_child_site_events() {
return Settings_Helper::get_option_value( 'child_site_events', 300 );
}
/**
* Get Current User Roles.
*
* @param array $base_roles Base roles.
* @return array
*/
public function get_current_user_roles( $base_roles = null ) {
if ( null === $base_roles ) {
$base_roles = User_Helper::get_current_user()->roles;
}
if ( function_exists( 'is_super_admin' ) && is_super_admin() ) {
$base_roles[] = 'superadmin';
}
return $base_roles;
}
/**
* Get Server IP.
*
* @return string
*
* @since 5.0.0
*/
public static function get_server_ip() {
return self::retrieve_ip_address_for( 'SERVER_ADDR' );
}
/**
* Get Client IP.
*
* @return string
*/
public static function get_main_client_ip() {
return self::retrieve_ip_address_for( 'REMOTE_ADDR' );
}
/**
* Retrieves ip address from global server array based on string value.
*
* @param string $which - String value to retrieve from server array.
*
* @return null|string
*
* @since 5.0.0
*/
private static function retrieve_ip_address_for( string $which ) {
$result = null;
if ( isset( $_SERVER[ $which ] ) ) {
$result = Settings_Helper::normalize_ip( sanitize_text_field( wp_unslash( $_SERVER[ $which ] ) ) );
if ( ! Validator::validate_ip( $result ) ) {
$result = 'Error : Invalid IP Address';
}
}
return $result;
}
/**
* Search & Return MainWP site.
*
* @param string $value Column value.
* @param string $column Column name.
*
* @return mixed
*/
public static function get_mwp_site_by( $value, $column = 'id' ) {
// Get MainWP sites.
$mwp_sites = self::get_mwp_child_sites();
// Search by column name.
$key = array_search( $value, array_column( $mwp_sites, $column ), true );
if ( false !== $key ) {
return $mwp_sites[ $key ];
}
return false;
}
}
}