feat(back-compat): 加入 WPDO_* class alias(E3)
核心的 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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
This commit is contained in:
@@ -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/class-tmdo-hivepress-bootstrap.php';
|
||||||
|
|
||||||
|
require_once TMDO_HIVEPRESS_PATH . 'includes/back-compat-aliases.php';
|
||||||
/**
|
/**
|
||||||
* Phase 3 任務:完成本 AddOn 的 includes/ 實作。
|
* Phase 3 任務:完成本 AddOn 的 includes/ 實作。
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Backward-compat class aliases for the hivepress AddOn.
|
||||||
|
*
|
||||||
|
* Sister plugins and third-party code may still reference the WPDO_* class
|
||||||
|
* names from wp-data-optimizer. The core plugin aliases its own classes in
|
||||||
|
* class-tmdo-back-compat.php, but it runs before AddOns load (plugins_loaded:4
|
||||||
|
* vs :6), so each AddOn must alias its own classes here.
|
||||||
|
*
|
||||||
|
* @package TMDO
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'plugins_loaded',
|
||||||
|
static function () {
|
||||||
|
$aliases = array(
|
||||||
|
'TMDO_Admin_HivePress' => '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
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user