function qem_generate_csv() { if (isset($_POST['qem_create_ics'])) { $ics = $_POST['qem_ics']; $filename = $_POST['qem_filename']; header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Type: text/csv'); $fh = fopen("php://output", 'w'); fwrite($fh, $ics); fclose($fh); exit; } if (isset($_POST['qem_download_csv'])) { $event = $_POST['qem_download_form']; $title = $_POST['qem_download_title']; $register = qem_get_stored_register(); $filename = urlencode($title . '.csv'); if (!$title) { $filename = urlencode('default.csv'); } header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Type: text/csv'); $outstream = fopen("php://output", 'w'); $message = get_option('qem_messages_' . $event); if (!is_array($message)) { $message = array(); } $headerrow = array(); if ($register['usename']) { array_push($headerrow, $register['yourname']); } if ($register['usemail']) { array_push($headerrow, $register['youremail']); } if ($register['usetelephone']) { array_push($headerrow, $register['yourtelephone']); } if ($register['useplaces']) { array_push($headerrow, $register['yourplaces']); } if ($register['usemorenames']) { array_push($headerrow, $register['morenames']); } if ($register['usemessage']) { array_push($headerrow, $register['yourmessage']); } if ($register['useblank1']) { array_push($headerrow, $register['yourblank1']); } if ($register['useblank2']) { array_push($headerrow, $register['yourblank2']); } if ($register['usedropdown']) { array_push($headerrow, $register['yourdropdown']); } if ($register['useselector']) { array_push($headerrow, $register['yourselector']); } if ($register['usenumber1']) { array_push($headerrow, $register['yournumber1']); } array_push($headerrow, 'Date Sent'); fputcsv($outstream, $headerrow, ',', '"'); foreach ($message as $value) { $cells = array(); if ($register['usename']) { array_push($cells, $value['yourname']); } if ($register['usemail']) { array_push($cells, $value['youremail']); } if ($register['usetelephone']) { array_push($cells, $value['yourtelephone']); } if ($register['useplaces']) { array_push($cells, $value['yourplaces']); } if ($register['usemorenames']) { array_push($cells, $value['morenames']); } if ($register['usemessage']) { array_push($cells, $value['yourmessage']); } if ($register['useblank1']) { array_push($cells, $value['yourblank1']); } if ($register['useblank2']) { array_push($cells, $value['yourblank2']); } if ($register['usedropdown']) { array_push($cells, $value['yourdropdown']); } if ($register['useselector']) { array_push($cells, $value['yourselector']); } if ($register['usenumber1']) { array_push($cells, $value['yournumber1']); } array_push($cells, $value['sentdate']); fputcsv($outstream, $cells, ',', '"'); } fclose($outstream); exit; } }
function qem_register() { $processpercent = $processfixed = $qem_apikey = ''; if (isset($_POST['Submit']) && check_admin_referer("save_qem")) { $options = array('useform', 'formwidth', 'notarchive', 'useqpp', 'usename', 'usemail', 'usetelephone', 'useplaces', 'usemessage', 'useattend', 'usecaptcha', 'useblank1', 'useblank2', 'usedropdown', 'useselector', 'usenumber1', 'reqname', 'reqmail', 'reqtelephone', 'reqmessage', 'reqblank1', 'reqblank2', 'reqdropdown', 'reqnumber1', 'formborder', 'sendemail', 'subject', 'subjecttitle', 'subjectdate', 'title', 'blurb', 'yourname', 'youremail', 'yourtelephone', 'yourplaces', 'yourmessage', 'yourcaptcha', 'yourattend', 'yourblank1', 'yourblank2', 'yourdropdown', 'yourselector', 'yournumber1', 'useaddinfo', 'addinfo', 'qemsubmit', 'error', 'replytitle', 'replyblurb', 'whoscoming', 'whosavatar', 'whoscomingmessage', 'placesbefore', 'placesafter', 'eventfull', 'eventfullmessage', 'eventlist', 'showuser', 'linkback', 'usecopy', 'copyblurb', 'alreadyregistered', 'useread_more', 'read_more', 'sort', 'registeredusers', 'paypal', 'qempaypalsubmit', 'numberattending', 'numberattendingbefore', 'numberattendingafter', 'allowmultiple', 'nameremoved', 'checkremoval', 'allowtags', 'useterms', 'termslabel', 'termsurl', 'termstarget', 'ontheright', 'usemorenames', 'morenames'); foreach ($options as $item) { $register[$item] = stripslashes($_POST[$item]); if ($_POST['allowtags']) { $register[$item] = strip_tags($register[$item], '<p><b><a><em><i><strong>'); } else { $register[$item] = filter_var($register[$item], FILTER_SANITIZE_STRING); } } update_option('qem_register', $register); qem_create_css_file('update'); qem_admin_notice(__('The registration form settings have been updated', 'quick-event-manager')); } if (isset($_POST['Reset']) && check_admin_referer("save_qem")) { delete_option('qem_register'); qem_admin_notice(__('The registration form settings have been reset', 'quick-event-manager')); } if (isset($_POST['Validate']) && check_admin_referer("save_qem")) { $apikey = $_POST['qem_apikey']; $blogurl = get_site_url(); $akismet = new qem_akismet($blogurl, $apikey); if ($akismet->isKeyValid()) { qem_admin_notice("Valid Akismet API Key. All messages will now be checked against the Akismet database."); update_option('qem-akismet', $apikey); } else { qem_admin_notice("Your Akismet API Key is not Valid"); } } if (isset($_POST['Delete']) && check_admin_referer("save_qem")) { delete_option('qem-akismet'); qem_admin_notice("Akismet validation is no longer active on the Quick Event Manager"); } $register = qem_get_stored_register(); $content = '<div class="qem-settings"><div class="qem-options"> <form id="" method="post" action=""> <table width="100%"> <tr> <td colspan="3"><h2>' . __('General Settings', 'quick-event-manager') . '</h2></td></tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useform"' . $register['useform'] . ' value="checked" /></td> <td colspan="2">' . __('Add a registration form to ALL your events', 'quick-event-manager') . '<br> <span class="description">' . __('To add a registration form to individual events use the event editor', 'quick-event-manager') . '.</span></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="formborder"' . $register['formborder'] . ' value="checked" /></td> <td colspan="2">' . __('Add a border to the form', 'quick-event-manager') . '</td> </tr> <tr> <td></td> <td colspan="2">' . __('Form Width', 'quick-event-manager') . '<input type="text" style="width:4em" name="formwidth" value="' . $register['formwidth'] . '" /> use px, em or %. Default is px.</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="ontheright"' . $register['ontheright'] . ' value="checked" /></td> <td colspan="2">' . __('Display the registration form on the right below the event image and map (if used)', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="notarchive" ' . $register['notarchive'] . ' value="checked" /></td> <td colspan="2">' . __('Do not display registration form on old events', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="showuser" ' . $register['showuser'] . ' value="checked" /></td> <td colspan="2">' . __('Pre-fill user name if logged in', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="registeredusers" ' . $register['registeredusers'] . ' value="checked" /></td> <td colspan="2">' . __('Only users who have logged in can register', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="allowmultiple" ' . $register['allowmultiple'] . ' value="checked" /></td> <td colspan="2">' . __('Allow multiple registrations', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventfull" ' . $register['eventfull'] . ' value="checked" /></td> <td colspan="2">' . __('Hide registration form when event is full', 'quick-event-manager') . '</td> </tr> <tr> <td></td> <td>' . __('Message to display', 'quick-event-manager') . ':</td> <td><input type="text" style="" name="eventfullmessage" value="' . $register['eventfullmessage'] . '" /></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="allowtags"' . $register['allowtags'] . ' value="cheFcked" /></td> <td colspan="2">' . __('Allow HTML tags', 'quick-event-manager') . ' ' . __('Warning: this may leave your site open to CSRF and XSS attacks so be careful.', 'quick-event-manager') . '</td> </tr> <td colspan="3"><h2>' . __('Notifications', 'quick-event-manager') . '</h2></td> <tr> <td colspan="2">' . __('Your Email Address', 'quick-event-manager') . '</td> <td><input type="text" style="" name="sendemail" value="' . $register['sendemail'] . '" /><br><span class="description">' . __('This is where registration notifications will be sent', 'quick-event-manager') . '</span></td> </tr> <tr> <td colspan="3"><h2>' . __('Registration Form', 'quick-event-manager') . '</h2></td> </tr> <tr> <td colspan="2">' . __('Form title', 'quick-event-manager') . '</td> <td><input type="text" style="" name="title" value="' . $register['title'] . '" /></td> </tr> <tr> <td colspan="2">' . __('Form blurb', 'quick-event-manager') . '</td> <td><input type="text" style="" name="blurb" value="' . $register['blurb'] . '" /></td> </tr> <td colspan="2">' . __('Submit Button', 'quick-event-manager') . '</td> <td><input type="text" style="" name="qemsubmit" value="' . $register['qemsubmit'] . '" /></td> </tr> </table> <p>' . __('Check those fields you want to use. Drag and drop to change the order', 'quick-event-manager') . '.</p> <style>table#sorting{width:100%;} #sorting tbody tr{outline: 1px solid #888;background:#E0E0E0;} #sorting tbody td{padding: 2px;vertical-align:middle;} #sorting{border-collapse:separate;border-spacing:0 5px;}</style> <script> jQuery(function() {var qem_rsort = jQuery( "#qem_rsort" ).sortable( {axis: "y",cursor: "move",opacity:0.8,update:function(e,ui) {var order = qem_rsort.sortable("toArray").join();jQuery("#qem_register_sort").val(order);}});}); </script> <table id="sorting"> <thead> <tr> <th width="5%">U</th> <th width="5%">R</th> <th width="20%">' . __('Field', 'quick-event-manager') . '</th> <th>' . __('Label', 'quick-event-manager') . '</th> </tr> </thead><tbody id="qem_rsort">'; $sort = explode(",", $register['sort']); foreach ($sort as $name) { switch ($name) { case 'field1': $use = 'usename'; $req = 'reqname'; $label = __('Name', 'quick-event-manager'); $input = 'yourname'; break; case 'field2': $use = 'usemail'; $req = 'reqmail'; $label = __('Email', 'quick-event-manager'); $input = 'youremail'; break; case 'field3': $use = 'useattend'; $req = ''; $label = __('Not Attending', 'quick-event-manager'); $input = 'yourattend'; break; case 'field4': $use = 'usetelephone'; $req = 'reqtelephone'; $label = __('Telephone', 'quick-event-manager'); $input = 'yourtelephone'; break; case 'field5': $use = 'useplaces'; $req = ''; $label = __('Places', 'quick-event-manager'); $input = 'yourplaces'; break; case 'field6': $use = 'usemessage'; $req = 'reqmessage'; $label = __('Message', 'quick-event-manager'); $input = 'yourmessage'; break; case 'field7': $use = 'usecaptcha'; $req = ''; $label = __('Captcha', 'quick-event-manager'); $input = 'Displays a simple maths captcha to confuse the spammers.'; break; case 'field8': $use = 'usecopy'; $req = ''; $label = __('Copy Message', 'quick-event-manager'); $input = 'copyblurb'; break; case 'field9': $use = 'useblank1'; $req = 'reqblank1'; $label = __('User defined', 'quick-event-manager'); $input = 'yourblank1'; break; case 'field10': $use = 'useblank2'; $req = 'reqblank2'; $label = __('User defined', 'quick-event-manager'); $input = 'yourblank2'; break; case 'field11': $use = 'usedropdown'; $req = ''; $label = __('Dropdown', 'quick-event-manager'); $input = 'yourdropdown'; break; case 'field12': $use = 'usenumber1'; $req = 'reqnumber1'; $label = __('Number', 'quick-event-manager'); $input = 'yournumber1'; break; case 'field13': $use = 'useaddinfo'; $req = ''; $label = __('Additional Info (displays as plain text)', 'quick-event-manager'); $input = 'addinfo'; break; case 'field14': $use = 'useselector'; $req = ''; $label = __('Dropdown', 'quick-event-manager'); $input = 'yourselector'; break; } $content .= '<tr id="' . $name . '"> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="' . $use . '" ' . $register[$use] . ' value="checked" /></td> <td width="5%">'; if ($req) { $content .= '<input type="checkbox" style="margin:0; padding: 0; border: none" name="' . $req . '" ' . $register[$req] . ' value="checked" />'; } $content .= '</td><td width="20%">' . $label . '</td><td>'; if ($name == 'field7') { $content .= $input; } else { $content .= '<input type="text" style="padding:1px;border: 1px solid #343838;" name="' . $input . '" value="' . $register[$input] . '" />'; } $content .= '</td></tr>'; } $content .= '</tbody> </table> <input type="hidden" id="qem_register_sort" name="sort" value="' . $register['sort'] . '" /> <table> <td colspan="3"><h2>' . __('Show box for more names', 'quick-event-manager') . '</h2></td> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="usemorenames" ' . $register['usemorenames'] . ' value="checked" /></td> <td colspan="2">' . __('Show box to add more names if number attending is greater than 1') . '</td> </tr> <tr> <td></td> <td>' . __('More names label', 'quick-event-manager') . '</td> <td><input type="text" style="" name="morenames" value="' . $register['morenames'] . '" /></td> </tr> <tr> <td colspan="3"><h2>' . __('Terms and Conditions', 'quick-event-manager') . '</h2></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useterms" ' . $register['useterms'] . ' value="checked" /> </td> <td colspan="2">' . __('Include Terms and Conditions checkbox') . '</td> </tr> <tr> <td></td> <td>' . __('T&C label', 'quick-event-manager') . '</td> <td><input type="text" style="" name="termslabel" value="' . $register['termslabel'] . '" /></td> </tr> <tr> <td></td> <td>' . __('T&C URL', 'quick-event-manager') . '</td> <td><input type="text" style="" name="termsurl" value="' . $register['termsurl'] . '" /></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="termstarget" ' . $register['termstarget'] . ' value="checked" /></td> <td colspan="2">' . __('Open link in new Tab/Window') . '</td> </tr> <tr> <td colspan="3"><h2>' . __('Error and Thank-you messages', 'quick-event-manager') . '</h2></td> </tr> <tr> <td colspan="2">' . __('Thank you message title', 'quick-event-manager') . '</td> <td><input type="text" style="" name="replytitle" value="' . $register['replytitle'] . '" /></td> </tr> <tr> <td colspan="2">' . __('Thank you message blurb', 'quick-event-manager') . '</td> <td><textarea style="width:100%;height:100px;" name="replyblurb">' . $register['replyblurb'] . '</textarea></td> </tr> <tr> <td colspan="2">' . __('Error Message', 'quick-event-manager') . '</td> <td><input type="text" style="" name="error" value="' . $register['error'] . '" /></td> </tr> <tr> <td colspan="2">' . __('Already Registered', 'quick-event-manager') . '</td> <td><input type="text" style="" name="alreadyregistered" value="' . $register['alreadyregistered'] . '" /></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="checkremoval" ' . $register['checkremoval'] . ' value="checked" /></td> <td colspan="2">' . __('Use \'Not Attending\' option to allow people to remove their names from the list', 'quick-event-manager') . '</td> </tr> <tr> <td></td> <td>' . __('Name Removed Message', 'quick-event-manager') . '</td> <td><input type="text" style="" name="nameremoved" value="' . $register['nameremoved'] . '" /></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="useread_more"' . $register['useread_more'] . ' value="checked" /></td> <td colspan="2">' . __('Display a \'return to event\' message after registration', 'quick-event-manager') . '</td> </tr> <tr> <td></td> <td>' . __('Return to event message:', 'quick-event-manager') . '</td> <td><input type="text" style="width:100%;" label="read_more" name="read_more" value="' . $register['read_more'] . '" /></td> </tr> <tr> <td colspan="3"><h2>' . __('Confirmation Email', 'quick-event-manager') . '</h2></td> </tr> <tr> <td colspan="3">You can reply to the sender using the <a href="?page=quick-event-manager/settings.php&tab=auto">Auto Responder</a>.</td> </tr> <tr> <td colspan="3"><h2>' . __('Show Attendees', 'quick-event-manager') . '</h2></td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="whoscoming" ' . $register['whoscoming'] . ' value="checked" /></td> <td colspan="2">' . __('List attendees', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="whosavatar" ' . $register['whosavatar'] . ' value="checked" /></td> <td colspan="2">' . __('Show avatars', 'quick-event-manager') . '</td> </tr> <tr> <td colspan="2">' . __('Message', 'quick-event-manager') . '</td> <td><input type="text" style="" name="whoscomingmessage" value="' . $register['whoscomingmessage'] . '" /></td> </tr> <tr> <td colspan="3"><h2>' . __('Places Available and Numbers Attending', 'quick-event-manager') . '</h2></td> </tr> <tr> <td colspan="3">' . __('Show how many places are left for an event', 'quick-event-manager') . '. ' . __('Set the number of places in the event editor', 'quick-event-manager') . '.</td> </tr> <tr> <td></td> <td>' . __('Message to display', 'quick-event-manager') . ':</td> <td><input type="text" style="width:40%;" name="placesbefore" value="' . $register['placesbefore'] . '" /> {number} <input type="text" style="width:40%;" name="placesafter" value="' . $register['placesafter'] . '" /> </td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="eventlist" ' . $register['eventlist'] . ' value="checked" /></td> <td colspan="2">' . __('Show places available on event list - this only works if you have selected \'Add an attendee counter to this form\' on the event editor.', 'quick-event-manager') . '</td> </tr> <tr> <td width="5%"><input type="checkbox" style="margin:0; padding: 0; border: none" name="numberattending" ' . $register['numberattending'] . ' value="checked" /></td> <td colspan="2">' . __('Show number of people attending.', 'quick-event-manager') . '</td> </tr> <tr> <td></td><td>' . __('Message to display', 'quick-event-manager') . ':</td> <td><input type="text" style="width:40%; " name="numberattendingbefore" value="' . $register['numberattendingbefore'] . '" /> {number} <input type="text" style="width:40%; " name="numberattendingafter" value="' . $register['numberattendingafter'] . '" /></td> </tr> </table> <p><input type="submit" name="Submit" class="button-primary" style="color: #FFF;" value="' . __('Save Changes', 'quick-event-manager') . '" /> <input type="submit" name="Reset" class="button-primary" style="color: #FFF;" value="' . __('Reset', 'quick-event-manager') . '" onclick="return window.confirm( \'' . __('Are you sure you want to reset the registration form?', 'quick-event-manager') . '\' );"/></p> <h2>' . __('Use Akismet Validation', 'quick-event-manager') . '</h2> <p>' . __('Enter your API Key to check all messages against the Akismet database.', 'quick-event-manager') . '</p> <p><input type="text" label="akismet" name="qem_apikey" value="' . $qem_apikey . '" /></p> <p><input type="submit" name="Validate" class="button-primary" style="color: #FFF;" value="Activate Akismet Validation" /> <input type="submit" name="Delete" class="button-secondary" value="Deactivate Aksimet Validation" onclick="return window.confirm( \'This will delete the Akismet Key.\\nAre you sure you want to do this?\' );"/></p>'; $content .= wp_nonce_field("save_qem"); $content .= '</form> </div> <div class="qem-options" style="float:right"> <h2>' . __('Example form', 'quick-event-manager') . '</h2> <p>' . __('This is an example of the form. When it appears on your site it will use your theme styles.', 'quick-event-manager') . '</p>'; $content .= qem_loop(); $content .= '</div></div>'; echo $content; }
function qem_get_stored_autoresponder() { $auto = get_option('qem_autoresponder'); if (!is_array($auto)) { $register = qem_get_stored_register(); $fromemail = $register['sendemail']; if (empty($fromemail)) { global $current_user; get_currentuserinfo(); $fromemail = $current_user->user_email; } $title = get_bloginfo('name'); if ($register['sendcopy']) { if (!$register['emailmessage']) { $register['emailmessage'] = $register['replytitle'] . ' ' . $register['replyblurb']; } $auto = array('enable' => $register['sendcopy'], 'subject' => $register['subject'], 'subjecttitle' => $register['subjecttitle'], 'subjectdate' => $register['subjectdate'], 'message' => $register['emailmessage'], 'useeventdetails' => $register['useeventdetails'], 'eventdetailsblurb' => $register['eventdetailsblurb'], 'useregistrationdetails' => $register['useregistrationdetails'], 'registrationdetailsblurb' => $register['registrationdetailsblurb'], 'fromname' => $title, 'fromemail' => $fromemail, 'permalink' => $register['permalink']); $register['sendcopy'] = ''; update_option('qem_register', $register); update_option('qem_autoresponder', $auto); } else { $auto = array('enable' => '', 'subject' => 'You have registered for ', 'subjecttitle' => 'checked', 'subjectdate' => '', 'message' => 'Thank you for registering, we will be in contact soon. If you have any questions please reply to this email.', 'useeventdetails' => '', 'eventdetailsblurb' => __('Event Details', 'quick-event-manager'), 'useregistrationdetails' => 'checked', 'registrationdetailsblurb' => __('Your registration details', 'quick-event-manager'), 'sendcopy' => 'checked', 'fromname' => $title, 'fromemail' => $fromemail, 'permalink' => ''); } } return $auto; }
function event_details_meta() { global $post; $event = event_get_stored_options(); $register = qem_get_stored_register(); $payment = qem_get_stored_payment(); $display = event_get_stored_display(); $eventdate = get_event_field('event_date'); if (empty($eventdate)) { $eventdate = time(); } $date = date("d M Y", $eventdate); $localdate = date_i18n("d M Y", $eventdate); $eventenddate = get_event_field('event_end_date'); if ($eventenddate) { $enddate = date("d M Y", $eventenddate); $localenddate = date_i18n("d M Y", $eventenddate); } if ($register['useform'] && !get_event_field("event_register")) { $useform = 'checked'; } else { $useform = get_event_field("event_register"); } $usepaypal = ''; if ($register['paypal'] && !get_event_field('event_date') || get_event_field('event_paypal') == 'checked') { $usepaypal = 'checked'; } $output .= '<p><em>' . __('Empty fields are not displayed', 'quick-event-manager') . ' ' . __('See the plugin', 'quick-event-manager') . ' <a href="options-general.php?page=quick-event-manager/settings.php">' . __('settings', 'quick-event-manager') . '</a> ' . __('page for options', 'quick-event-manager') . '.</em></p> <p>Event ID: ' . $post->ID . '</p> <table width="100%"> <tr> <td width="20%"><label>' . __('Date', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" id="qemdate" name="event_date" value="' . $date . '" /> <em>' . __('Local date', 'quick-event-manager') . ': ' . $localdate . '</em>.</td> <script type="text/javascript">jQuery(document).ready(function() {jQuery(\'#qemdate\').datepicker({dateFormat : \'dd M yy\'});});</script> </tr> <tr> <td width="20%"><label>' . __('End Date', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" id="qemenddate" name="event_end_date" value="' . $enddate . '" /> <em>' . __('Leave blank for one day events', 'quick-event-manager') . '.</em>'; if ($eventenddate) { $output .= ' <em>' . __('Current end date', 'quick-event-manager') . ': ' . $localenddate . '</em>'; } $output .= '</td> <script type="text/javascript">jQuery(document).ready(function() {jQuery(\'#qemenddate\').datepicker({dateFormat : \'dd M yy\'});});</script> </tr> <tr> <td width="20%"><label>' . __('Short Description', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_desc" value="' . get_event_field("event_desc") . '" /> </td> </tr> <tr> <td width="20%"><label>' . __('Time', 'quick-event-manager') . '</label></td> <td width="80%">' . $event['start_label'] . ' <input type="text" class="qem_input" style="border:1px solid #415063;" name="event_start" value="' . get_event_field("event_start") . '" /> ' . $event['finish_label'] . ' <input type="text" style="width:40%;overflow:hidden;border:1px solid #415063;" name="event_finish" value="' . get_event_field("event_finish") . '" /><br> <span class="description">Start times in the format 8.23 am/pm, 8.23, 8:23 and 08:23 will be used to order events by time and date. All other formats will display but won\'t contribute to the event ordering.</span> </td> </tr>'; if ($display['usetimezone']) { $tz = get_event_field("selected_timezone"); ${$tz} = 'selected'; $output .= '<tr> <td width="20%"><label>' . __('Timezone', 'quick-event-manager') . ': </label></td> <td width="80%">'; if (get_event_field("event_timezone")) { $output .= '<b>Current timezone:</b> ' . get_event_field("event_timezone") . '. '; } $output .= 'Select a new timezone or enter your own:<br> <select style="border:1px solid #415063;" name="event_timezone" id="event_timezone"> <option value="">None</option> <option ' . $Eni . ' value="Eniwetok, Kwajalein">(GMT -12:00) Eniwetok, Kwajalein</option> <option ' . $Mid . ' value="Midway Island, Samoa">(GMT -11:00) Midway Island, Samoa</option> <option ' . $Hwa . ' value="Hawaii">(GMT -10:00) Hawaii</option> <option ' . $Ala . ' value="Alaska">(GMT -9:00) Alaska</option> <option ' . $Pac . ' value="Pacific Time (US & Canada)">(GMT -8:00) Pacific Time (US & Canada)</option> <option ' . $Mou . ' value="Mountain Time (US & Canada)">(GMT -7:00) Mountain Time (US & Canada)</option> <option ' . $Cen . ' value="Central Time (US & Canada), Mexico City">(GMT -6:00) Central Time (US & Canada), Mexico City</option> <option ' . $Eas . ' value="Eastern Time (US & Canada), Bogota, Lima">(GMT -5:00) Eastern Time (US & Canada), Bogota, Lima</option> <option ' . $Atl . ' value="Atlantic Time (Canada), Caracas, La Paz">(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz</option> <option ' . $New . ' value="Newfoundland">(GMT -3:30) Newfoundland</option> <option ' . $Bra . ' value="Brazil, Buenos Aires, Georgetown">(GMT -3:00) Brazil, Buenos Aires, Georgetown</option> <option ' . $Mia . ' value="Mid-Atlantic">(GMT -2:00) Mid-Atlantic</option> <option ' . $Azo . ' value="Azores, Cape Verde Islands">(GMT -1:00 hour) Azores, Cape Verde Islands</option> <option ' . $Wes . ' value="Western Europe Time, London, Lisbon, Casablanca">(GMT) Western Europe Time, London, Lisbon, Casablanca</option> <option ' . $Bru . ' value="Brussels, Copenhagen, Madrid, Paris">(GMT +1:00 hour) Brussels, Copenhagen, Madrid, Paris</option> <option ' . $Kal . ' value="Kaliningrad, South Africa">(GMT +2:00) Kaliningrad, South Africa</option> <option ' . $Bag . ' value="Baghdad, Riyadh, Moscow, St. Petersburg">(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg</option> <option ' . $Teh . ' value="Tehran">(GMT +3:30) Tehran</option> <option ' . $Abu . ' value="Abu Dhabi, Muscat, Baku, Tbilisi">(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi</option> <option ' . $Kab . ' value="Kabul">(GMT +4:30) Kabul</option> <option ' . $Eka . ' value="Ekaterinburg, Islamabad, Karachi, Tashkent">(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent</option> <option ' . $Bom . ' value="Bombay, Calcutta, Madras, New Delhi">(GMT +5:30) Bombay, Calcutta, Madras, New Delhi</option> <option ' . $Kat . ' value="Kathmandu">(GMT +5:45) Kathmandu</option> <option ' . $Alm . ' value="Almaty, Dhaka, Colombo">(GMT +6:00) Almaty, Dhaka, Colombo</option> <option ' . $Ban . ' value="Bangkok, Hanoi, Jakarta">(GMT +7:00) Bangkok, Hanoi, Jakarta</option> <option ' . $Bei . ' value="Beijing, Perth, Singapore, Hong Kong">(GMT +8:00) Beijing, Perth, Singapore, Hong Kong</option> <option ' . $Tok . ' value="Tokyo, Seoul, Osaka, Sapporo, Yakutsk">(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk</option> <option ' . $Ade . ' value="Adelaide, Darwin">(GMT +9:30) Adelaide, Darwin</option> <option ' . $Aus . ' value="Eastern Australia, Guam, Vladivostok">(GMT +10:00) Eastern Australia, Guam, Vladivostok</option> <option ' . $Mag . ' value="Magadan, Solomon Islands, New Caledonia">(GMT +11:00) Magadan, Solomon Islands, New Caledonia</option> <option ' . $Auk . ' value="Auckland, Wellington, Fiji, Kamchatka">(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka</option> </select> <br><span class="description">The option to display timezones is set on the <a href="options-general.php?page=quick-event-manager/settings.php&tab=display">Event Display</a> page.</span> </td> </tr>'; } $output .= ' <tr> <td width="20%"><label>' . __('Venue', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_location" value="' . get_event_field("event_location") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Address', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_address" value="' . get_event_field("event_address") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Website', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" name="event_link" value="' . get_event_field("event_link") . '" /><label> ' . __('Display As', 'quick-event-manager') . ': </label><input type="text" style="width:40%;overflow:hidden;border:1px solid #415063;" name="event_anchor" value="' . get_event_field("event_anchor") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Cost', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_cost" value="' . get_event_field("event_cost") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Organiser', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_organiser" value="' . get_event_field("event_organiser") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Organiser Contact Details', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_telephone" value="' . get_event_field("event_telephone") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Registration Form', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="checkbox" style="" name="event_register" value="checked" ' . $useform . '> Add registration form to this event. <a href="options-general.php?page=quick-event-manager/settings.php&tab=register">Registration form settings</a><br> <span class="description">If you are using the <a href="options-general.php?page=quick-event-manager/settings.php&tab=auto">autoresponder</a> you can create a reply message for this event. See the \'Registration Confirmation Message\' at the bottom of this page.</span></td> </tr> <tr> <td width="20%"><label>' . __('Redirect to a URL after registration', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="text" class="qem_input" style="border:1px solid #415063;" name="event_redirect" value="' . get_event_field("event_redirect") . '" /><br> <input type="checkbox" style="" name="event_redirect_id" value="checked" ' . get_event_field("event_redirect_id") . ' /> Add event ID to redirect URL<td> </tr> <tr> <td width="20%"><label>' . __('Event Counter', 'quick-event-manager') . ': </label></td> <td><input type="checkbox" style="" name="event_counter" value="checked" ' . get_event_field("event_counter") . '> Add an attendee counter to this form. Number of places available: <input type="text" class="qem_input" style="width:3em;border:1px solid #415063;" name="event_number" value="' . get_event_field("event_number") . '" /></td> </tr> <tr> <td width="20%"><label>' . __('Payment', 'quick-event-manager') . ': </label></td> <td><input type="checkbox" name="event_paypal" value="checked" ' . $usepaypal . ' /> Link to paypal after registration. <a href="options-general.php?page=quick-event-manager/settings.php&tab=payment">Payment settings</a>.</td> </tr> <tr> <td width="20%"><label>' . __('Hide Event', 'quick-event-manager') . ': </label></td> <td width="80%"><input type="checkbox" style="" name="hide_event" value="checked" ' . get_event_field("hide_event") . '> Hide this event in the event list (only display on the calendar).</td> </tr> <tr> <td width="20%"><label>' . __('Event Image', 'quick-event-manager') . ': </label></td> <td><input id="event_image" type="text" class="qem_input" style="border:1px solid #415063;" name="event_image" value="' . get_event_field("event_image") . '" /> <input id="upload_event_image" class="button" type="button" value="Upload Image" /></td> </tr>'; if (get_event_field("event_image")) { $output .= '<tr> <td></td> <td><img class="qem-image" src=' . get_event_field("event_image") . '></td> </tr>'; } $output .= '<tr> <td style="vertical-align:top"><label>' . __('Repeat Event', 'quick-event-manager') . ': </label></td> <td><span style="color:red;font-weight:bold;">Warning:</span> Only use once or you will get lots of duplicated events<br /> <input style="margin:0; padding:0; border:none" type="radio" name="event_repeat" value="repeatweekly" /> ' . __('Weekly', 'quick-event-manager') . '<br /> <input style="margin:0; padding:0; border:none" type="radio" name="event_repeat" value="repeatmonthly" /> ' . __('Monthly', 'quick-event-manager') . '<br> Number of repetitions: <input type="text" class="qem_input" style="width:3em;border:1px solid #415063;" name="repeatnumber" value="12" /> (maximum 52)</td> </tr>'; $event = get_the_ID(); $title = get_the_title(); $whoscoming = get_option('qem_messages_' . $event); if ($whoscoming) { foreach ($whoscoming as $item) { $event_names .= $item['yourname'] . ', '; } $event_names = substr($event_names, 0, -2); $output .= '<tr> <td>Attendees (names and emails collected from the <a href="options-general.php?page=quick-event-manager/settings.php&tab=register">registration form</a>)</td> <td><input type="text" class="qem_input" style="width:100%;border:1px solid #415063;" name="event_names" value="' . $event_names . '" /></td> </tr> <tr> <td></td> <td><a href="admin.php?page=quick-event-manager/quick-event-messages.php&event=' . $event . '&title=' . $title . '">View Full Registration Details</a></td> <tr>'; } $output .= '</table>'; $output .= wp_nonce_field('qem_nonce', 'save_qem'); echo $output; }
function qem_messages() { $event = $title = ''; global $_GET; $event = isset($_GET["event"]) ? $_GET["event"] : null; $title = isset($_GET["title"]) ? $_GET["title"] : null; $unixtime = get_post_meta($event, 'event_date', true); $date = date_i18n("d M Y", $unixtime); $noregistration = '<p>No event selected</p>'; $register = qem_get_stored_register(); $category = 'All Categories'; if (isset($_POST['qem_reset_message'])) { $event = $_POST['qem_download_form']; $title = get_the_title($event); delete_option('qem_messages_' . $event); delete_option($event); qem_admin_notice('Registrants for ' . $title . ' have been deleted.'); $eventnumber = get_post_meta($event, 'event_number', true); update_option($event . 'places', $eventnumber); } if (isset($_POST['category'])) { $category = $_POST["category"]; } if (isset($_POST['select_event']) || isset($_POST['eventid'])) { $event = $_POST["eventid"]; if ($event) { $unixtime = get_post_meta($event, 'event_date', true); $date = date_i18n("d M Y", $unixtime); $title = get_the_title($event); $noregistration = '<h2>' . $title . ' | ' . $date . '</h2><p>Nobody has registered for ' . $title . ' yet</p>'; } else { $noregistration = '<p>No event selected</p>'; } } if (isset($_POST['changeoptions'])) { $options = array('showevents', 'category'); foreach ($options as $item) { $messageoptions[$item] = stripslashes($_POST[$item]); } $category = $messageoptions['category']; update_option('qem_messageoptions', $messageoptions); } if (isset($_POST['qem_delete_selected'])) { $event = $_POST["qem_download_form"]; $message = get_option('qem_messages_' . $event); $eventnumber = get_option($event . 'places'); $check = get_post_meta($event, 'event_counter', true); for ($i = 0; $i <= 100; $i++) { if ($_POST[$i] == 'checked') { $num = $message[$i]['yourplaces'] ? $message[$i]['yourplaces'] : 1; if ($check) { $eventnumber = $eventnumber + $num; } unset($message[$i]); } } $message = array_values($message); update_option('qem_messages_' . $event, $message); if ($check) { update_option($event . 'places', $eventnumber); } qem_admin_notice('Selected registrations have been deleted.'); } if (isset($_POST['qem_emaillist'])) { $event = $_POST["qem_download_form"]; $title = $_POST["qem_download_title"]; $message = get_option('qem_messages_' . $event); $register = qem_get_stored_register(); $content = ''; $content = qem_build_registration_table($register, $message, '', '', '', ''); global $current_user; get_currentuserinfo(); $qem_email = $current_user->user_email; $headers = "From: {<{$qem_email}>\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=\"utf-8\"\r\n"; wp_mail($qem_email, $title, $content, $headers); qem_admin_notice('Registration list has been sent to ' . $qem_email . '.'); } qem_generate_csv(); $content = $current = $all = ''; $messageoptions = qem_get_stored_msg(); ${$messageoptions}['showevents'] = "checked"; $message = get_option('qem_messages_' . $event); $places = get_option($event . 'places'); $check = get_post_meta($event, 'event_counter', true); if (!is_array($message)) { $message = array(); } $dashboard = '<div class="wrap"> <h1>Event Registation Report</h1> <p><form method="post" action="">' . qem_message_categories($category) . ' ' . qem_get_eventlist($event, $register, $messageoptions, $category) . ' <b>Show:</b> <input style="margin:0; padding:0; border:none;" type="radio" name="showevents" value="all" ' . $all . ' /> All Events <input style="margin:0; padding:0; border:none;" type="radio" name="showevents" value="current" ' . $current . ' /> Current Events <input type="submit" name="changeoptions" class="button-secondary" value="Update options" /> </form> </p> <div id="qem-widget"> <form method="post" id="qem_download_form" action="">'; $content = qem_build_registration_table($register, $message, $check, '', $event); if ($content) { $dashboard .= '<h2>' . $title . ' | ' . $date . '</h2>'; $dashboard .= '<p>Event ID: ' . $event . '</p>'; $dashboard .= $content; $dashboard .= '<input type="hidden" name="qem_download_form" value = "' . $event . '" /> <input type="hidden" name="qem_download_title" value = "' . $title . '" /> <input type="submit" name="qem_download_csv" class="button-primary" value="Export to CSV" /> <input type="submit" name="qem_emaillist" class="button-primary" value="Email List" /> <input type="submit" name="qem_reset_message" class="button-secondary" value="Delete All Registrants" onclick="return window.confirm( \'Are you sure you want to delete all the registrants for ' . $title . '?\' );"/> <input type="submit" name="qem_delete_selected" class="button-secondary" value="Delete Selected" onclick="return window.confirm( \'Are you sure you want to delete the selected registrants?\' );"/> </form>'; } else { $dashboard .= $noregistration; } $dashboard .= '</div></div>'; echo $dashboard; }