From e3ede89197a41423a0d8c13d49604a1c0de23344 Mon Sep 17 00:00:00 2001 From: wpdev Date: Fri, 31 Jul 2026 06:03:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(back-compat):=20=E5=8A=A0=E5=85=A5=20WPDO?= =?UTF-8?q?=5F*=20class=20alias=EF=BC=88E3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 核心的 class-tmdo-back-compat.php 在 plugins_loaded:4 執行,AddOn 於 :6 才載入,所以核心的 alias 表涵蓋不到 AddOn 類別 —— 姊妹外掛或第三方若 以 WPDO_* 名稱引用本 AddOn 的類別會直接 fatal。 新增 includes/back-compat-aliases.php,於 plugins_loaded:7 為本 AddOn 自有類別建立 WPDO_ alias;主檔加入 require。 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY --- 2meet-data-optimizer-hivepress-addon.php | 1 + includes/back-compat-aliases.php | 71 ++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 includes/back-compat-aliases.php diff --git a/2meet-data-optimizer-hivepress-addon.php b/2meet-data-optimizer-hivepress-addon.php index 5c81ba5..d4c64cb 100644 --- a/2meet-data-optimizer-hivepress-addon.php +++ b/2meet-data-optimizer-hivepress-addon.php @@ -29,6 +29,7 @@ define( 'TMDO_HIVEPRESS_FILE', __FILE__ ); require_once TMDO_HIVEPRESS_PATH . 'includes/class-tmdo-hivepress-bootstrap.php'; +require_once TMDO_HIVEPRESS_PATH . 'includes/back-compat-aliases.php'; /** * Phase 3 任務:完成本 AddOn 的 includes/ 實作。 * diff --git a/includes/back-compat-aliases.php b/includes/back-compat-aliases.php new file mode 100644 index 0000000..6eb79a0 --- /dev/null +++ b/includes/back-compat-aliases.php @@ -0,0 +1,71 @@ + 'WPDO_Admin_HivePress', + 'TMDO_CLI_HivePress' => 'WPDO_CLI_HivePress', + 'TMDO_Favorites_Interceptor' => 'WPDO_Favorites_Interceptor', + 'TMDO_HPCT_Import' => 'WPDO_HPCT_Import', + 'TMDO_HP_Bootstrap' => 'WPDO_HP_Bootstrap', + 'TMDO_HivePress' => 'WPDO_HivePress', + 'TMDO_HivePress_Attribute_Bridge' => 'WPDO_HivePress_Attribute_Bridge', + 'TMDO_HivePress_Benchmark' => 'WPDO_HivePress_Benchmark', + 'TMDO_HivePress_Blocks_Adapter' => 'WPDO_HivePress_Blocks_Adapter', + 'TMDO_HivePress_Bookings_Adapter' => 'WPDO_HivePress_Bookings_Adapter', + 'TMDO_HivePress_Bootstrap' => 'WPDO_HivePress_Bootstrap', + 'TMDO_HivePress_Comment_Router' => 'WPDO_HivePress_Comment_Router', + 'TMDO_HivePress_Conflict_Guard' => 'WPDO_HivePress_Conflict_Guard', + 'TMDO_HivePress_Core_Adapter' => 'WPDO_HivePress_Core_Adapter', + 'TMDO_HivePress_Cron_Optimizer' => 'WPDO_HivePress_Cron_Optimizer', + 'TMDO_HivePress_Detector' => 'WPDO_HivePress_Detector', + 'TMDO_HivePress_Favorites_Adapter' => 'WPDO_HivePress_Favorites_Adapter', + 'TMDO_HivePress_Marketplace_Adapter' => 'WPDO_HivePress_Marketplace_Adapter', + 'TMDO_HivePress_Memberships_Adapter' => 'WPDO_HivePress_Memberships_Adapter', + 'TMDO_HivePress_Messages_Adapter' => 'WPDO_HivePress_Messages_Adapter', + 'TMDO_HivePress_REST' => 'WPDO_HivePress_REST', + 'TMDO_HivePress_Requests_Adapter' => 'WPDO_HivePress_Requests_Adapter', + 'TMDO_HivePress_Reviews_Adapter' => 'WPDO_HivePress_Reviews_Adapter', + 'TMDO_HivePress_Seo_Adapter' => 'WPDO_HivePress_Seo_Adapter', + 'TMDO_HivePress_Social_Links_Adapter' => 'WPDO_HivePress_Social_Links_Adapter', + 'TMDO_HivePress_Statistics_Adapter' => 'WPDO_HivePress_Statistics_Adapter', + 'TMDO_HivePress_Suitability_Scorer' => 'WPDO_HivePress_Suitability_Scorer', + 'TMDO_HivePress_Tags_Adapter' => 'WPDO_HivePress_Tags_Adapter', + 'TMDO_Hivepress_Term_Comment_Fields' => 'WPDO_Hivepress_Term_Comment_Fields', + 'TMDO_Hivepress_Transient_Filter' => 'WPDO_Hivepress_Transient_Filter', + 'TMDO_Listing_Meta_Interceptor' => 'WPDO_Listing_Meta_Interceptor', + 'TMDO_Listing_Meta_Query' => 'WPDO_Listing_Meta_Query', + 'TMDO_Listing_Stats' => 'WPDO_Listing_Stats', + 'TMDO_Memberships_Interceptor' => 'WPDO_Memberships_Interceptor', + 'TMDO_Memberships_Query' => 'WPDO_Memberships_Query', + 'TMDO_Messages_Interceptor' => 'WPDO_Messages_Interceptor', + 'TMDO_Messages_Query' => 'WPDO_Messages_Query', + 'TMDO_Requests_Interceptor' => 'WPDO_Requests_Interceptor', + 'TMDO_Requests_Query' => 'WPDO_Requests_Query', + 'TMDO_Reviews_Interceptor' => 'WPDO_Reviews_Interceptor', + 'TMDO_Reviews_Query' => 'WPDO_Reviews_Query', + 'TMDO_Statistics_Interceptor' => 'WPDO_Statistics_Interceptor', + ); + foreach ( $aliases as $tmdo_class => $wpdo_alias ) { + if ( class_exists( $tmdo_class, false ) && ! class_exists( $wpdo_alias, false ) ) { + class_alias( $tmdo_class, $wpdo_alias ); + } + } + }, + 7 +);