if (empty($_REQUEST['subscribe_email']) || fn_validate_email($_REQUEST['subscribe_email']) == false) { fn_set_notification('E', __('error'), __('error_invalid_emails', array('[emails]' => $_REQUEST['subscribe_email']))); } else { // First check if subscriber's email already in the list $subscriber = db_get_row("SELECT * FROM ?:subscribers WHERE email = ?s", $_REQUEST['subscribe_email']); if (empty($subscriber)) { $_data = array('email' => $_REQUEST['subscribe_email'], 'timestamp' => TIME); $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $_data); $subscriber = db_get_row("SELECT * FROM ?:subscribers WHERE subscriber_id = ?i", $subscriber_id); } else { $subscriber_id = $subscriber['subscriber_id']; } // update subscription data. If there is no any registration autoresponders, we set confirmed=1 // so user doesn't need to activate subscription list($lists) = fn_get_mailing_lists(); fn_update_subscriptions($subscriber_id, array_keys($lists), NULL, fn_get_notification_rules(true)); fn_set_notification('N', __('congratulations'), __('text_subscriber_added')); fn_emails_provide_coupon(); /*} else { fn_set_notification('E', __('error'), __('error_email_already_subscribed')); }*/ } } return array(CONTROLLER_STATUS_REDIRECT); } if ($mode == 'unsubscribe') { if (!empty($_REQUEST['key']) && !empty($_REQUEST['list_id']) && !empty($_REQUEST['s_id'])) { if (!empty($_REQUEST['list_id'])) { $num = db_get_field("SELECT COUNT(*) FROM ?:user_mailing_lists WHERE unsubscribe_key = ?s AND list_id = ?i AND subscriber_id = ?i", $_REQUEST['key'], $_REQUEST['list_id'], $_REQUEST['s_id']); if (!empty($num)) { db_query("DELETE FROM ?:user_mailing_lists WHERE unsubscribe_key = ?s AND list_id = ?i AND subscriber_id = ?i", $_REQUEST['key'], $_REQUEST['list_id'], $_REQUEST['s_id']);
*/ use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == "POST") { if ($mode == 'place_order' || $mode == 'subscribe_customer') { $subscriber = db_get_row("SELECT * FROM ?:subscribers WHERE email = ?s", $_SESSION['cart']['user_data']['email']); if (!empty($_REQUEST['mailing_lists']) && !fn_is_empty($_REQUEST['mailing_lists'])) { if (empty($subscriber)) { $_data = array('email' => $_SESSION['cart']['user_data']['email'], 'timestamp' => TIME); $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $_data); } else { $subscriber_id = $subscriber['subscriber_id']; } fn_update_subscriptions($subscriber_id, $_REQUEST['mailing_lists'], NULL, fn_get_notification_rules(true)); } elseif (isset($_REQUEST['mailing_lists'])) { if (!empty($subscriber)) { fn_delete_subscribers($subscriber['subscriber_id']); } } } if ($mode == 'subscribe_customer') { return array(CONTROLLER_STATUS_REDIRECT, 'onestepcheckout.checkout'); } } if ($mode == 'checkout') { $email = db_get_field("SELECT email FROM ?:users WHERE user_id = ?i", $_SESSION['auth']['user_id']); if ((empty($email) || $_SESSION['auth']['user_id'] == 0) && !empty($_SESSION['cart']['user_data']['email'])) { $email = $_SESSION['cart']['user_data']['email']; }
function fn_update_subscriber($subscriber_data, $subscriber_id = 0) { $invalid_emails = array(); if (empty($subscriber_data['list_ids'])) { $subscriber_data['list_ids'] = array(); } if (empty($subscriber_data['mailing_lists'])) { $subscriber_data['mailing_lists'] = array(); } $subscriber_data['list_ids'] = array_filter($subscriber_data['list_ids']); $subscriber_data['mailing_lists'] = array_filter($subscriber_data['mailing_lists']); if (empty($subscriber_id)) { if (!empty($subscriber_data['email'])) { if (db_get_field("SELECT email FROM ?:subscribers WHERE email = ?s", $subscriber_data['email']) == '') { if (fn_validate_email($subscriber_data['email']) == false) { $invalid_emails[] = $subscriber_data['email']; } else { $subscriber_data['timestamp'] = TIME; $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $subscriber_data); } } else { fn_set_notification('W', __('warning'), __('ne_warning_subscr_email_exists', array('[email]' => $subscriber_data['email']))); } } } else { db_query("UPDATE ?:subscribers SET ?u WHERE subscriber_id = ?i", $subscriber_data, $subscriber_id); } fn_update_subscriptions($subscriber_id, $subscriber_data['list_ids'], isset($subscriber_data['confirmed']) ? $subscriber_data['confirmed'] : $subscriber_data['mailing_lists'], fn_get_notification_rules($subscriber_data), $subscriber_data['lang_code']); if (!empty($invalid_emails)) { fn_set_notification('E', __('error'), __('error_invalid_emails', array('[emails]' => implode(', ', $invalid_emails)))); } return $subscriber_id; }
// $Id: checkout.post.php 10278 2010-07-29 13:47:56Z alexions $ // if (!defined('AREA')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == "POST") { if ($mode == 'customer_info' || $mode == 'update_steps' && isset($_REQUEST['update_step']) && $_REQUEST['update_step'] == 'step_one' || $mode == 'add_profile') { $subscriber = db_get_row("SELECT * FROM ?:subscribers WHERE email = ?s", $_REQUEST['user_data']['email']); if (!empty($_REQUEST['mailing_lists']) && !fn_is_empty($_REQUEST['mailing_lists'])) { if (empty($subscriber)) { $_data = array('email' => $_REQUEST['user_data']['email'], 'timestamp' => TIME); $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $_data); } else { $subscriber_id = $subscriber['subscriber_id']; } fn_update_subscriptions($subscriber_id, $_REQUEST['mailing_lists'], $_REQUEST['newsletter_format'], NEWSLETTER_SAVE_UNCHECKED, NULL, fn_get_notification_rules(true)); } else { if (!empty($subscriber)) { fn_delete_subscribers($subscriber['subscriber_id']); } } } return true; } if ($mode == 'checkout' || $mode == 'customer_info') { $view->assign('page_mailing_lists', fn_get_mailing_lists(array('checkout' => true))); $email = db_get_field("SELECT email FROM ?:users WHERE user_id = ?i", $_SESSION['auth']['user_id']); $mailing_lists = db_get_hash_array("SELECT * FROM ?:subscribers INNER JOIN ?:user_mailing_lists ON ?:subscribers.subscriber_id = ?:user_mailing_lists.subscriber_id WHERE ?:subscribers.email = ?s", 'list_id', $email); $view->assign('user_mailing_lists', $mailing_lists); // on customer info page we show only one "format" selectbox. so we take active format from // first active newsletter from this user.
$msg = fn_get_lang_var('error_invalid_emails'); $msg = str_replace('[emails]', implode(", ", $invalid_emails), $msg); fn_set_notification('E', fn_get_lang_var('error'), $msg); } } // mass add from picker if ($mode == 'add_users') { if (!empty($_REQUEST['add_users'])) { $checked_users = array(); $users = db_get_array("SELECT user_id, email, lang_code FROM ?:users WHERE user_id IN (?n)", $_REQUEST['add_users']); foreach ($users as $user) { if (!($subscriber_id = db_get_field("SELECT subscriber_id FROM ?:subscribers WHERE email = ?s", $user['email']))) { $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", array('email' => $user['email'], 'timestamp' => TIME)); } if (!empty($_REQUEST['picker_mailing_list_ids'])) { fn_update_subscriptions($subscriber_id, $_REQUEST['picker_mailing_list_ids'], $_REQUEST['picker_mailing_lists']['format'], NEWSLETTER_ONLY_CHECKED, $_REQUEST['picker_mailing_lists']['confirmed'], fn_get_notification_rules($_REQUEST['picker_mailing_lists']), $user['lang_code']); } } return array(CONTROLLER_STATUS_OK, "subscribers.manage"); } } if ($mode == 'm_update') { foreach ($_REQUEST['subscribers'] as $subscriber_id => $v) { db_query("UPDATE ?:subscribers SET ?u WHERE subscriber_id = ?i", $v, $subscriber_id); if (!empty($v['list_ids'])) { foreach ($v['list_ids'] as $list_id) { $_data = array('confirmed' => $v['mailing_lists'][$list_id]['confirmed'], 'lang_code' => $v['mailing_lists'][$list_id]['lang_code'], 'format' => $v['mailing_lists'][$list_id]['format']); $list_exist = db_get_field('SELECT list_id FROM ?:user_mailing_lists WHERE subscriber_id = ?i AND list_id = ?i', $subscriber_id, $list_id); if (empty($list_exist)) { $_data['subscriber_id'] = $subscriber_id; $_data['list_id'] = $list_id;
function importSubscriberList($list_id) { $this->useDatabase($this->sourceDB); $query = "DELETE FROM subscribers WHERE id = 25 OR id = 41 OR id = 56"; $result = mysqli_query($this->link, $query) or die("Failed to select from: cscart_users" . mysqli_error($this->link, $this->link)); $query = "SELECT email FROM subscribers UNION SELECT email FROM members WHERE subscribe = 1"; $result = mysqli_query($this->link, $query) or die("Failed to select from: cscart_users" . mysqli_error($this->link)); $destLink = mysqli_connect($this->config['db_host'], $this->config['db_user'], $this->config['db_password']) or die('Database connection error. ' . mysqli_error($this->link)); $this->useDatabase($this->destinationDB, $destLink); db_query("TRUNCATE TABLE ?:subscribers"); while ($busenkaSubscriber = mysqli_fetch_array($result, MYSQL_ASSOC)) { $subscriber['timestamp'] = $busenkaSubscriber['date']; $subscriber['email'] = $busenkaSubscriber['email']; $subscriber_id = db_query("INSERT INTO ?:subscribers ?e", $subscriber); // we launch update_subscriptions for each msqiling list to allow different format and lang for each item fn_update_subscriptions($subscriber_id, array($list_id), '2', NEWSLETTER_ONLY_CHECKED, 1); } }