refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.
Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)
Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
(dropped 3 stale entries, added the 17 missing ones)
Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
when it is empty
Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.
Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5b16bc6e15
commit
35bb96e82f
997 files changed
+28216
-28188
No files matched your search
@@ -88,7 +88,7 @@ test('linked orders must belong to the caller and be paid', () => {
|
||||
assert.match(body, /get_user_order\(get_current_user_id\(\), \$order_number\)/);
|
||||
assert.match(body, /ORDER_STATUS_PAID/);
|
||||
// 新建时关联订单非法必须拒掉。
|
||||
assert.match(rest, /if \(\$order_number !== '' && !\$this->owns_paid_order\(\$order_number\)\) \{\s*\n\s*return new \\WP_Error\('aksrt_ticket_order'/);
|
||||
assert.match(rest, /if \(\$order_number !== '' && !\$this->owns_paid_order\(\$order_number\)\) \{\s*\n\s*return new \\WP_Error\('jio_ticket_order'/);
|
||||
});
|
||||
|
||||
test('admin routes all require manage_options', () => {
|
||||
@@ -104,7 +104,7 @@ test('admin routes all require manage_options', () => {
|
||||
|
||||
assert.match(admin, /current_user_can\('manage_options'\)/);
|
||||
// 管理侧命名空间与用户侧隔离。
|
||||
assert.match(body, /\$namespace = 'aksrt\/v1\/admin';/);
|
||||
assert.match(body, /\$namespace = 'jio\/v1\/admin';/);
|
||||
});
|
||||
|
||||
test('closed tickets refuse replies and cannot be re-closed', () => {
|
||||
@@ -112,10 +112,10 @@ test('closed tickets refuse replies and cannot be re-closed', () => {
|
||||
const admin = read('src/Ticket/TicketRestAdmin.php');
|
||||
|
||||
// 用户侧
|
||||
assert.match(rest, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('aksrt_ticket_closed', __\('工单已关闭,无法回复'/);
|
||||
assert.match(rest, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('aksrt_ticket_closed', __\('工单已关闭,无法催单'/);
|
||||
assert.match(rest, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('jio_ticket_closed', __\('工单已关闭,无法回复'/);
|
||||
assert.match(rest, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('jio_ticket_closed', __\('工单已关闭,无法催单'/);
|
||||
// 管理侧
|
||||
assert.match(admin, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('aksrt_ticket_closed'/);
|
||||
assert.match(admin, /if \(!empty\(\$ticket\['is_closed'\]\)\) \{\s*\n\s*return new \\WP_Error\('jio_ticket_closed'/);
|
||||
|
||||
// close_ticket 自身也挡已完结(双保险,避免前端绕过 UI 直接 POST)。
|
||||
const status = read('src/Ticket/TicketStatus.php');
|
||||
@@ -127,9 +127,9 @@ test('urge has a cooldown driven by settings', () => {
|
||||
const body = rest.slice(rest.indexOf('public function urge('));
|
||||
|
||||
// 冷却以工单行 last_urge_time 为准(条件 UPDATE 防并发),不再依赖 transient。
|
||||
assert.ok(!/_transient\('aksrt_ticket_urge_/.test(rest), 'urge cooldown must not use transients');
|
||||
assert.ok(!/_transient\('jio_ticket_urge_/.test(rest), 'urge cooldown must not use transients');
|
||||
assert.match(body, /\$count = \$repo->record_urge\(\$id, TicketSettings::urge_interval\(\) \* MINUTE_IN_SECONDS\);/);
|
||||
assert.match(body, /if \(\$count <= 0\) \{\s*\n\s*return new \\WP_Error\('aksrt_ticket_urge_limit'/);
|
||||
assert.match(body, /if \(\$count <= 0\) \{\s*\n\s*return new \\WP_Error\('jio_ticket_urge_limit'/);
|
||||
|
||||
const repo = read('src/Ticket/TicketRepository.php');
|
||||
assert.match(repo, /SET urge_count = urge_count \+ 1, last_urge_time = %s/);
|
||||
@@ -142,7 +142,7 @@ test('urge writes a system record, notifies admins and fires the mail hook', ()
|
||||
|
||||
assert.match(body, /\$repo->create_reply\(\$id, 'system', get_current_user_id\(\)/);
|
||||
assert.match(body, /TicketNotifier::admin_activity\(\$ticket, 'urge'\);/);
|
||||
assert.match(body, /do_action\('aksrt_ticket_urged', \$ticket\);/);
|
||||
assert.match(body, /do_action\('jio_ticket_urged', \$ticket\);/);
|
||||
|
||||
const repo = read('src/Ticket/TicketRepository.php');
|
||||
assert.match(repo, /if \(!in_array\(\$author_type, \['admin', 'system'\], true\)\) \{/);
|
||||
|
||||
Reference in new issue
Block a user