if ($list_id) { cw_header_location("index.php?target={$target}&list_id=" . $list['list_id']); } else { cw_header_location("index.php?target=" . $target); } } if (isset($_GET['list_id'])) { if (!empty($list_id)) { $list = cw_query_first("select * from {$tables['newslists']} WHERE list_id='{$list_id}'"); if ((!isset($vertical_response_data['subscribers'][$list_id]) || empty($vertical_response_data['subscribers'][$list_id])) && $list['avail'] == 0) { if (empty($vertical_response_data['time'])) { $vertical_response_data['time'] = cw_core_get_time(); // lifetime } db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id='{$list_id}'"); $result = cw_vertical_response_get_subscribers($list_id); $vertical_response_data['subscribers'][$list_id] = true; if ($result) { $data = array(); foreach ($result as $item) { $data['list_id'] = $list_id; $data['email'] = addslashes($item['email']); $data['since_date'] = $item['create_date']; cw_array2insert('newslist_subscription', $data); } } } elseif ($list['avail'] == 1 && $list['salesman_customer_id']) { db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id='{$list_id}'"); // search subscribers $saved_search = $list['salesman_customer_id']; // salesman_customer_id is saved search id
/** * Update emails for saved_search list by cron */ function cw_vertical_response_emails_update() { global $tables; $lists = cw_query("\r\n\t\tSELECT list_id, salesman_customer_id FROM {$tables['newslists']}\r\n\t\tWHERE avail = 1 AND show_as_news = 2 AND salesman_customer_id <> 0\r\n\t"); if ($lists) { foreach ($lists as $list) { $list_id = $list['list_id']; db_query("DELETE FROM {$tables['newslist_subscription']} WHERE list_id = '{$list_id}'"); // search subscribers $saved_search = $list['salesman_customer_id']; // salesman_customer_id is saved search id $sql_query = cw_query_first_cell("\r\n\t\t\t\tSELECT sql_query FROM {$tables['saved_search']} WHERE ss_id = '{$saved_search}'\r\n\t\t\t"); $exist_cw = array(); // emails from saved_search if ($sql_query) { $results = cw_query($sql_query); if ($results) { $data = array(); foreach ($results as $result) { $count = cw_query_first_cell("\r\n\t\t\t\t\t\t\tSELECT COUNT(*) FROM {$tables['newslist_subscription']}\r\n\t\t\t\t\t\t\tWHERE list_id='{$list_id}' AND email='" . $result['email'] . "'\r\n\t\t\t\t\t\t"); if ($count < 1) { $exist_cw[] = $result['email']; $data['list_id'] = $list_id; $data['email'] = addslashes($result['email']); $data['since_date'] = cw_core_get_time(); cw_array2insert('newslist_subscription', $data); } } } } // synchronize emails // get emails from vr $exist_vr = array(); $subscribers = cw_vertical_response_get_subscribers($list_id); if ($subscribers) { foreach ($subscribers as $subscriber) { $exist_vr[] = $subscriber['email']; } } // need add $need_add = array_diff($exist_cw, $exist_vr); if ($need_add) { foreach ($need_add as $email) { cw_vertical_response_add_subcriber($list_id, $email); } } // need delete $need_delete = array_diff($exist_vr, $exist_cw); if ($need_delete) { foreach ($need_delete as $email) { cw_vertical_response_delete_subcriber($list_id, $email); } } } } }