/**
  * 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 
    }