// --- ST. MARY MEMBERSHIP FORM EMAIL & DATABASE HANDLER (WITH PHOTO UPLOADS) --- // 1. Create a Secure Admin Menu for Membership Submissions add_action('init', 'st_mary_create_membership_post_type'); function st_mary_create_membership_post_type() { register_post_type('membership_entry', array( 'labels' => array( 'name' => 'Membership Forms', 'singular_name' => 'Membership Form', 'menu_name' => 'Membership Forms', 'all_items' => 'All Memberships' ), 'public' => false, 'show_ui' => true, 'menu_position' => 22, 'menu_icon' => 'dashicons-groups', 'supports' => array('title', 'editor') )); } // 2. Process the Form Submission & File Uploads add_action('wp_ajax_st_mary_submit_membership', 'handle_st_mary_membership_form'); add_action('wp_ajax_nopriv_st_mary_submit_membership', 'handle_st_mary_membership_form'); function handle_st_mary_membership_form() { $to = 'edmontonsailitemeheretpr@gmail.com'; // Build the Title / Subject $first_name = isset($_POST['first_name']) ? sanitize_text_field($_POST['first_name']) : ''; $last_name = isset($_POST['last_name']) ? sanitize_text_field($_POST['last_name']) : ''; $subject = 'New Membership Registration - ' . $first_name . ' ' . $last_name; // Build the HTML Table Body $message = ''; $message .= '
'; // Header Banner $message .= '
'; $message .= '

New Membership Form Submitted

'; $message .= '
'; // Table Container $message .= '
'; $message .= ''; // --- PART A: PROCESS FILE UPLOADS FIRST SO THEY SHOW AT THE TOP --- if (!empty($_FILES)) { require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/image.php'); require_once(ABSPATH . 'wp-admin/includes/media.php'); foreach ($_FILES as $file_key => $file_array) { // Only process if a file was actually uploaded without errors if ($file_array['error'] === UPLOAD_ERR_OK) { // Securely upload the file to WordPress Media Library $uploaded_file = wp_handle_upload($file_array, array('test_form' => false)); if (isset($uploaded_file['url'])) { $clean_key = str_replace('_', ' ', $file_key); $clean_key = ucwords($clean_key); $message .= ''; $message .= ''; // Embeds a small thumbnail image and a link to view the full size $message .= ''; } } } } // --- PART B: LOOP THROUGH STANDARD TEXT FIELDS --- foreach ($_POST as $key => $value) { if ($key === 'action' || empty($value)) continue; $clean_key = str_replace('_', ' ', $key); $clean_key = ucwords($clean_key); $clean_value = is_array($value) ? implode(', ', array_map('sanitize_textarea_field', $value)) : sanitize_textarea_field($value); $message .= ''; $message .= ''; $message .= ''; $message .= ''; } $message .= '
' . esc_html($clean_key) . ''; $message .= '[View Full Image]
'; $message .= ''; $message .= '
' . esc_html($clean_key) . '' . nl2br(esc_html($clean_value)) . '
'; $message .= '
'; $message .= ''; // ACTION A: Save securely to the WordPress Database $post_id = wp_insert_post(array( 'post_title' => $subject, 'post_content' => $message, 'post_status' => 'private', 'post_type' => 'membership_entry' )); // ACTION B: Attempt to send the HTML Email $headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail($to, $subject, $message, $headers); if ($post_id) { wp_send_json_success('Form saved successfully'); } else { wp_send_json_error('Form failed to save'); } }
ቀን መቁጠሪያ

ክስተቶች

« Prev

መስከረም / ጥቅምት 2010

Next »
እሑድሰኞማክሰኞረቡዕሐሙስአርብቅዳሜ
፳፩1
፳፪2
፳፫3
፳፬4
፳፭5
፳፮6
፳፯7
፳፰8
፳፱9
፴10
፩11
፪12
፫13
፬14
፭15
፮16
፯17
፰18
፱19
፲20
፲፩21
፲፪22
፲፫23
፲፬24
፲፭25
፲፮26
፲፯27
፲፰28
፲፱29
፳30
፳፩31

የወሩ ክንውኖች ማስታወሻ (መስከረም / ጥቅምት)

በዚህ ወር ምንም ክንውኖች አልተመዘገቡም።

Events

Scroll to Top