public function expand($str, $filter = false) { return apply_filters('eab-events-rsvp_email-codec-expand', parent::expand($str, $filter), $this->_event); }
/** * 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 ajax_preview_email() { $data = stripslashes_deep($_POST); $event_id = !empty($data['event_id']) ? $data['event_id'] : false; if (!$event_id) { die; } $user = wp_get_current_user(); $codec = new Eab_Macro_Codec($event_id, $user->ID); die('<strong>' . $codec->expand($data['subject'], Eab_Macro_Codec::FILTER_TITLE) . '</strong>' . '<div>' . $codec->expand($data['body'], Eab_Macro_Codec::FILTER_BODY) . '</div>'); }