/** * Returns text with {variables} replaced. * * @param string $string * @param array $additional_replacements * @param array Array of list ID's (needed if {subscriber_count} is set * * @return string $text The text with {variables} replaced. * replaced. */ public static function replace_variables($string, $additional_replacements = array(), $list_ids = array()) { // replace general vars $replacements = array('{ip}' => self::get_client_ip(), '{current_url}' => self::get_current_url(), '{date}' => date('m/d/Y'), '{time}' => date('H:i:s'), '{language}' => defined('ICL_LANGUAGE_CODE') ? ICL_LANGUAGE_CODE : get_locale(), '{email}' => self::get_known_email(), '{user_email}' => '', '{user_firstname}' => '', '{user_lastname}' => '', '{user_name}' => '', '{user_id}' => ''); // setup replacements for logged-in users if (is_user_logged_in() && ($user = wp_get_current_user()) && $user instanceof WP_User) { // logged in user, replace vars by user vars $replacements['{user_email}'] = $user->user_email; $replacements['{user_firstname}'] = $user->first_name; $replacements['{user_lastname}'] = $user->last_name; $replacements['{user_name}'] = $user->display_name; $replacements['{user_id}'] = $user->ID; } // merge with additional replacements $replacements = array_merge($replacements, $additional_replacements); // subscriber count? only fetch these if the tag is actually used if (stristr($string, '{subscriber_count}') !== false) { $subscriber_count = MC4WP_MailChimp_Tools::get_subscriber_count($list_ids); $replacements['{subscriber_count}'] = $subscriber_count; } // perform the replacement $string = str_ireplace(array_keys($replacements), array_values($replacements), $string); // replace dynamic variables if (stristr($string, '{data_') !== false) { $string = preg_replace_callback('/\\{data_([^}]+)\\}/', array('MC4WP_Tools', 'replace_request_data_variables'), $string); } return $string; }
/** * @param string $list_id * * @return MC4WP_MailChimp_List */ public static function make($list_id) { return MC4WP_MailChimp_Tools::get_list($list_id, false, true); }
/** * Show the forms settings page */ public function show_form_settings() { $opts = mc4wp()->forms->options; $lists = MC4WP_MailChimp_Tools::get_lists(); require MC4WP_PLUGIN_DIR . 'src/views/form-settings.php'; }