Files
wordpress-theme-aksrt/inc/bootstrap.php
T
kate522 3fe050b985 收口 category/tag filter 与 term header 共享层
抽出 term header / filter chip group 共用渲染,
分类页与标签页只保留数据装配,不再各自复制 DOM 拼装。
2026-07-09 22:22:39 +08:00

425 lines
25 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* AKSRT Theme Bootstrap Loader
*
* 统一加载入口:辅助函数 → 类文件 → 实例初始化
* 所有 require_once 路径集中管理,方便维护。
*
* @package AKSRT
* @version 3.2.0
*/
defined('ABSPATH') || exit;
// ============================================================
// 翻译加载延迟到 after_setup_theme(WordPress 6.7+ 要求)
// 由 AKSRT_Setup::load_textdomain() 处理
// ============================================================
// ============================================================
// 阶段1:加载辅助函数(必须在类之前,类会调用这些函数)
// ============================================================
// 阶段1:加载辅助函数(必须在类之前,类会调用这些函数)
// ============================================================
require_once AKSRT_DIR . '/inc/helpers/aksrt-icons.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-domain-model.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-template-tags.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-frontend-tags.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-flow.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-homepage.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-archive.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-archive-filters.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-slider.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-vip.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-i18n-switch.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-posts-renderer.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-resource.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-compat.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-pay.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-credits.php';
require_once AKSRT_DIR . '/inc/helpers/menu-decoration.php';
require_once AKSRT_DIR . '/inc/helpers/class-aksrt-nav-walker.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-transactions.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-dashboard.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-shortcodes.php';
// ============================================================
// 阶段2:加载类文件(settings 必须在 admin 之前)
// ============================================================
require_once AKSRT_DIR . '/inc/classes/setup-traits/trait-aksrt-setup-part-1.php';
require_once AKSRT_DIR . '/inc/classes/setup-traits/trait-aksrt-setup-part-2.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-setup.php';
require_once AKSRT_DIR . '/inc/classes/scripts-traits/trait-aksrt-scripts-part-1b.php';
require_once AKSRT_DIR . '/inc/classes/scripts-traits/trait-aksrt-scripts-part-2.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-scripts.php';
require_once AKSRT_DIR . '/inc/classes/frontend/class-aksrt-inline-style-builder.php';
require_once AKSRT_DIR . '/inc/classes/frontend/class-aksrt-custom-code-renderer.php';
require_once AKSRT_DIR . '/inc/classes/frontend/class-aksrt-loading-overlay-renderer.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-domain-groups.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-display-page-groups.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-credits-payment-groups.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-category-integration-groups.php';
require_once AKSRT_DIR . '/inc/classes/settings/trait-aksrt-settings-auth-reader.php';
require_once AKSRT_DIR . '/inc/classes/settings/trait-aksrt-settings-homepage-reader.php';
// Settings facade delegates(按领域分组加载,必须早于 admin)
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-mail.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-theme-search.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-post-display.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-home-cms.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-display-runtime.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-category-runtime.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-user-runtime.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-credits-runtime.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-integration.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-extension-runtime.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-forum-shop.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings-capabilities.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-settings.php';
// 加载后台控制器基类和业务域控制器(必须在 admin 之前)
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-controller-base.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-invite-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-report-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-verify-integrations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-auth-phone-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-restriction-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller-follow-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-product-admin-columns.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-frontend-flow-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-product-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-order-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-fulfillment-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-coupon-gateway-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-variant-export-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-1.php';
require_once AKSRT_DIR . '/inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-2.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-global-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-page-display-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-post-list-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-permissions-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-user-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-payment-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-tools-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-schema-provider.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-global.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-page-display.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-post-list.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-users.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-payment.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions-ip.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions-audit.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions-push.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions-security.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions-docs-mode.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools-import-export.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools-health.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools-migration.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools-backup.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools-email-rollback.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-basic.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-list.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-contact.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-single.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-product-defaults.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-shipping-config.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop-timing.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-basic.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-names.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-homepage.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-board-page.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-post-page.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-reply.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-permissions.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-other.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-upload.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum-credits.php';
require_once AKSRT_DIR . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum.php';
require_once AKSRT_DIR . '/inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-1.php';
require_once AKSRT_DIR . '/inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-2.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-import-export-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-product-admin-columns.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-frontend-flow-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-product-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-order-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-fulfillment-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-coupon-gateway-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller-variant-export-operations.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-shop-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-1.php';
require_once AKSRT_DIR . '/inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-2.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-forum-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-extension-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-comment-controller.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-comment-actions.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-go-redirect.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-site-notice.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-api-audit.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-meilisearch.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-update-checker.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-category-rewrite.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-message-controller.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-settings-migration.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-admin.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-auth-email-verification.php';
require_once AKSRT_DIR . '/inc/classes/auth-traits/trait-aksrt-auth-service-part-1a.php';
require_once AKSRT_DIR . '/inc/classes/auth-traits/trait-aksrt-auth-service-part-1b.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-auth-service.php';
require_once AKSRT_DIR . '/inc/classes/oauth-traits/trait-aksrt-oauth-part-1.php';
require_once AKSRT_DIR . '/inc/classes/oauth-traits/trait-aksrt-oauth-part-2.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-oauth.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-oauth-proxy-client.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-oauth-proxy-server.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-captcha.php';
require_once AKSRT_DIR . '/inc/classes/moderation-traits/trait-aksrt-moderation-part-1.php';
require_once AKSRT_DIR . '/inc/classes/moderation-traits/trait-aksrt-moderation-part-2.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-moderation.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-user.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-user-center.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-user-home.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-user-restriction.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-auth-router.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-templates.php';
// 加载访问量统计系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-stats-tracker.php';
// 邮箱回滚(14 天窗口)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-email-rollback.php';
// 原生用户菜单:积分管理
require_once AKSRT_DIR . '/inc/classes/class-aksrt-user-credits-admin.php';
// 加载数据表迁移器(CMS / 积分 / 下载 token)
require_once AKSRT_DIR . '/inc/classes/db-traits/trait-aksrt-db-migrator-part-1.php';
require_once AKSRT_DIR . '/inc/classes/db-traits/trait-aksrt-db-migrator-part-2.php';
require_once AKSRT_DIR . '/inc/classes/db-traits/trait-aksrt-db-migrator-part-3.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-db-migrator.php';
// 加载积分服务
require_once AKSRT_DIR . '/inc/classes/class-aksrt-credits.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-credits-earn.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-signin.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-invite.php';
// 加载下载服务(CMS / 资源 token 流程)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-download.php';
// 下载状态统一解析器
require_once AKSRT_DIR . '/inc/classes/class-aksrt-download-state.php';
// 文档模式 Presenter(章节树、面包屑、章节导航)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-docs-presenter.php';
// 加载 CMS 首页模块系统
// 隐藏内容权限系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-content-visibility.php';
// 扩展服务层:IP 归属地、内容审核、搜索引擎推送
require_once AKSRT_DIR . '/inc/classes/class-aksrt-ip-geo.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-content-audit.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-search-push.php';
// 短信服务(签名助手 + Provider 接口 + Factory + 4 个 Adapter + 编排层)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-signature-helper.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider-aliyun.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider-tencent.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider-huawei.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider-custom.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms-provider-factory.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-sms.php';
// 微信通知骨架
require_once AKSRT_DIR . '/inc/classes/class-aksrt-wechat-notify.php';
// 站内消息系统骨架
require_once AKSRT_DIR . '/inc/classes/class-aksrt-message.php';
// 站内私信/会话系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-private-message.php';
// 举报治理骨架
require_once AKSRT_DIR . '/inc/classes/class-aksrt-report-center.php';
// 关注系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-follow.php';
// 优惠券系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-coupon.php';
// 订单系统骨架
require_once AKSRT_DIR . '/inc/classes/class-aksrt-order.php';
// 订单仓储(表存储 + 迁移兼容桥)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-order-repository.php';
// 支付网关接口与管理器
require_once AKSRT_DIR . '/inc/classes/class-aksrt-payment-gateway.php';
require_once AKSRT_DIR . '/inc/classes/gateways/class-aksrt-alipay-gateway.php';
require_once AKSRT_DIR . '/inc/classes/gateways/class-aksrt-wechatpay-gateway.php';
require_once AKSRT_DIR . '/inc/classes/gateways/class-aksrt-paypal-gateway.php';
require_once AKSRT_DIR . '/inc/classes/gateways/class-aksrt-stripe-gateway.php';
// 收益台账
require_once AKSRT_DIR . '/inc/classes/class-aksrt-revenue.php';
// 提现台账
require_once AKSRT_DIR . '/inc/classes/class-aksrt-withdrawal.php';
// 前台投稿系统骨架
require_once AKSRT_DIR . '/inc/classes/class-aksrt-front-submit.php';
// 论坛系统骨架
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-permission-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-draft-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-comment-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-score-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-1.php';
require_once AKSRT_DIR . '/inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-2.php';
require_once AKSRT_DIR . '/inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-3.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-board-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-1.php';
require_once AKSRT_DIR . '/inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-2.php';
require_once AKSRT_DIR . '/inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-3.php';
require_once AKSRT_DIR . '/inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-4.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-topic-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-moderation-service.php';
require_once AKSRT_DIR . '/inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-1.php';
require_once AKSRT_DIR . '/inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-2.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-forum-view-builder.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-forum.php';
// 商城系统骨架
// 商城服务层
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-shop-cart-service.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-shop-checkout-service.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-shop-address-service.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-shop-product-service.php';
require_once AKSRT_DIR . '/inc/classes/shop/shop-traits/trait-aksrt-shop-part-1.php';
require_once AKSRT_DIR . '/inc/classes/shop/shop-traits/trait-aksrt-shop-part-2.php';
require_once AKSRT_DIR . '/inc/classes/shop/shop-traits/trait-aksrt-shop-part-3.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-shop.php';
// 售后服务
require_once AKSRT_DIR . '/inc/classes/class-aksrt-after-sale.php';
// 物流管理
require_once AKSRT_DIR . '/inc/classes/shipping-traits/trait-aksrt-shipping-part-1.php';
require_once AKSRT_DIR . '/inc/classes/shipping-traits/trait-aksrt-shipping-part-2.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-shipping.php';
// 充值卡系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-charge-card.php';
// 返佣系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-rebate.php';
// AI 子系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-ai.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-ai-seo.php';
require_once AKSRT_DIR . '/inc/classes/class-aksrt-ai-prompt.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-ai-controller.php';
// SEO head 单一装配器(站点/单篇 SEO、OG/Twitter、JSON-LD、canonical、robots)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-seo-head.php';
// 分类/标签 term meta(局部配置能力)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-term-meta.php';
// 商城 taxonomy term meta + 优惠活动 taxonomy 注册
require_once AKSRT_DIR . '/inc/classes/class-aksrt-shop-term-meta.php';
// 优惠计算引擎
require_once AKSRT_DIR . '/inc/classes/class-aksrt-discount.php';
// 商品评价/评分系统
require_once AKSRT_DIR . '/inc/classes/class-aksrt-product-review.php';
// 文章局部配置 meta box
require_once AKSRT_DIR . '/inc/classes/class-aksrt-post-meta-box.php';
// 资源 CPT 编辑器 meta box(仅后台用,前台无副作用)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-resource-meta-box.php';
// 加载原有小工具类(用户中心、分类目录、最新文章、标签云)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-widgets-original.php';
// 加载新增小工具(热榜文章、多栏目 Tab 切换)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-widgets-new.php';
// 加载第一批通用小工具(搜索、公告、最新评论、友链、图标卡片、按钮组、HTML间距)
require_once AKSRT_DIR . '/inc/classes/class-aksrt-widgets-batch1.php';
// 自动加载 widgets 目录下的所有小工具文件
$aksrt_widgets_dir = AKSRT_DIR . '/inc/classes/widgets/';
if (is_dir($aksrt_widgets_dir)) {
foreach (glob($aksrt_widgets_dir . 'class-*.php') as $aksrt_widget_file) {
require_once $aksrt_widget_file;
}
}
// 加载小工具注册中心
require_once AKSRT_DIR . '/inc/classes/class-aksrt-widgets.php';
// ============================================================
// 阶段3:核心功能模块(Gravatar替换 / SMTP邮件)
// ============================================================
require_once AKSRT_DIR . '/inc/core-hooks.php';
// ============================================================
// 阶段4:邮箱验证 — 启动 Auth Service 全局钩子(authenticate 拦截)
// ============================================================
if (class_exists('AKSRT_Auth_Service')) {
AKSRT_Auth_Service::init();
}
// ============================================================
// 阶段5:邮箱验证 — 一次性 backfill(幂等)+ cron 异步回填
// 兼容站点已通过 SQL 直接打开开关、未走 REST 保存路径的情况。
// ============================================================
add_action('init', function () {
// 紧急降级:直接跳过迁移
if (defined('AKSRT_NO_EMAIL_GATE') && AKSRT_NO_EMAIL_GATE) {
return;
}
if (!class_exists('AKSRT_Auth_Service') || !class_exists('AKSRT_Settings')) {
return;
}
if (!AKSRT_Settings::registration_requires_email_verification()) {
return;
}
if (get_option('aksrt_email_verification_backfill_done')) {
return;
}
// 在 admin 上下文下不要拖慢前台,仅 admin/cron 触发
if (!is_admin() && !(defined('DOING_CRON') && DOING_CRON)) {
return;
}
AKSRT_Auth_Service::backfill_legacy_users_as_verified();
}, 5);
// 异步分批回填的 cron 钩子(仅在用户量 > 50000 时使用)
add_action('aksrt_email_verification_backfill_batch', function ($offset = 0) {
if (class_exists('AKSRT_Auth_Service')) {
AKSRT_Auth_Service::run_async_backfill_batch((int) $offset);
}
}, 10, 1);
// ============================================================
// 阶段6:设置迁移 — 将旧 option key 映射到新 Schema 结构
// 仅在后台上下文执行,前台不触发。
// ============================================================
add_action('admin_init', function () {
if (class_exists('AKSRT_Settings_Migration')) {
AKSRT_Settings_Migration::get_instance()->maybe_migrate();
}
}, 5);