Files
wordpress-theme-aksrt/tests/widget-system/vip-points-entry-harness.php
T
kate522andClaude Opus 5 35bb96e82f 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>
2026-11-01 20:05:04 +08:00

58 lines
2.5 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
declare(strict_types=1);
namespace {
define('ABSPATH', __DIR__ . '/');
function __(string $text, string $domain = ''): string { return $text; }
function esc_html($value): string { return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8'); }
function esc_html__($value, string $domain = ''): string { return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8'); }
function esc_attr($value): string { return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8'); }
function esc_attr__($value, string $domain = ''): string { return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8'); }
function esc_url($value): string { return (string) $value; }
function wp_kses_post($value): string { return (string) $value; }
function jio_get_user_center_tab_url(string $tab): string { return '/user/' . $tab; }
function add_action(string $hook, callable $cb, int $p = 10, int $a = 1): void {}
}
namespace Jio\Content {
// VipService 门面:get_catalog 由探测值驱动(含 currency_name + 可兑换套餐)。
final class VipService {
public static function get_instance(): self { return new self(); }
/** @return array<string,mixed> */
public function get_catalog(int $user_id = 0): array {
return [
'currency_name' => $GLOBALS['jio_probe_currency'] ?? '积分',
'points_exchange' => [
'enabled' => true,
'packages' => [['package_id' => 6001, 'level' => 1, 'points' => 500]],
],
];
}
}
}
namespace Jio\Settings {
final class Settings {
// 仅在 catalog 未带 currency_name 时回退,用于验证兜底路径。
public static function get_currency_name(): string { return $GLOBALS['jio_probe_fallback'] ?? '积分'; }
}
}
namespace {
require dirname(__DIR__, 2) . '/inc/helpers/jio-vip.php';
$GLOBALS['jio_probe_currency'] = isset($argv[1]) ? (string) $argv[1] : '书币';
$GLOBALS['jio_probe_fallback'] = isset($argv[2]) ? (string) $argv[2] : '回退币';
// 场景 1:后台改名后,横条标题跟随自定义货币名。
echo jio_get_vip_points_exchange_entry_html(1, 0), "\n";
// 场景 2:已是会员 → 不输出。
echo (jio_get_vip_points_exchange_entry_html(1, 2) === '' ? 'VIP_HIDDEN' : 'VIP_SHOWN'), "\n";
// 场景 3:catalog 未带 currency_name → 回退到设置里的名称。
$GLOBALS['jio_probe_currency'] = '';
echo jio_get_vip_points_exchange_entry_html(1, 0), "\n";
}