fix(revenue): replicate the reference rebate poster canvas layers

The poster modal shell already matched the reference theme, but the canvas
drawing diverged from zibll's poster-share.js rebate branch in four places:

- No 推荐人 tags layer. The reference paints a red #fc4e1f 24px line at
  img_height+160; AKSRT dropped the layer entirely, so the poster lost the
  referrer attribution that identifies whose link it is.
- The logo slot painted text. The reference contains the real logo image
  into (80, height-190, 300, 100); AKSRT drew the site name as a 30px string
  plus a hardcoded 长按识别二维码访问 caption in that slot.
- Bottom copy was hardcoded. The reference reads share_desc; now sourced
  from the new pay_rebate_poster_desc_bottom field with share_desc fallback.
- No banner fallback. The reference walks banner → banner_default →
  banner_spare; a single broken URL left the top half of the poster black.

Also aligns the week label to the reference's 周 prefix (was 星期日) and ports
drawTextOverflow for wrapping/truncation, which retires the local wrapText.

Adds pay_rebate_poster_banner and pay_rebate_poster_desc_bottom to both the
Vue and PHP schemas; rest_me now returns logo, compatible and referrer_name.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-10-21 21:07:48 +08:00
1 parent ef15416ef7
commit 81b60eb427
7 files changed
+212 -95

No files matched your search

+3
View File
@@ -328,6 +328,9 @@ class PaymentRuntime {
'image' => esc_url_raw((string) ($settings['pay_rebate_poster_img'] ?? '')),
'title' => sanitize_text_field((string) ($settings['pay_rebate_poster_title'] ?? '')),
'description' => sanitize_text_field((string) ($settings['pay_rebate_poster_desc'] ?? '')),
'banner_default' => esc_url_raw((string) ($settings['pay_rebate_poster_banner'] ?? '')),
'banner_spare' => get_template_directory_uri() . '/assets/img/share_img.jpg',
'bottom' => sanitize_text_field((string) ($settings['pay_rebate_poster_desc_bottom'] ?? '')),
],
];
}