관리-도구
편집 파일: optin_control.php
<?php class Optincontrol { var $mysqli; var $dbpref; var $load; function __construct($arr) { $this->mysqli = $arr['mysqli']; $this->dbpref = $arr['dbpref']; $this->load = $arr['load']; } function getOptionForSpecifcPagesforZapier() { $mysqli = $this->mysqli; $pref = $this->dbpref; $table = $pref . "quick_optins"; $qry = $mysqli->query("select `a`.id,`a`.name,`a`.email,`a`.extras,`a`.ipaddr,(select `valid_inputs` from `" . $pref . "quick_pagefunnel` where `id`=`a`.pageid) as `zap_valid_inputs` from `" . $table . "` as `a` where `pageid` in (select `id` from `" . $pref . "quick_pagefunnel` where `settings` like '%\"zapier_enable\":true%') and `send_zap` not in('1') limit 100"); $token = get_option('site_token'); $arr = array(); while ($r = $qry->fetch_assoc()) { $r['id'] += 125; $r['id'] = hash_hmac('sha1', $r['id'], $token); $valid_inputs = explode(",", $r['zap_valid_inputs']); $extras = (array)json_decode($r['extras']); $data_arr = array('id' => $r['id']); foreach ($valid_inputs as $valid_input) { if (in_array($valid_input, array('name', 'email'))) { $data_arr[$valid_input] = $r[$valid_input]; } elseif (isset($extras[$valid_input])) { $data_arr[$valid_input] = $extras[$valid_input]; } } array_push($arr, json_encode($data_arr)); } $up = $mysqli->query("update `" . $table . "` set `send_zap`='1' where `pageid` in (select `id` from `" . $pref . "quick_pagefunnel` where `settings` like '%\"zapier_enable\":true%') and `send_zap` not in('1') limit 100"); return "[" . implode(",", $arr) . "]"; } function visualOptisForFunnels($funnel_id = 'all', $pagecount = 0) { $mysqli = $this->mysqli; $pref = $this->dbpref; $table = $pref . "quick_optins"; $limit = get_option('qfnl_max_records_per_page'); $funnel_id = $mysqli->real_escape_string($funnel_id); $pagecount = $mysqli->real_escape_string($pagecount); $tempdatebetween_arr = dateBetween('addedon'); $datebetween = $tempdatebetween_arr[1]; $datebetween_all = $tempdatebetween_arr[0]; $countsql = "select count(`id`) as `totaloptins` from `" . $table . "`" . $datebetween_all; $baseurl = ""; $extrafields = 0; $total = 0; if (is_numeric($funnel_id) || strpos($funnel_id, "page@") === 0) { $pageidqry = ""; if (strpos($funnel_id, "page@") === 0) { $pageidd = str_replace("page@", "", $funnel_id); $pageidd = explode('@', $mysqli->real_escape_string($pageidd)); $pageid = $pageidd[1]; $funnel_id = $pageidd[0]; if (!is_numeric($pageid)) { $pagefunnelquery = $mysqli->query("select `id` from `" . $pref . "quick_pagefunnel` where `funnelid`='" . $funnel_id . "' and `filename`='" . $pageid . "'"); if ($pagefunnelquery->num_rows > 0) { $pageidarrr = array(); while ($fidobb = $pagefunnelquery->fetch_object()) { array_push($pageidarrr, "'" . $fidobb->id . "'"); } $pageidqry = ' and `pageid` in (' . implode(',', $pageidarrr) . ') '; } else { return 0; } } else { $pageidqry = " and `pageid`='" . $pageid . "'"; } } } else { return 0; } $countsql = "select count(`id`) as totaloptins from `" . $table . "` where funnelid='" . $funnel_id . "'" . $pageidqry . $datebetween; $total_qry = $mysqli->query($countsql); if ($total_qry) { if ($res = $total_qry->fetch_object()) { $total = $res->totaloptins; } } $order_by = "`id` desc"; if (isset($_GET['arrange_records_order'])) { $order_by = base64_decode($_GET['arrange_records_order']); } $search_qry = ""; if (isset($_POST["onpage_search"]) && strlen($_POST["onpage_search"]) > 0) { $_POST["onpage_search"] = $mysqli->real_escape_string($_POST["onpage_search"]); $search_qry = " and (`name` like '%" . $_POST["onpage_search"] . "%' or `email` like '%" . $_POST["onpage_search"] . "%' or `extras` like '%:\"%" . $_POST["onpage_search"] . "%\"%' or `ipaddr` like '%" . $_POST["onpage_search"] . "%')"; } if ($pagecount == 0) { $sql = "select * from `" . $table . "` where funnelid='" . $funnel_id . "'" . $pageidqry . $datebetween . $search_qry . " order by " . $order_by . " limit " . $limit . ""; } else { $pagecount = ($pagecount * $limit) - $limit; $sql = "select * from `" . $table . "` where funnelid='" . $funnel_id . "'" . $pageidqry . $datebetween . $search_qry . " order by " . $order_by . " limit " . $pagecount . ", " . $limit . ""; } $funnel = $this->load->loadFunnel(); $funnel_data = $funnel->getFunnel($funnel_id); $extrafields = $funnel_data->validinputs; $baseurl = $funnel_data->baseurl; if (strlen($pageidqry) > 1) { if (is_numeric($pageid)) { $pagevalidinputsquery = $mysqli->query("select `valid_inputs` from `" . $pref . "quick_pagefunnel` where `id`=" . $pageid . " limit 1"); } else { $pagevalidinputsquery = $mysqli->query("select `valid_inputs` from `" . $pref . "quick_pagefunnel` where `funnelid`='" . $funnel_id . "' and `filename`='" . $pageid . "' limit 1"); } if ($pagevalidinputsquery->num_rows > 0) { $pagevalidinputsquery_ob = $pagevalidinputsquery->fetch_object(); if (strlen($pagevalidinputsquery_ob->valid_inputs) > 0) { $extrafields = $pagevalidinputsquery_ob->valid_inputs; } } } if (strlen($extrafields) > 0) { $extrafields = explode(',', $extrafields); } else { $extrafields = 0; } $qry = $mysqli->query($sql); return array('leads' => $qry, 'total' => $total, 'extracols' => $extrafields, 'base_url' => $baseurl); } function deleteOptin($id, $by = 'id') { //delete optin //$by may be id or funnelid or pageid $mysqli = $this->mysqli; $pref = $this->dbpref; $id = $mysqli->real_escape_string($id); if (is_numeric($id)) { if ($by != 'id') { $by = "'" . $id . "'"; } } $table = $pref . "quick_optins"; $mysqli->query("delete from `" . $table . "` where `" . $by . "`=" . $id . ""); } function optinToCsv($funnelid, $pageid) { //optin to csv $mysqli = $this->mysqli; $pref = $this->dbpref; $table = $pref . "quick_optins"; $page_table = $pref . 'quick_pagefunnel'; $funnel_ob = $this->load->loadFunnel(); $ids = array(); $input_fields = ""; $filename = ""; $funnelid = $mysqli->real_escape_string($funnelid); $pageid = $mysqli->real_escape_string($pageid); if (is_numeric($pageid)) { $getpagedataqry = $mysqli->query("select `valid_inputs`,`id`,`filename` from `" . $page_table . "` where `level` in(select `level` from `" . $page_table . "` where `id`='" . $pageid . "') and `funnelid`='" . $funnelid . "'"); } else { $getpagedataqry = $mysqli->query("select `valid_inputs`,`id`,`filename` from `" . $page_table . "` where `funnelid`='" . $funnelid . "' and `filename`='" . $pageid . "'"); } if ($getpagedataqry->num_rows) { while ($r = $getpagedataqry->fetch_object()) { array_push($ids, "'" . $r->id . "'"); $input_fields = $r->valid_inputs; $filename = $r->filename; } } if (strlen($input_fields) < 1) { $getfetfunnel = $funnel_ob->getFunnel($funnelid); if ($getfetfunnel) { $input_fields = $getfetfunnel->validinputs; } } $input_fields = explode(",", $input_fields); $optinqry = $mysqli->query("select * from `" . $table . "` where `funnelid`='" . $funnelid . "' and `pageid` in (" . implode(',', $ids) . ")"); //headers $csvheaders = array("#"); $csvheaders = array_merge($csvheaders, $input_fields, array('ip', 'date')); $output_filename = $filename . '.csv'; $output_handle = @fopen('php://output', 'w'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Description: File Transfer'); header('Content-type: text/csv'); header('Content-Disposition: attachment; filename=' . $output_filename); header('Expires: 0'); header('Pragma: public'); fputcsv($output_handle, $csvheaders); if ($optinqry->num_rows > 0) { $count = 0; while ($r = $optinqry->fetch_assoc()) { ++$count; $outputarr = array($count); $exfarr = (array)json_decode($r['extras']); if (isset($r['addedon'])) { $r['addedon'] = date('d-M-Y h:ia', $r['addedon']); } for ($i = 1; $i < count($csvheaders); $i++) { if ($csvheaders[$i] == "ip") { $csvheaders[$i] = "ipaddr"; } if ($csvheaders[$i] == "date") { $csvheaders[$i] = "addedon"; } if (isset($r[$csvheaders[$i]])) { array_push($outputarr, $r[$csvheaders[$i]]); } elseif (isset($exfarr[$csvheaders[$i]])) { array_push($outputarr, $exfarr[$csvheaders[$i]]); } else { array_push($outputarr, ""); } } fputcsv($output_handle, $outputarr); } } fclose($output_handle); die(); } }