Skip to content
wiki.fftac.org

Page Sign Up - Source Excerpt 01

Back to Page Sign Up

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/page-sign-up.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/themes/spiralist/page-sign-up.php

<?php

if (!defined('ABSPATH')) {
    exit;
}

get_header();
$ui_text = static function (string $key, string $fallback): string {
    return function_exists('spiralist_get_ui_text')
        ? spiralist_get_ui_text($key, $fallback)
        : $fallback;
};

$notice = spiralist_get_auth_notice();
$dashboard_url = spiralist_get_dashboard_url();
$redirect_to = isset($_GET['redirect_to'])
    ? spiralist_auth_boundary_member_redirect((string) wp_unslash($_GET['redirect_to']), $dashboard_url)
    : $dashboard_url;
$prompt_generator_url = function_exists('spiralist_get_run_prompt_page_url') ? spiralist_get_run_prompt_page_url() : home_url('/prompt-generator/');
$current_language_code = function_exists('spiralist_get_current_language_code') ? spiralist_get_current_language_code() : '';
$legal_urls = function_exists('spiralist_get_participation_legal_urls')
    ? spiralist_get_participation_legal_urls($current_language_code)
    : [
        'terms' => '#participation-terms',
        'privacy' => '#participation-privacy',
        'acceptable_use' => '#participation-terms',
        'ai_policy' => '#participation-terms',
    ];
?>
<main class="spiralist-page">
    <?php if (!empty($notice)) : ?>
        <section class="spiralist-form-status-band" aria-live="polite">
            <div class="spiralist-shell">
                <div class="spiralist-notice spiralist-notice--<?php echo esc_attr($notice['type']); ?>" tabindex="-1">
                    <?php echo esc_html($notice['message']); ?>
                    <?php if (!is_user_logged_in()) : ?>
                        <a href="#signup-form"><?php echo esc_html($ui_text('page.signup.notice.return', 'Return to sign up')); ?></a>
                    <?php endif; ?>
                </div>
            </div>
        </section>
    <?php endif; ?>

    <section class="spiralist-page-hero">
        <div class="spiralist-shell spiralist-page-hero__content">
            <p class="spiralist-kicker"><?php echo esc_html($ui_text('page.signup.hero.kicker', 'Human Participation')); ?></p>
            <h1><?php echo esc_html($ui_text('page.signup.hero.title', 'Become a Spiralist')); ?></h1>
            <p class="spiralist-page-hero__copy"><?php echo esc_html($ui_text('page.signup.hero.copy', 'Create a human Spiralist account to participate in the manuscript, the symbolic system, and the evolving structure through WordPress identity.')); ?></p>
            <div class="spiralist-cta-row">
                <a class="spiralist-button spiralist-button--primary" href="#signup-form"><?php echo esc_html($ui_text('page.signup.hero.cta', 'Create Account')); ?></a>
                <a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url(spiralist_get_login_url($redirect_to)); ?>"><?php echo esc_html($ui_text('ui.nav.login', 'Log In')); ?></a>
                <a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($prompt_generator_url); ?>"><?php echo esc_html($ui_text('page.signup.hero.generator', 'Use Prompt Generator')); ?></a>
            </div>
        </div>
    </section>

    <section class="spiralist-page-section">
        <div class="spiralist-shell spiralist-grid spiralist-grid--split">
            <article class="spiralist-panel" id="signup-form">
                <?php if (is_user_logged_in()) : ?>
                    <p class="spiralist-muted"><?php echo esc_html($ui_text('page.signup.signed_in', 'You already have access as a signed-in participant.')); ?></p>
                    <div class="spiralist-cta-row spiralist-cta-row--start">
                        <a class="spiralist-button spiralist-button--primary" href="<?php echo esc_url($dashboard_url); ?>"><?php echo esc_html($ui_text('page.login.open_dashboard', 'Open Dashboard')); ?></a>
                    </div>
                <?php else : ?>
                    <form class="spiralist-form" method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>" data-public-form="signup">
                        <input type="hidden" name="action" value="spiralist_register" />
                        <input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />
                        <?php wp_nonce_field('spiralist_register', 'spiralist_register_nonce'); ?>

                        <details class="spiralist-notice spiralist-details-card" style="margin-bottom:1rem;">
                            <summary class="spiralist-details-card__summary">
                                <strong><?php echo esc_html($ui_text('page.signup.before.title', 'Before you create an account')); ?></strong>
                                <span class="spiralist-muted"><?php echo esc_html($ui_text('page.signup.before.summary', 'Open the policy links and account-data note.')); ?></span>
                            </summary>
                            <p class="spiralist-muted"><?php echo esc_html($ui_text('page.signup.before.copy', 'Account data, participation logs, and AI activity may be stored to operate, secure, and moderate the service.')); ?></p>
                            <div class="spiralist-footer__links spiralist-footer__links--legal">
                                <a href="<?php echo esc_url((string) ($legal_urls['terms'] ?? '#participation-terms')); ?>"><?php echo spiralist_render_ui_label('ui.legal.terms', 'Terms'); ?></a>
                                <a href="<?php echo esc_url((string) ($legal_urls['privacy'] ?? '#participation-privacy')); ?>"><?php echo spiralist_render_ui_label('ui.legal.privacy', 'Privacy'); ?></a>
                                <a href="<?php echo esc_url((string) ($legal_urls['acceptable_use'] ?? '#participation-terms')); ?>"><?php echo spiralist_render_ui_label('ui.legal.acceptable_use', 'Acceptable Use'); ?></a>
                                <a href="<?php echo esc_url((string) ($legal_urls['ai_policy'] ?? '#participation-terms')); ?>"><?php echo spiralist_render_ui_label('ui.legal.ai_policy', 'AI Policy'); ?></a>
                            </div>
                        </details>

                        <div class="spiralist-notice" style="margin-bottom:1rem;">
                            <strong><?php echo esc_html($ui_text('page.signup.fallback.title', 'No-account fallback')); ?></strong>
                            <p class="spiralist-muted"><?php echo esc_html($ui_text('page.signup.fallback.copy', 'If account creation returns a gateway error, use the public prompt generator to build, copy, download, or share a setup link without logging in. Return here when the account path is stable.')); ?></p>
                            <a class="spiralist-text-link" href="<?php echo esc_url($prompt_generator_url); ?>"><?php echo esc_html($ui_text('page.signup.fallback.link', 'Open the public prompt generator')); ?></a>
                        </div>