PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / docs / tech-stack.md
advanced-ads / docs Last commit date
superpowers 1 day ago addons.md 1 week ago src-improvements.md 1 day ago tech-stack.md 1 day ago vulberability.md 1 week ago
tech-stack.md
122 lines
1 # Advanced Ads — Tech Stack
2
3 **Plugin:** Advanced Ads v2.0.20
4 **Requires:** WordPress ≥ 5.7, PHP ≥ 7.4
5 **License:** GPL-2.0+
6 **Knowledge graph:** Understand Anything (978 files, last analyzed 2026-06-15)
7
8 ---
9
10 ## Backend — PHP
11
12 | Concern | Detail |
13 | ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
14 | Language | PHP ≥ 7.4 |
15 | Autoloading | PSR-4 (`Advanced_Ads\``src/`) + classmap for legacy (`includes/`, `admin/`, `classes/`, `public/`, selected modules) |
16 | Dependency manager | Composer |
17 | Framework | `advanced-ads/framework` (internal, dev-main) |
18 | Mobile detection | `mobiledetect/mobiledetectlib` 3.74.3 |
19 | Background jobs | `woocommerce/action-scheduler` ^3.9 |
20
21 ### PHP Dev Dependencies
22
23 | Package | Version | Purpose |
24 | -------------------------------------- | ------- | ------------------ |
25 | `phpunit/phpunit` | ^9.6 | Unit testing |
26 | `wp-coding-standards/wpcs` | ^3.0.0 | Code style (PHPCS) |
27 | `phpcompatibility/phpcompatibility-wp` | ^2.1 | PHP compat checks |
28 | `symfony/css-selector` | ^5.4 | Test utilities |
29 | `yoast/phpunit-polyfills` | ^4.0 | PHPUnit polyfills |
30
31 ### PHP Architecture Layers
32
33 ```
34 src/ PSR-4 namespaced (Advanced_Ads\) — new code
35 includes/ Classmap legacy — core plugin classes
36 admin/ Classmap legacy — admin classes
37 classes/ Classmap legacy — shared helpers
38 public/ Classmap legacy — frontend
39 modules/ Feature modules (ad-blocker, ad-positioning, adblock-finder,
40 ads-txt, gadsense, gutenberg, one-click, pef, privacy)
41 upgrades/ Versioned DB migration scripts
42 ```
43
44 ---
45
46 ## Frontend — JavaScript / React
47
48 | Concern | Detail |
49 | ---------------- | ---------------------------------------------------------------- |
50 | Runtime | Node.js ≥ 20.0.0, npm ≥ 9.0.0 |
51 | UI framework | React (via `@wordpress/scripts`) |
52 | Language | JavaScript + TypeScript |
53 | Build tool | Webpack (extended from `@wordpress/scripts` default config) |
54 | CSS framework | Tailwind CSS v4 (`@tailwindcss/postcss` ^4.1.14) |
55 | CSS processing | PostCSS |
56 | State management | `@wordpress/data` (Redux-like store) |
57 | API layer | `@wordpress/api-fetch` (REST) |
58 | Icons | `lucide-react` ^1.3.0 |
59 | Class utilities | `clsx` ^2.1.1 + `tailwind-merge` ^3.5.0 |
60 | Legacy widgets | `select2` ^4.1.0-rc.0 |
61 | Routing | Custom SPA router via `useSyncExternalStore` (URL search params) |
62 | SVG handling | `@svgr/webpack` ^8.1.0 |
63
64 ### Admin Screens (React SPAs)
65
66 | Screen | Entry |
67 | ---------- | ------------------------------ |
68 | Ads | `src/admin/screen-ads/` |
69 | Ad Groups | `src/admin/screen-groups/` |
70 | Placements | `src/admin/screen-placements/` |
71 | Licenses | `src/admin/screen-licenses/` |
72 | Settings | `src/admin/screen-settings/` |
73 | Support | `src/admin/screen-support/` |
74 | Dashboard | `src/admin/screen-dashboard/` |
75
76 All screens share a client-side router (`src/admin/router.js`) and central route registry (`src/admin/routes.js`).
77
78 ---
79
80 ## Testing
81
82 | Layer | Tool | Command |
83 | -------- | ----------------------- | ------------------------- |
84 | PHP unit | PHPUnit ^9.6 | `composer test` |
85 | JS unit | wp-scripts test-unit-js | `npm run test:unit` |
86 | E2E | Playwright | `npm run test:playwright` |
87
88 ---
89
90 ## Code Quality
91
92 | Tool | Scope | How invoked |
93 | ---------------------- | ---------- | ----------------------------------- |
94 | ESLint | JavaScript | `npm run lint:js` |
95 | Stylelint | CSS/SCSS | `npm run lint:css` |
96 | PHP_CodeSniffer (WPCS) | PHP | `npm run lint:php` / `bin/phpcs.sh` |
97 | PHPMD | PHP | `phpmd.xml` config present |
98 | husky + lint-staged | Pre-commit | Runs format + lint on staged files |
99
100 ---
101
102 ## CI/CD — GitHub Actions
103
104 | Workflow | Purpose |
105 | ----------------------- | --------------------------------- |
106 | `php-unit.yml` | PHP unit test suite |
107 | `php-compatibility.yml` | Cross-version PHP compat checks |
108 | `playwright.yml` | End-to-end browser tests |
109 | `release.yml` | Plugin release packaging |
110 | `wordpress-deploy.yml` | Deploy to WordPress.org / hosting |
111
112 ---
113
114 ## Tooling
115
116 | Tool | Purpose |
117 | ------------------- | ------------------------------------------------------------ |
118 | Understand Anything | Codebase knowledge graph (`.understand-anything/`) |
119 | WP-CLI | DB/install helpers (`composer global require wp-cli/wp-cli`) |
120 | WP-CLI i18n | Translation file generation |
121 | wp-advads (custom) | Internal build wrapper (`npx wp-advads build`) |
122