| Server IP : 47.82.179.145 / Your IP : 216.73.216.89 Web Server : nginx/1.26.3 System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.3.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/scuipturepactory.com/wp-content/plugins.off/easy-digital-downloads/src/ |
Upload File : |
<?php
/**
* Base Core Object.
*
* @package EDD
* @copyright Copyright (c) 2018, Sandhills Development, LLC
* @license https://opensource.org/licenses/gpl-2.0.php GNU Public License
* @since 3.0
*/
namespace EDD;
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
/**
* Implements a base object to be extended by core objects.
*
* @since 3.0
* @abstract
*/
#[\AllowDynamicProperties]
abstract class Base_Object {
/**
* The UUID for the object.
*
* @since 3.0
* @access protected
* @var string
*/
protected $uuid;
/**
* Object constructor.
*
* @since 3.0
*
* @param mixed $args Object to populate members for.
*/
public function __construct( $args = null ) {
$this->set_vars( $args );
}
/**
* Magic isset'ter for immutability.
*
* @since 3.0
*
* @param string $key The key to check.
* @return mixed
*/
public function __isset( $key = '' ) {
// No more uppercase ID properties ever.
if ( 'ID' === $key ) {
$key = 'id';
}
// Class method to try and call.
$method = "get_{$key}";
// Return property if exists.
if ( method_exists( $this, $method ) ) {
return true;
// Return get method results if exists.
} elseif ( property_exists( $this, $key ) ) {
return true;
}
// Return false if not exists.
return false;
}
/**
* Magic getter for immutability.
*
* @since 3.0
*
* @param string $key The key to get.
*
* @return mixed
*/
public function __get( $key = '' ) {
// No more uppercase ID properties ever.
if ( 'ID' === $key ) {
$key = 'id';
}
// Class method to try and call.
$method = "get_{$key}";
// Return property if exists.
if ( method_exists( $this, $method ) ) {
return call_user_func( array( $this, $method ) );
// Return get method results if exists.
} elseif ( property_exists( $this, $key ) ) {
return $this->{$key};
}
// Return null if not exists.
return null;
}
/**
* Converts the given object to an array.
*
* @since 3.0
*
* @return array Array version of the given object.
*/
public function to_array() {
return get_object_vars( $this );
}
/**
* Set class variables from arguments.
*
* @since 3.0
*
* @param array $args The arguments to set.
*/
protected function set_vars( $args = array() ) {
// Bail if empty or not an array.
if ( empty( $args ) ) {
return;
}
// Cast to an array.
if ( ! is_array( $args ) ) {
$args = (array) $args;
}
// Set all properties.
foreach ( $args as $key => $value ) {
$this->{$key} = $value;
}
}
}