Files
wordpress-theme-aksrt/inc/bootstrap.php
T
kate522 9c309b4c7f refactor(classes): split oversize modules + bootstrap hygiene
- Trait-split content-pay, vip-service, balance-service, order-repository
- Procedural split of user module into user-parts/*
- Split scripts enqueue_public into part-1b/1c; settings bulk trait
- Bootstrap: explicit notifications, widgets glob-only, home-modules init
- ADR: freeze domain placement for pay/revenue/notify boundaries
2026-07-17 11:42:29 +08:00

422 lines
29 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
*
* 统一加载入口:辅助函数 → 类文件 → 实例初始化
* 类文件按领域目录组织(inc/classes/{domain}/),路径集中在此维护。
*
* @package AKSRT
* @version 3.4.0
*/
defined('ABSPATH') || exit;
// ============================================================
// 翻译加载延迟到 after_setup_theme(WordPress 6.7+ 要求)
// 由 AKSRT_Setup::load_textdomain() 处理
// ============================================================
// ============================================================
// 阶段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-components.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-yiyan.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single-render.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-comments.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-forum.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-auth-ui.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-pay.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-coupon-order.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-credits.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-null.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-identity.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-rewards.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-commerce.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-dashboard.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-center.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-home.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-shortcodes.php';
// ============================================================
// 阶段2:加载类文件(settings 必须在 admin 之前)
// 领域目录:core / frontend / settings / admin / auth / user /
// credits / content / payment / forum / shop / sms / ai /
// messages / extensions / widgets
// ============================================================
// --- core: setup / scripts / frontend render helpers ---
require_once AKSRT_DIR . '/inc/classes/core/setup-traits/trait-aksrt-setup-part-1.php';
require_once AKSRT_DIR . '/inc/classes/core/setup-traits/trait-aksrt-setup-part-2.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-setup.php';
require_once AKSRT_DIR . '/inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1b.php';
require_once AKSRT_DIR . '/inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1c.php';
require_once AKSRT_DIR . '/inc/classes/core/scripts-traits/trait-aksrt-scripts-part-2.php';
require_once AKSRT_DIR . '/inc/classes/core/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';
// --- settings: groups + runtime delegates + facade ---
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';
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-payment-runtime.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/settings/trait-aksrt-settings-facade-bulk.php';
require_once AKSRT_DIR . '/inc/classes/settings/class-aksrt-settings.php';
// --- admin: SPA controllers + schema + native ops ---
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/global-ctrl-traits/trait-aksrt-admin-homepage-settings-rest.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/post-list/class-aksrt-admin-schema-post-list-list.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-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.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/admin/class-aksrt-admin-message-controller.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-menus.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-coupons.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-charge-cards.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-shipping.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-after-sale.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-orders.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-products.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-download-logs.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-withdrawals.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-income.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-pay-rebate.php';
require_once AKSRT_DIR . '/inc/classes/admin/native/class-aksrt-admin-users-menus.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin.php';
// --- core: presentation / infra shells used by admin + front ---
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-comment-actions.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-go-redirect.php';
require_once AKSRT_DIR . '/inc/classes/messages/class-aksrt-site-notice.php';
require_once AKSRT_DIR . '/inc/classes/extensions/class-aksrt-api-audit.php';
require_once AKSRT_DIR . '/inc/classes/extensions/class-aksrt-meilisearch.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-update-checker.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-category-rewrite.php';
// --- auth ---
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-auth-email-verification.php';
require_once AKSRT_DIR . '/inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1a.php';
require_once AKSRT_DIR . '/inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1b.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-auth-service.php';
require_once AKSRT_DIR . '/inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-1.php';
require_once AKSRT_DIR . '/inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-2.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-oauth.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-oauth-proxy-client.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-oauth-proxy-server.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-captcha.php';
require_once AKSRT_DIR . '/inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-1.php';
require_once AKSRT_DIR . '/inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-2.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-moderation.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-auth-router.php';
require_once AKSRT_DIR . '/inc/classes/auth/class-aksrt-email-rollback.php';
// --- user ---
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-notifications.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-center.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-home.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-restriction.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-credits-admin.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-balance-admin.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-badges.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-badges-admin.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-level.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-user-metrics.php';
require_once AKSRT_DIR . '/inc/classes/user/class-aksrt-follow.php';
// --- core: templates + stats + DB migrator ---
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-templates.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-stats-tracker.php';
require_once AKSRT_DIR . '/inc/classes/core/db-traits/trait-aksrt-db-migrator-part-2.php';
require_once AKSRT_DIR . '/inc/classes/core/db-traits/trait-aksrt-db-migrator-part-3.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-db-migrator.php';
// --- credits / wallet ---
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-credits.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-balance.php';
require_once AKSRT_DIR . '/inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-rest.php';
require_once AKSRT_DIR . '/inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-charge.php';
require_once AKSRT_DIR . '/inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-points.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-balance-service.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-points-free.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-credits-earn.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-signin.php';
require_once AKSRT_DIR . '/inc/classes/credits/class-aksrt-invite.php';
// --- content pay / download / VIP ---
require_once AKSRT_DIR . '/inc/classes/content/class-aksrt-download.php';
require_once AKSRT_DIR . '/inc/classes/content/content-pay-traits/trait-aksrt-content-pay-rest.php';
require_once AKSRT_DIR . '/inc/classes/content/content-pay-traits/trait-aksrt-content-pay-orders.php';
require_once AKSRT_DIR . '/inc/classes/content/content-pay-traits/trait-aksrt-content-pay-helpers.php';
require_once AKSRT_DIR . '/inc/classes/content/class-aksrt-content-pay.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-topic-pay.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-plate-follow-pay.php';
require_once AKSRT_DIR . '/inc/classes/content/vip-service-traits/trait-aksrt-vip-service-rest.php';
require_once AKSRT_DIR . '/inc/classes/content/vip-service-traits/trait-aksrt-vip-service-purchase.php';
require_once AKSRT_DIR . '/inc/classes/content/vip-service-traits/trait-aksrt-vip-service-packages.php';
require_once AKSRT_DIR . '/inc/classes/content/class-aksrt-vip-service.php';
require_once AKSRT_DIR . '/inc/classes/content/class-aksrt-download-state.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-docs-presenter.php';
// CMS 首页模块(预览 REST + 默认模板;模板主路径仍在 helpers)
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-home-modules.php';
require_once AKSRT_DIR . '/inc/classes/content/class-aksrt-content-visibility.php';
// --- extensions ---
require_once AKSRT_DIR . '/inc/classes/extensions/class-aksrt-ip-geo.php';
require_once AKSRT_DIR . '/inc/classes/extensions/class-aksrt-content-audit.php';
require_once AKSRT_DIR . '/inc/classes/extensions/class-aksrt-search-push.php';
// --- sms ---
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-signature-helper.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider-aliyun.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider-tencent.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider-huawei.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider-custom.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms-provider-factory.php';
require_once AKSRT_DIR . '/inc/classes/sms/class-aksrt-sms.php';
// --- payment ---
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-wechat-notify.php';
require_once AKSRT_DIR . '/inc/classes/messages/class-aksrt-message.php';
require_once AKSRT_DIR . '/inc/classes/messages/class-aksrt-private-message.php';
require_once AKSRT_DIR . '/inc/classes/messages/class-aksrt-report-center.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-coupon.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-order.php';
require_once AKSRT_DIR . '/inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-core.php';
require_once AKSRT_DIR . '/inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-admin.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-order-repository.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-payment-gateway.php';
require_once AKSRT_DIR . '/inc/classes/payment/gateways/class-aksrt-alipay-gateway.php';
require_once AKSRT_DIR . '/inc/classes/payment/gateways/class-aksrt-wechatpay-gateway.php';
require_once AKSRT_DIR . '/inc/classes/payment/gateways/class-aksrt-paypal-gateway.php';
require_once AKSRT_DIR . '/inc/classes/payment/gateways/class-aksrt-stripe-gateway.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-revenue.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-creator-revenue.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-withdrawal.php';
// --- core: front submit ---
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-front-submit.php';
// --- forum ---
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/forum/class-aksrt-forum.php';
// --- shop ---
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/class-aksrt-product-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-product-variants-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-plate-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-topic-admin-list.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-topic-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/forum/class-aksrt-plate-admin-list.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/shop/class-aksrt-shop.php';
// --- payment: after-sale / shipping / charge-card / rebate / discount ---
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-after-sale.php';
require_once AKSRT_DIR . '/inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-1.php';
require_once AKSRT_DIR . '/inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-2.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-shipping.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-charge-card.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-rebate.php';
require_once AKSRT_DIR . '/inc/classes/payment/class-aksrt-discount.php';
// --- ai ---
require_once AKSRT_DIR . '/inc/classes/ai/class-aksrt-ai.php';
require_once AKSRT_DIR . '/inc/classes/ai/class-aksrt-ai-seo.php';
require_once AKSRT_DIR . '/inc/classes/ai/class-aksrt-ai-prompt.php';
require_once AKSRT_DIR . '/inc/classes/admin/class-aksrt-admin-ai-controller.php';
// --- core: SEO / term / post meta boxes ---
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-seo-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-seo-head.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-term-meta.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-shop-term-meta.php';
require_once AKSRT_DIR . '/inc/classes/shop/class-aksrt-product-review.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-post-meta-box.php';
require_once AKSRT_DIR . '/inc/classes/core/class-aksrt-resource-meta-box.php';
// --- widgets ---
// 包文件(多 widget 合一)+ 独立 widget 文件 + 注册中心。
// 使用单一 glob:目录内所有 class-*.php(含 original/new/batch1/registry)。
// require_once 幂等;新增 widget 只需丢进 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;
}
}
// ============================================================
// 阶段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 () {
}, 5);