| Server IP : 104.21.25.182 / Your IP : 216.73.217.140 Web Server : Apache System : Linux server.rehabsharif.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64 User : nobi37te ( 1003) PHP Version : 8.2.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/nobi37te/public_html/wp-content/plugins/analogwp-templates/inc/ |
Upload File : |
<?php
/**
* Base class.
*
* @package AnalogWP
*/
namespace Analog;
defined( 'ABSPATH' ) || exit;
/**
* Analog plugin.
*
* The main plugin handler class is responsible for initializing Analog. The
* class registers and all the components required to run the plugin.
*/
class Base {
/**
* Holds the plugin instance.
*
* @access protected
* @static
*
* @var Base
*/
private static $instances = array();
/**
* Disable class cloning and throw an error on object clone.
*
* The whole idea of the singleton design pattern is that there is a single
* object. Therefore, we don't want the object to be cloned.
*
* @access public
*/
public function __clone() {
// Cloning instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'ang' ), '1.0.0' );
}
/**
* Disable unserializing of the class.
*
* @access public
*/
public function __wakeup() {
// Unserializing instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'ang' ), '1.0.0' );
}
/**
* Sets up a single instance of the plugin.
*
* @access public
* @static
*
* @return static An instance of the class.
*/
public static function get_instance() {
$module = get_called_class();
if ( ! isset( self::$instances[ $module ] ) ) {
self::$instances[ $module ] = new $module();
}
return self::$instances[ $module ];
}
/**
* Checks current memory limit and sets a new one if required.
*
* Used during importing to ensure we don't run out of memory on large imports.
*
* @access public
*/
public function check_memory_limit() {
$memory_limit = ini_get( 'memory_limit' );
if ( $memory_limit !== - 1 ) { // @codingStandardsIgnoreLine
$last = $memory_limit[ strlen( $memory_limit ) - 1 ];
$val = rtrim( $memory_limit, $last );
switch ( strtolower( $last ) ) {
case 'g':
$val *= 1024;
// no break.
case 'm':
$val *= 1024;
// no break.
case 'k':
$val *= 1024;
}
if ( $val < ( 1024 * 1024 * 1024 ) ) {
@ini_set( 'memory_limit', '512M' ); // @codingStandardsIgnoreLine
}
}
}
/**
* Regenrate the CSS for an Elementor post.
*
* @param int $post_id Post ID to regenerate CSS for.
* @return void
*/
public function regenerate_elementor_css( $post_id ) {
if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) {
$post_css = new \Elementor\Core\Files\CSS\Post( $post_id );
$post_css->enqueue();
$post_css->update();
\Elementor\Plugin::$instance->frontend->enqueue_styles();
}
}
/**
* Ensure arguments exist.
*
* Checks whether the required arguments exist in the specified arguments.
*
* @since 1.2.1
* @access private
*
* @param array $required_args Required arguments to check whether they
* exist.
* @param array $specified_args The list of all the specified arguments to
* check against.
*
* @return \WP_Error|true True on success, 'WP_Error' otherwise.
*/
private function ensure_args( array $required_args, array $specified_args ) {
$not_specified_args = array_diff( $required_args, array_keys( array_filter( $specified_args ) ) );
if ( $not_specified_args ) {
return new \WP_Error( 'arguments_not_specified', sprintf( 'The required argument(s) "%s" not specified.', implode( ', ', $not_specified_args ) ) );
}
return true;
}
}