validate(); if ($dataValidator->valid()) { try { $list = TenCentDao::getContactListByList($dataValidator->data->list->value); TenCentDao::saveSubscriber($dataValidator->data); TenCentEmailer::sendSubscribeEmails($dataValidator->data, $list); // redirect if the redirect_url value is set $mixedMapping = self::getMixedMapping(Utils::toObj($config)); if (!empty($mixedMapping->redirect_url)) { wp_redirect($mixedMapping->redirect_url); //exit; die(); } $listSettings = TenCentDao::getContactListSettings($list->id); $listSuccessContent = $listSettings['subscribe_success_message']; if (!empty($listSuccessContent)) { return $listSuccessContent; } else { return TenCentCss::get() . '

You have successfully submitted your information

'; } } catch (Exception $e) { if (empty($dataValidator->data->additional)) $dataValidator->data->additional = (object)array(); $dataValidator->data->additional->errorMessage = $e->getMessage(); return self::getFormHtml($dataValidator->data); } } else { return self::getFormHtml($dataValidator->data); } } else { $configObj = Utils::toObj($config); $formDataObject = self::getMixedMapping($configObj); if (!empty($formDataObject->list->value) && TenCentDao::contactListExistsByList($formDataObject->list->value)) { return self::getFormHtml($formDataObject); } else { return TenCentCss::get() . '

list is either missing from the short code or the list passed does not exist.
' . 'ex: [tencentmail_subscribe_form list="listname"]

'; } } } public static function setValues() { $formObject = $_SESSION['tcm']; unset($formObject->messages); unset($formObject->additional); foreach ($_POST as $key => $value) { $formObject->$key->value = $value; } $ip = $_SERVER['REMOTE_ADDR']; if ($ip == "::1") { $ip = "0.0.0.0"; } $formObject->ip->value = $ip; $formObject->status->value = Utils::SUBSCRIBED; $formObject->date->value = date('Y-m-d H:i:s'); return $formObject; } public static function getMixedMapping($options) { $baseSubscriptionMapper = SubscriptionMapper::getMapper(); $mixedMapping = self::getBaseMixedMapping($baseSubscriptionMapper); foreach ($options as $property => $value) { if ($value && !empty($baseSubscriptionMapper->$property)) { if ($property != "list" && $value == "true") $mixedMapping->$property = $baseSubscriptionMapper->$property; if ($property == 'list') $mixedMapping->list->value = $value; } if ($property == 'custom_label') { $mixedMapping->custom_field = $baseSubscriptionMapper->custom_field; $mixedMapping->custom_field->label = $value; } if ($property == 'redirect_url') $mixedMapping->redirect_url = $value; } if ($options->double_opt == "true") $mixedMapping->requires_double_opt->value = "true"; return $mixedMapping; } public static function getBaseMixedMapping($baseSubscriptionMapper) { $baseMixed = (object)array(); $baseMixed->email = $baseSubscriptionMapper->email; $baseMixed->list = $baseSubscriptionMapper->list; $baseMixed->ip = $baseSubscriptionMapper->ip; $baseMixed->date = $baseSubscriptionMapper->date; $baseMixed->status = $baseSubscriptionMapper->status; $baseMixed->requires_double_opt = $baseSubscriptionMapper->requires_double_opt; $baseMixed->redirect_url = ""; return $baseMixed; } public static function getFormHtml($config) { $_SESSION['tcm'] = $config; $m = new Mustache(); $list = TenCentDao::getContactListByList($config->list->value); $listSettings = TenCentDao::getContactListSettings($list->id); $buttonText = $listSettings['subscribe_button_text']; if (empty($buttonText)) $buttonText = "Submit"; if (empty($config->additional)) $config->additional = (object)array(); $config->additional->button_text = $buttonText; $config->request_uri = $_SERVER['REQUEST_URI']; $html = $m->render(TenCentSubscribeTmpl::get(), $config); return ' ' . (string)$html; } }