6.8 KiB
6.8 KiB
Architecture
Analysis Date: 2026-05-07
Pattern Overview
Overall: WordPress monolith with theme/plugin architecture and Elementor as the page-building layer.
Key Characteristics:
- Full WordPress core is present in the repository:
wp-admin/,wp-includes/, and rootwp-*.phpfiles. - Site behavior is split between WordPress configuration, theme files, normal plugins, and a must-use plugin.
- Landing page content/layout is likely stored mostly in the WordPress database through Elementor.
- Custom lead-generation/consent behavior is concentrated in Hello Elementor assets and the Cookie Notice Pro MU plugin.
Layers
WordPress Core:
- Purpose: bootstrap, routing, template loading, admin, database API, plugin/theme lifecycle.
- Contains:
wp-admin/,wp-includes/,wp-settings.php,wp-load.php,wp-blog-header.php. - Depends on: PHP runtime and MySQL/MariaDB.
- Used by: every frontend/admin request.
Configuration:
- Purpose: database constants, salts, table prefix, debug flags.
- Contains:
wp-config.php. - Depends on: hosting environment.
- Used by:
wp-load.phpand WordPress bootstrap.
Theme Layer:
- Purpose: frontend shell, template files, theme support, local styles/scripts.
- Contains:
wp-content/themes/hello-elementor/. - Depends on: WordPress core and Elementor.
- Used by: public page rendering.
Plugin Layer:
- Purpose: page builder, forms, anti-spam, icon/SVG support, backups, content utilities.
- Contains:
wp-content/plugins/elementor/,wp-content/plugins/elementor-pro/,wp-content/plugins/akismet/,wp-content/plugins/lordicon/,wp-content/plugins/svg-support/,wp-content/plugins/duplicator-pro-v4.5.16.2/,wp-content/plugins/copy-delete-posts/. - Depends on: WordPress plugin lifecycle.
- Used by: frontend, admin, forms, backup workflows.
Must-Use Plugin Layer:
- Purpose: always-loaded site-specific consent/GTM behavior.
- Contains:
wp-content/mu-plugins/cookie-notice-pro-loader.php,wp-content/mu-plugins/cookie-notice-pro/cookie-notice-pro.php, and assets underwp-content/mu-plugins/cookie-notice-pro/assets/. - Depends on: WordPress hooks and frontend assets.
- Used by: every frontend request.
Data Flow
Frontend Request:
- Request enters
index.php. index.phploadswp-blog-header.php.wp-blog-header.phploads WordPress viawp-load.php.wp-load.phpresolveswp-config.php.wp-config.phpdefines DB settings and loadswp-settings.php.wp-settings.phpboots core, loads MU plugins fromwp-content/mu-plugins/, normal plugins fromwp-content/plugins/, then the active theme fromwp-content/themes/.- WordPress resolves the query/template through core files such as
wp-includes/template-loader.php. - Hello Elementor templates render the shell while Elementor/Elementor Pro render page builder content stored in DB.
State Management:
- Persistent state lives in the WordPress database.
- Elementor page layout, form definitions, options, menus, and active plugin/theme state are database-resident and not fully visible in files.
- Filesystem state includes themes, plugins, MU plugin code, translations, and backup artifacts.
Key Abstractions
WordPress Hooks:
- Purpose: attach behavior to WordPress lifecycle events.
- Examples: enqueue hooks and setup hooks in
wp-content/themes/hello-elementor/functions.php; consent/GTM hooks inwp-content/mu-plugins/cookie-notice-pro/cookie-notice-pro.php. - Pattern:
add_action/add_filter.
Theme Bootstrap:
- Purpose: declare theme support, menus, Elementor locations, and frontend assets.
- Examples:
wp-content/themes/hello-elementor/functions.php,wp-content/themes/hello-elementor/theme.php. - Pattern: procedural WordPress functions plus Hello Elementor namespaced modules.
Elementor Modules:
- Purpose: page builder, forms, theme builder, popups, widgets, Pro features.
- Examples:
wp-content/plugins/elementor/modules/,wp-content/plugins/elementor-pro/modules/forms/. - Pattern: plugin module architecture controlled by Elementor.
MU Plugin:
- Purpose: site-specific behavior loaded automatically before normal plugins.
- Examples:
wp-content/mu-plugins/cookie-notice-pro-loader.php,wp-content/mu-plugins/cookie-notice-pro/cookie-notice-pro.php. - Pattern: loader file includes plugin implementation.
Entry Points
Frontend:
- Location:
index.php. - Triggers: public HTTP requests.
- Responsibilities: load WordPress and render the resolved page.
WordPress Bootstrap:
- Location:
wp-blog-header.php,wp-load.php,wp-config.php,wp-settings.php. - Triggers: frontend/admin/core request lifecycle.
- Responsibilities: configure and initialize WordPress.
Admin:
- Location:
wp-admin/index.php,wp-admin/admin.php,wp-admin/admin-ajax.php,wp-admin/admin-post.php. - Triggers: WordPress admin and AJAX/action requests.
- Responsibilities: admin UI, plugin/theme settings, AJAX endpoints.
Theme:
- Location:
wp-content/themes/hello-elementor/functions.php,wp-content/themes/hello-elementor/index.php,wp-content/themes/hello-elementor/header.php,wp-content/themes/hello-elementor/footer.php,wp-content/themes/hello-elementor/theme.php. - Triggers: theme loading and template rendering.
- Responsibilities: theme support, templates, assets.
Plugins:
- Location:
wp-content/plugins/elementor/elementor.php,wp-content/plugins/elementor-pro/elementor-pro.php,wp-content/plugins/lordicon/lordicon.php,wp-content/plugins/svg-support/svg-support.php,wp-content/plugins/akismet/akismet.php,wp-content/plugins/copy-delete-posts/copy-delete-posts.php,wp-content/plugins/duplicator-pro-v4.5.16.2/duplicator-pro.php. - Triggers: WordPress plugin loading.
- Responsibilities: plugin-specific features.
MU Plugin:
- Location:
wp-content/mu-plugins/cookie-notice-pro-loader.php. - Triggers: must-use plugin bootstrap.
- Responsibilities: load cookie notice/GTM logic.
Error Handling
Strategy: WordPress/PHP runtime handles most errors; custom code should fail quietly on the frontend and avoid breaking public lead capture.
Patterns:
WP_DEBUGis false inwp-config.php.- Custom JS currently uses direct
JSON.parse()inwp-content/mu-plugins/cookie-notice-pro/assets/cookienoticepro.script.js; malformed cookie handling needs hardening.
Cross-Cutting Concerns
Logging:
- No dedicated application logger detected.
- Browser console logging exists in
wp-content/mu-plugins/cookie-notice-pro/assets/cookienoticepro.script.js.
Validation:
- WordPress and Elementor handle most admin/form validation.
- Cookie notice JS should validate cookie JSON more defensively.
Authentication:
- WordPress native authentication via
wp-login.phpand core user/session APIs.
Architecture analysis: 2026-05-07 Update when major patterns change