/** * Process all variable replacements * * @param array $email_data * @param object $queue_item * @param FUE_Email $email * @return array */ private function process_variable_replacements($email_data, $queue_item = null, $email = null) { if (is_null($queue_item)) { $queue_item = $this->queue; } if (is_null($email)) { $email = $this->email; } // define a constant that WPMandrill can pickup and use later if (!empty($email_data['campaigns'])) { define('FUE_GA_CAMPAIGN', json_encode(array_unique($email_data['campaigns']))); } if (!empty($codes)) { $email_data['store_url'] = add_query_arg($codes, $email_data['store_url']); $email_data['store_url_secure'] = add_query_arg($codes, $email_data['store_url_secure']); $email_data['unsubscribe'] = add_query_arg($codes, $email_data['unsubscribe']); } // default variable replacements $replacements = array('store_url' => $email_data['store_url'], 'store_url_secure' => $email_data['store_url_secure'], 'store_name' => $email_data['store_name'], 'unsubscribe_url' => $email_data['unsubscribe'], 'customer_username' => $email_data['username'], 'customer_first_name' => $email_data['first_name'], 'customer_last_name' => $email_data['last_name'], 'customer_name' => $email_data['cname'], 'customer_email' => $email_data['email_to']); $this->variables->register($replacements); if ($email && $email->type == 'manual') { if (!is_null($queue_item)) { $meta = maybe_unserialize($queue_item->meta); } else { // test email $meta = array('customer_username' => 'johndoe', 'customer_name' => 'John Doe'); } $manual_variables = array('customer_username' => isset($meta['username']) ? $meta['username'] : '', 'customer_name' => !empty($meta['user_name']) ? $meta['user_name'] : ''); $this->variables->register($manual_variables); } $email_data['message'] = do_shortcode($email_data['message']); // allow plugins to register their variables before applying the replacements do_action('fue_before_variable_replacements', $this->variables, $email_data, $email, $queue_item); $email_data['subject'] = $this->variables->apply_replacements($email_data['subject']); $email_data['message'] = $this->variables->apply_replacements($email_data['message']); // look for custom fields $email_data['message'] = preg_replace_callback('|\\{cf ([0-9]+) ([^}]*)\\}|', 'fue_add_custom_fields', $email_data['message']); // look for post id $email_data['message'] = preg_replace_callback('|\\{post_id=([^}]+)\\}|', 'fue_add_post', $email_data['message']); return $email_data; }
/** * Register the coupon_code variable to be replaced * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item */ public function register_variable_replacements($var, $email_data, $email, $queue_item) { $variables = array('coupon_code' => ''); // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); }
/** * Register subscription variables to be replaced * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item */ public function register_variable_replacements($var, $email_data, $email, $queue_item) { $variables = array('subs_renew_date', 'subs_end_date', 'days_to_renew'); // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); }
/** * class constructor * * Setup the variables that are common to all email types * */ public function __construct() { $this->init(); self::$instance = $this; }
/** * Register subscription variables to be replaced * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item */ public function register_variable_replacements($var, $email_data, $email, $queue_item) { $variables = array('event_name', 'event_start_datetime', 'event_end_datetime', 'event_link', 'event_url', 'event_location', 'event_organizer', 'ticket_name', 'ticket_description'); // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); }
/** * Register variables for replacement * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item */ public function register_variable_replacements($var, $email_data, $email, $queue_item) { $variables = array('points_earned', 'reward_event_description'); // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); }
/** * Register subscription variables to be replaced * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item */ public function register_variable_replacements($var, $email_data, $email, $queue_item) { $variables = array('item_category', 'item_name', 'booking_duration', 'booking_date', 'booking_time', 'booking_amount', 'booking_resource', 'booking_persons'); // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); }
/** * Register additional variables to be replaced * * @param FUE_Sending_Email_Variables $var * @param array $email_data * @param FUE_Email $email * @param object $queue_item * * @return void */ public function register_email_variable_replacements($var, $email_data, $email, $queue_item = null) { $variables = $this->get_variables_for_email_type($email->type); if (!empty($variables)) { // use test data if the test flag is set if (isset($email_data['test']) && $email_data['test']) { $variables = $this->add_test_variable_replacements($variables, $email_data, $email); } else { $variables = $this->add_variable_replacements($variables, $email_data, $queue_item, $email); } $var->register($variables); } }