/** * Takes care of the whole newsletter-as-template expansion. */ public function newsletter_from_template($newsletter_id, $event_id) { if (empty($newsletter_id) || empty($event_id)) { return false; } $event = new Eab_EventModel(get_post($event_id)); $data = $this->_newsletter->get_newsletter_data($newsletter_id); if (empty($data)) { return false; } $codec = new Eab_Macro_Codec($event_id, false); $content = false; if (!empty($data['content'])) { $content = $codec->expand($data['content'], Eab_Macro_Codec::FILTER_BODY); } else { $content = $this->_get_default_content($event); } $subject = !empty($data['subject']) ? $data['subject'] : ''; $expanded = $codec->expand($subject, Eab_Macro_Codec::FILTER_TITLE); $subject = !empty($expanded) && $expanded != $subject ? $expanded : (!empty($subject) ? $subject : $this->_get_default_subject($event)); $title = $this->_newsletter->get_newsletter_meta($newsletter_id, 'email_title'); $expanded_title = $codec->expand($title, Eab_Macro_Codec::FILTER_TITLE); $title = !empty($expanded_title) && $expanded_title != $title ? $expanded_title : $title; $data = wp_parse_args(array('newsletter_id' => false, 'subject' => $subject, 'content' => $content), $data); $meta = array('email_title' => $title, 'event_id' => $event_id); $new_id = $this->_duplicate($newsletter_id); if (empty($new_id)) { return false; } $prefix = $this->_get_table_prefix(); $data['newsletter_id'] = $new_id; $this->_db->update("{$prefix}enewsletter_newsletters", $data, array("newsletter_id" => $new_id)); if (!empty($meta)) { foreach ($meta as $key => $value) { $this->_db->update("{$prefix}enewsletter_meta", array('meta_value' => $value), array("email_id" => $new_id, "meta_key" => $key)); } } return $new_id; }
function show_settings() { $tips = new WpmuDev_HelpTooltips(); $tips->set_icon_url(plugins_url('events-and-bookings/img/information.png')); $from = $this->_data->get_option('eab_rsvps-email_non_paid-from'); $subject = $this->_data->get_option('eab_rsvps-email_non_paid-subject'); $body = $this->_data->get_option('eab_rsvps-email_non_paid-body'); $codec = new Eab_Macro_Codec(); $macros = join('</code>, <code>', $codec->get_macros()); $events = Eab_CollectionFactory::get_upcoming_events(eab_current_time(), array('posts_per_page' => 10)); ?> <div id="eab-settings-eab_rsvps_non_paid" class="eab-metabox postbox"> <h3 class="eab-hndle"><?php _e('Reminder Email settings for non paid members', Eab_EventsHub::TEXT_DOMAIN); ?> </h3> <div class="eab-inside"> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-non_paid-from" id="eab_event-eab_rsvps-non_paid-from"><?php _e('Email from:', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <input type="text" size="20" id="eab_event-eab_rsvps-non_paid-from" name="eab_rsvps_non_paid[email-from]" value="<?php echo esc_attr($from); ?> " /> <span><?php echo $tips->add_tip(__('This is the From address for the reminder emails for non paid members', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-non_paid-subject"><?php _e('Email subject', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email subject. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <input type="text" class="widefat" id="eab_event-eab_rsvps-non_paid-subject" name="eab_rsvps_non_paid[email-subject]" value="<?php echo esc_attr($subject); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-non_paid-body"><?php _e('Email body', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email body. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <?php wp_editor($body, 'eab_rsvps-email_non_paid-body', array('name' => 'eab_rsvps-email_non_paid-body')); ?> </div> <div class="eab-settings-settings_item"><small><?php printf(__('You can use these macros in your subject and body: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros); ?> </small></div> <?php if ($events) { ?> <div class="eab-settings-settings_item"> <input type="button" class="button" id="eab_event-eab_rsvps-non_paid-preview" value="<?php esc_attr_e(__('Preview', Eab_EventsHub::TEXT_DOMAIN)); ?> " /> <?php _e('using this event data:', Eab_EventsHub::TEXT_DOMAIN); ?> <select id="eab_event-eab_rsvps-non_paid-events"> <?php foreach ($events as $event) { ?> <option value="<?php echo esc_attr($event->get_id()); ?> "><?php echo $event->get_title(); ?> </option> <?php } ?> </select> <div id="eab_event-eab_rsvp_non_paid-email_preview_container" style="line-height: 1.2em"></div> </div> <?php } ?> </div> </div> <script type="text/javascript"> (function ($) { $(function () { var $container = $("#eab_event-eab_rsvp_non_paid-email_preview_container"), $subject = $("#eab_event-eab_rsvps-non_paid-subject"), $events = $("#eab_event-eab_rsvps-non_paid-events") ; $("#eab_event-eab_rsvps-non_paid-preview").on("click", function () { var body_string = (tinyMCE && tinyMCE.activeEditor ? tinyMCE.activeEditor.getContent() : $("eab_rsvps-email_non_paid-body").val() ); $container.html('<?php echo esc_js(__("Please, hold on... ", Eab_EventsHub::TEXT_DOMAIN)); ?> '); $.post(ajaxurl, { "action": "eab_rsvp_email_non_paid-preview_email", "subject": $subject.val(), "body": body_string, "event_id": $events.val() }, function (data) { $container.html(data); }, 'html'); }); }) })(jQuery); </script> <?php }
public function expand($str, $filter = false) { return apply_filters('eab-events-rsvp_email-codec-expand', parent::expand($str, $filter), $this->_event); }
function show_settings() { $tips = new WpmuDev_HelpTooltips(); $tips->set_icon_url(plugins_url('events-and-bookings/img/information.png')); $from = $this->_data->get_option('eab_cancelations-email-from'); $from = $from ? $from : get_option('admin_email'); $subject = trim($this->_data->get_option('eab_cancelations-email-subject')); $subject = !empty($subject) ? $subject : $this->_default_subject; $body = trim($this->_data->get_option('eab_cancelations-email-body')); $body = !empty($body) ? $body : $this->_default_message; $codec = new Eab_Macro_Codec(); $macros = join('</code>, <code>', $codec->get_macros()); $events = Eab_CollectionFactory::get_upcoming_events(eab_current_time(), array('posts_per_page' => 10)); ?> <div id="eab-settings-eab_cancelations" class="eab-metabox postbox"> <h3 class="eab-hndle"><?php _e('Event cancellation settings', Eab_EventsHub::TEXT_DOMAIN); ?> </h3> <div class="eab-inside"> <div class="eab-settings-settings_item"> <label for="eab_cancellations-hide_events"><?php _e('Hide cancelled events', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <input type="hidden" name="eab_cancelations[hide_events]" value="" /> <input type="checkbox" name="eab_cancelations[hide_events]" id="eab_cancellations-hide_events" value="1" <?php checked(true, $this->_data->get_option('eab_cancelations-hide_events')); ?> /> </div> <div class="eab-settings-settings_item"> <label for="eab_cancellations-email_batch_limit"><?php _e('Email batch limit', Eab_EventsHub::TEXT_DOMAIN); ?> :</label> <span><?php echo $tips->add_tip(__('This is the maximum number of emails that will be sent in one go. The rest will be scheduled for sending.', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> <input type="text" name="eab_cancelations[email_batch_limit]" id="eab_cancellations-email_batch_limit" value="<?php echo (int) $this->_get_email_batch_limit(); ?> " /> </div> <div class="eab-note"> <?php _e('This is the email that will be sent to your attendees on event cancellation.', Eab_EventsHub::TEXT_DOMAIN); ?> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-from"><?php _e('From email address', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(__('This is the address the cancellation email will be sent from', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> <input type="text" id="eab_event-eab_cancelations-from" name="eab_cancelations[email-from]" value="<?php esc_attr_e($from); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-subject"><?php _e('Email subject', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email subject. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <input type="text" class="widefat" id="eab_event-eab_cancelations-subject" name="eab_cancelations[email-subject]" value="<?php esc_attr_e($subject); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-body"><?php _e('Email body', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email body. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <?php wp_editor($body, 'eab_cancelations-email-body', array('name' => 'eab_cancelations-email-body')); ?> </div> <div class="eab-settings-settings_item"><small><?php printf(__('You can use these macros in your subject and body: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros); ?> </small></div> <?php if ($events) { ?> <div class="eab-settings-settings_item"> <input type="button" class="button" id="eab_event-eab_cancelations-preview" value="<?php esc_attr_e(__('Preview', Eab_EventsHub::TEXT_DOMAIN)); ?> " /> <?php _e('using this event data:', Eab_EventsHub::TEXT_DOMAIN); ?> <select id="eab_event-eab_cancelations-events"> <?php foreach ($events as $event) { ?> <option value="<?php esc_attr_e($event->get_id()); ?> "><?php echo $event->get_title(); ?> </option> <?php } ?> </select> <div id="eab_event-eab_cancelations-email_preview_container" style="line-height: 1.2em"></div> </div> <?php } ?> </div> </div> <script type="text/javascript"> (function ($) { $(function () { var $container = $("#eab_event-eab_cancelations-email_preview_container"), $subject = $("#eab_event-eab_cancelations-subject"), $events = $("#eab_event-eab_cancelations-events") ; $("#eab_event-eab_cancelations-preview").on("click", function () { var editor = tinyMCE.get("eab_cancelations-email-body") body_string = (tinyMCE && tinyMCE.activeEditor && tinyMCE.activeEditor.editorId == editor.editorId ? tinyMCE.activeEditor.getContent() : $("#eab_cancelations-email-body").val() ); $container.html('<?php echo esc_js(__("Please, hold on... ", Eab_EventsHub::TEXT_DOMAIN)); ?> '); $.post(ajaxurl, { "action": "eab_cancellation_email-preview_email", "subject": $subject.val(), "body": body_string, "event_id": $events.val() }, function (data) { $container.html(data); }, 'html'); }); }) })(jQuery); </script> <?php }