Zezo-Ai-Envato Elements

📊 2 مشاهدة
Envato Elements2.0.13Template Kits + Elementor + Photos + Subscription/API + ZIP Import
Envato Market2.0.11إدارة مشتريات Envato + Themes/Plugins + التحديث والتثبيت عبر WordPress

تم فحص 254 ملفًا فعليًا داخل الأرشيفين، مع تصنيف PHP/JS/JSX/SCSS/CSS/assets، واستخراج الـClasses والـFunctions والـHooks والـREST/AJAX ومسارات API الرئيسية.

1. Envato Elements

المعمارية الأساسية هي:

React UI
   ↓
REST / Admin AJAX
   ↓
API Controllers
   ↓
Extensions API / Content API
   ↓
Download ZIP
   ↓
ZIP Validation
   ↓
Template Kits CPT
   ↓
Elementor Builder
   ↓
Templates / Media / Global Styles

وأهم الطبقات:

  • inc/api/ — واجهة العمليات الخارجية.
  • inc/backend/ — منطق WordPress الداخلي.
  • inc/utils/ — APIs والحدود والأدوات المشتركة.
  • vendor/template-kit-import/ — محرك استيراد Template Kits.
  • src/js/react/components/ — واجهة React الأصلية.
  • assets/main.js — نسخة React المجمعة للإنتاج.

ومن أهم الملفات التي تم تحليلها:

class-api.php، class-template-kit-install.php، class-template-kit-import.php، class-template-kit-search.php، class-requirements.php، class-settings.php، class-subscription-api.php، class-content-api.php، class-extensions-api.php، class-template-kits.php، وطبقة Builder_Elementor.

2. Envato Market

المسار مختلف:

WordPress Admin
   ↓
Envato Market Admin
   ↓
OAuth / Token
   ↓
Envato Market API
   ↓
Purchased Themes / Plugins
   ↓
WordPress Update Transients
   ↓
WordPress Upgrader
   ↓
Install / Update

وأهم الطبقات:

  • class-envato-market.php — القلب المركزي.
  • class-envato-market-api.php — الاتصال بـEnvato Market API.
  • class-envato-market-items.php — إدارة المشتريات والتحديثات.
  • class-envato-market-admin.php — لوحة الإدارة.
  • class-envato-market-theme-upgrader.php — التحديث.
  • class-envato-market-github.php — تحديث إضافة Envato Market نفسها.

3. ملاحظة مهمة جدًا لإعادة البناء

هذه ليست مجرد ملفات يمكن نسخها إلى مشروع جديد.

هناك Domain Logic مهم جدًا يجب الحفاظ عليه، خصوصًا:

  • التحقق من الاشتراك والتوكن.
  • صلاحيات WordPress.
  • REST permissions.
  • AJAX + nonces.
  • تنزيل Template Kits.
  • التحقق من ZIP.
  • قراءة manifest.json.
  • إنشاء Template Kit CPT.
  • حفظ الـmetadata.
  • استيراد Elementor JSON.
  • إدارة الصور.
  • تسجيل عمليات التنزيل.
  • WordPress Theme/Plugin Updater.
  • Deferred Downloads.
  • Envato API normalization.

كما وجدت نقاطًا يجب تحسينها إذا كان الهدف بناء نسخة حديثة، مثل ZIP security، SSRF protection، manifest validation، token security، compatibility، وفصل الخدمات عن WordPress singleton architecture.

التقرير الكامل

أنشأت لك تقريرًا منظمًا يحتوي على جرد الملفات، المجلدات، Classes/Functions، طبقات React، تدفقات التشغيل، المعمارية، نقاط الأمن والموثوقية، وعلاقة النظامين:

تحميل تقرير التحليل المعماري العميق

والخطوة التالية الأفضل هي أن ننتقل من التحليل العام إلى خريطة Dependency Map فعلية: ملف → Class → Function → Hook → REST Endpoint → React Component → API → قاعدة البيانات/Metadata، ثم نبني منها مخطط Core Plugin + Modules + Services + CPTs + Tables لإعادة كتابة النظام بطريقة حديثة. envato_deep_architecture_audit.mdمستندفتح الملف

اكمل

نعم، أكملت الطبقة التالية من التحليل، والنتيجة أصبحت أوضح بكثير.

1. الخريطة الحقيقية للنظام

Envato Elements

React / Admin UI
        ↓
REST API
        ↓
AJAX Compatibility Bridge
        ↓
API Controllers
        ↓
┌───────────────────────────────┐
│ Subscription / Search / Kits │
│ Photos / Requirements        │
│ Settings / Project           │
└───────────────────────────────┘
        ↓
Envato Extensions API
        +
Content API
        ↓
Download Service
        ↓
ZIP Pipeline
        ↓
manifest.json
        ↓
envato_tk_import CPT
        ↓
Elementor / Gutenberg Adapter
        ↓
Templates + Images + Styles

وهنا اكتشفت نقطة معمارية مهمة جدًا:
class-rest.php لا يقدم REST فقط، بل يحتوي أيضًا على جسر AJAX يرجع إلى الـREST routes عندما تكون استضافة WordPress غير مناسبة للتعامل مع REST مباشرة.

أي أن التصميم القديم يحاول حل مشكلة توافق الاستضافات بهذه الطريقة:

React
 ├── REST
 │
 └── wp_ajax_envato_elements
          ↓
       REST Server
          ↓
       Endpoint

وهذا جزء مهم جدًا إذا كنا سنعيد البناء.


2. جميع عمليات Template Kits

تم استخراج خريطة الـEndpoints الأساسية:

Endpointالوظيفة
fetchPremiumTemplateKitSearchResultsالبحث في Kits المدفوعة
fetchFreeTemplateKitSearchResultsالبحث في Kits المجانية
fetchFreeBlockSearchResultsالبحث في Blocks
installPremiumTemplateKitتثبيت Kit مدفوع
installFreeTemplateKitتثبيت Kit مجاني
uploadTemplateKitZipFileرفع ZIP محلي
deleteTemplateKitحذف Kit
fetchInstalledTemplateKitsعرض Kits المثبتة
fetchIndividualTemplatesعرض Templates داخل Kit
importSingleTemplateاستيراد Template
importFreeBlockاستيراد Block
getSingleTemplateImportDataالحصول على بيانات الاستيراد
importElementorTemplateImageاستيراد الصور
verifyExtensionsTokenالتحقق من الاشتراك/Token

3. المسار الأخطر والأهم: تثبيت Kit مدفوع

العملية فعليًا:

User
 ↓
React
 ↓
installPremiumTemplateKit
 ↓
Template_Kit_Install
 ↓
Extensions_API
 ↓
/extensions/item/{id}/download
 ↓
Envato License/Token
 ↓
Temporary Download URL
 ↓
wp_safe_remote_get()
 ↓
Temporary ZIP
 ↓
ZIP Importer
 ↓
manifest.json
 ↓
CPT
 ↓
Metadata
 ↓
Elementor

وهذا يعني أن الـToken لا يمنح الوصول إلى الملف مباشرة من React.

بل:

Browser
   ↓
WordPress
   ↓
Token
   ↓
Envato
   ↓
Temporary URL
   ↓
WordPress Server

وهذا تصميم مهم جدًا للحفاظ عليه في النظام الجديد.


4. نموذج البيانات الموجود فعليًا

هناك حاليًا اعتماد كبير على WordPress Options وPost Meta.

Options

مثل:

envato_elements_options
elements_token
subscription_status
downloaded_items
project_name

Template Kit CPT

الـCPT هو:

envato_tk_import

ويتم تخزين معلومات مهمة داخل:

envato_tk_manifest
envato_tk_folder_name
envato_tk_builder
envato_tk_source_zip_url

وهنا تظهر مشكلة مهمة عند بناء منصة أكبر:

Post Meta مناسب لبداية الإضافة، لكنه ليس أفضل مكان لإدارة منصة ضخمة تحتوي على آلاف Kits وملايين عمليات الاستيراد والتنزيل.

لذلك أقترح في النسخة الجديدة:

WordPress CPT
       +
Custom Tables
       +
Object/Cache Layer
       +
Queue

بدل الاعتماد على Post Meta وحده.


5. اكتشاف مهم جدًا داخل ZIP Import

المسار:

ZIP
 ↓
uploads/template-kits/
 ↓
random folder
 ↓
extract
 ↓
manifest.json
 ↓
CPT

لكن الكود القديم نفسه يحتوي على ملاحظة بأن:

manifest يحتاج إلى validation.

وهذه نقطة ينبغي ألا تنتقل كما هي إلى المشروع الجديد.

في النسخة الجديدة سيكون:

ZIP
 ↓
Quarantine
 ↓
ZIP Signature Check
 ↓
File Count Check
 ↓
Uncompressed Size Check
 ↓
Path Traversal Check
 ↓
Allowed Extensions
 ↓
manifest.json
 ↓
JSON Schema Validation
 ↓
Builder Validation
 ↓
Dependency Validation
 ↓
Persistence
 ↓
Import Job

وهذا سيجعل محرك الاستيراد أكثر أمانًا واستقرارًا.


6. Envato Market مختلف تمامًا

لا ينبغي دمجه داخل Template Kit Engine.

وظيفته:

Envato Token
      ↓
Envato Market API
      ↓
Purchased Items
      ↓
Themes / Plugins
      ↓
WordPress Update Transients
      ↓
WordPress Upgrader
      ↓
Install / Update

ومن أقوى الأفكار الموجودة في الكود القديم:

Deferred Download

بدل:

Generate permanent download URL
        ↓
send it around

يستخدم:

Update Request
       ↓
Deferred Download Marker
       ↓
maybe_deferred_download()
       ↓
API Authentication
       ↓
Download
       ↓
WordPress Upgrader

وهذه فكرة ينبغي الاحتفاظ بها في إعادة البناء.


7. التصميم الجديد الذي أوصي ببنائه

بدل أن يكون المشروع:

Envato Plugin
Envato Market Plugin
Elementor Code
WordPress Hooks
React

نجعله:

MIQYAS / Platform Core
│
├── Core
│   ├── Contracts
│   ├── Services
│   ├── Events
│   ├── Exceptions
│   ├── Security
│   ├── HTTP
│   ├── Cache
│   └── Logger
│
├── Providers
│   ├── Envato Elements
│   ├── Envato Market
│   └── Future Providers
│
├── Template Engine
│   ├── Kit Manager
│   ├── Manifest
│   ├── ZIP Inspector
│   ├── Import Pipeline
│   └── Dependency Resolver
│
├── Builders
│   ├── Elementor
│   ├── Gutenberg
│   └── Future Builders
│
├── Licensing
│   ├── Subscription
│   ├── Purchase
│   ├── Token
│   └── Entitlements
│
├── Media
│   ├── Images
│   ├── Attachments
│   └── Import
│
├── Jobs
│   ├── Queue
│   ├── Workers
│   ├── Retry
│   └── Scheduler
│
├── REST API
│
├── Admin UI
│   └── React
│
└── WordPress Adapter
    ├── CPT
    ├── Options
    ├── Users
    ├── Media
    └── Upgrader

8. والأهم: لا نعيد كتابة الملفات القديمة واحدًا لواحد

بدل:

class-template-kit-install.php

نحوّلها إلى:

InstallTemplateKitController
        ↓
InstallTemplateKitService
        ↓
LicenseService
        ↓
ProviderInterface
        ↓
EnvatoElementsProvider
        ↓
DownloadService
        ↓
ZipValidationService
        ↓
ManifestService
        ↓
KitRepository
        ↓
ImportJob
        ↓
BuilderInterface
        ↓
ElementorAdapter

وبذلك يصبح النظام قابلًا للتوسع.


9. الجداول التي أقترحها

بدل وضع كل شيء في post_meta:

wp_mqy_connections
wp_mqy_providers
wp_mqy_template_kits
wp_mqy_template_items
wp_mqy_downloads
wp_mqy_import_jobs
wp_mqy_import_logs
wp_mqy_entitlements
wp_mqy_usage_events
wp_mqy_webhooks

مثلًا:

wp_mqy_template_kits

id
provider_id
remote_id
title
slug
builder
version
manifest_json
source_url
local_path
status
created_at
updated_at

wp_mqy_import_jobs

id
kit_id
item_id
user_id
job_type
status
progress
payload
result
error
attempts
started_at
finished_at
created_at

وهذا يفتح الباب مباشرة أمام:

Queue
Background Jobs
Cron
Retry
Human Approval
Logs
Webhooks
AI Agents
Workflow Engine

وهو قريب جدًا من الاتجاه الذي كنا نبنيه في مشروع منصة الـAI/WordPress لديك.


10. الملف الجديد

أعددت لك خريطة الاعتماديات التفصيلية كملف مستقل:

تحميل Envato Deep Dependency Map

المرحلة التالية التي أقترح أن نبدأ بها

ننتقل الآن إلى المستوى الأعمق جدًا:

File → Class → Method → Hook → Endpoint → Database → External API → React Component

ثم أبني لك منه مخطط قاعدة البيانات الكامل + Custom Post Types + Taxonomies + REST API + Services + Interfaces + Jobs + Queues + WooCommerce integration + Elementor integration، بحيث يصبح لدينا Blueprint فعلي لإعادة كتابة النظام بدل مجرد تحليل الإضافة القديمة. envato_deep_dependency_map.mdمستندفتح الملف

ممتاز. وصلنا الآن إلى مستوى أعمق من مجرد “شرح الملفات”.

أنشأت Master Re-Architecture Blueprint جديدًا، وفيه تحويل للتحليل إلى تصميم هندسي فعلي:

تحميل Master Re-Architecture Blueprint

ما أضفته الآن

1. نموذج Domain كامل

فصلت النظام إلى كيانات مستقلة:

ProviderConnection
Entitlement
CatalogItem
TemplateKit
TemplateItem
ImportJob
UsageEvent
Artifact
Requirement

وهذا مهم جدًا لأن:

Token ≠ Subscription ≠ Purchase ≠ Download Permission

وهي أشياء كانت متداخلة جزئيًا في النظام القديم.


2. دورة حياة Template Kit

أصبحت العملية المقترحة:

DISCOVERED
    ↓
LICENSE_CHECKED
    ↓
DOWNLOAD_REQUESTED
    ↓
DOWNLOADING
    ↓
DOWNLOADED
    ↓
QUARANTINED
    ↓
VALIDATING
    ↓
VALIDATED
    ↓
REGISTERED
    ↓
READY
    ↓
IMPORT_QUEUED
    ↓
IMPORTING
    ↓
IMPORTED

مع حالات:

FAILED
RETRYING
CANCELLED
DELETED

وهذا يفتح الطريق لتشغيل الاستيراد في الخلفية بدل تجميد طلب HTTP.


3. محرك ZIP جديد

بدل:

Upload ZIP
 ↓
Extract

سيصبح:

Upload
 ↓
Quarantine
 ↓
Archive Inspection
 ↓
Path Traversal Check
 ↓
File Count Check
 ↓
Size Check
 ↓
Allowed Extensions
 ↓
Manifest Validation
 ↓
Builder Validation
 ↓
Dependency Validation
 ↓
Register
 ↓
Import

وهذا سيكون أحد أهم أجزاء الـCore Plugin.


4. Dependency / Requirements Engine

الـKit يمكن أن يقول:

Requires:
- Elementor >= X
- Plugin A >= Y
- Plugin B

ثم النظام يفحص:

هل موجود؟
هل الإصدار مناسب؟
هل مفعّل؟
هل يحتاج تثبيت؟
هل يحتاج موافقة المستخدم؟

ثم:

READY

أو:

BLOCKED

5. Provider Architecture

بدل ربط النظام بالكامل بـEnvato:

Core
  ↓
Provider Interface
  ↓
├── Envato Elements
├── Envato Market
├── Future Provider A
└── Future Provider B

مثلًا:

interface ContentProviderInterface
{
    public function search(array $criteria);
    public function getItem(string $remoteId);
    public function requestDownload(string $remoteId);
    public function verifyEntitlement(string $remoteId);
}

وهذا يعني أننا نستطيع مستقبلًا إضافة مزود جديد دون إعادة كتابة Template Engine.


6. Job Engine

العمليات الطويلة ستصبح Jobs:

VerifyEntitlementJob
DownloadArtifactJob
InspectZipJob
ValidateManifestJob
RegisterKitJob
InstallRequirementJob
ImportTemplateJob
ImportMediaJob
RewriteUrlsJob
VerifyImportJob
CleanupArtifactJob

وكل Job يجب أن يكون:

  • قابلًا لإعادة المحاولة
  • Idempotent
  • قابلًا للتتبع
  • قابلًا للاستئناف
  • قابلًا للإلغاء حيث يكون ذلك آمنًا

7. Event System

أضفت أيضًا نموذج الأحداث:

ProviderConnected
EntitlementVerified
CatalogItemDiscovered
DownloadStarted
DownloadCompleted
ArtifactValidated
TemplateKitRegistered
ImportStarted
TemplateImported
MediaImported
ImportCompleted
ImportFailed
RequirementMissing
RequirementInstalled
KitDeleted

وهذه نقطة استراتيجية جدًا؛ لأنها تسمح لاحقًا بربط النظام مع:

AI Agents
Workflow Engine
Webhooks
Analytics
Notifications
Billing
Usage Metering
Automation

8. فصل WordPress عن الـCore

هذه من أهم التغييرات.

بدل أن يحتوي Domain على:

update_post_meta()
add_action()
get_option()
wp_remote_get()

سيصبح:

Domain
   ↓
Interface
   ↓
WordPress Adapter

مثل:

TemplateKitRepositoryInterface
          ↓
WpTemplateKitRepository

وبذلك لا يصبح النظام أسير WordPress في كل طبقاته.


9. النتيجة النهائية التي نقترب منها

                    React Admin
                        │
                     REST API
                        │
              Application Services
                        │
       ┌────────────────┼────────────────┐
       │                │                │
 Template Domain   Licensing Domain   Job Engine
       │                │                │
       └────────────────┼────────────────┘
                        │
                Provider Contracts
                        │
          ┌─────────────┴─────────────┐
          │                           │
   Envato Elements              Envato Market
          │                           │
          └─────────────┬─────────────┘
                        │
                  Infrastructure
                        │
        ┌───────────────┼───────────────┐
        │               │               │
    WordPress        Database          HTTP
        │               │               │
    Elementor       Custom Tables      APIs
    Media Library
    WP Upgrader

وهنا بدأنا فعليًا في تحويل الإضافتين القديمتين إلى منصة قابلة للتوسع، وليس مجرد نسخة منهما.

والمرحلة التالية الأكثر أهمية ستكون تصميم قاعدة البيانات الفعلية بالكامل: كل جدول، كل عمود، نوع البيانات، Primary Keys، Foreign Keys، Indexes، حالات الـJobs، جداول الـLicenses/Entitlements، Template Kits/Items، Artifacts، Usage Events، Webhooks، ثم ربطها بـCPT + Taxonomies + WooCommerce Products + Elementor. envato_master_rearchitecture_blueprint.mdمستندفتح الملف

Scroll to Top

🤖 موصى به لك بناءً على اهتماماتك