public static function check_campaigndata($post_data)
 {
     global $post, $cfg;
     if (is_null($cfg)) {
         $cfg = get_option(WPeMatico::OPTION_KEY);
     }
     if (isset($post_data['ID']) && !empty($post_data['ID'])) {
         $campaigndata['ID'] = $post_data['ID'];
     } elseif (isset($post_data['campaign_id']) && !empty($post_data['campaign_id'])) {
         $campaigndata['ID'] = $post_data['campaign_id'];
     } elseif (isset($post->ID) && $post->ID > 0) {
         $campaigndata['ID'] = $post->ID;
     } else {
     }
     //$campaigndata['campaign_id'] = $post_id;
     $campaigndata['campaign_title'] = isset($post_data['campaign_title']) && !empty($post_data['campaign_title']) ? $post_data['campaign_title'] : get_the_title($campaigndata['ID']);
     $campaigndata['campaign_posttype'] = !isset($post_data['campaign_posttype']) ? 'publish' : $post_data['campaign_posttype'];
     $campaigndata['campaign_customposttype'] = !isset($post_data['campaign_customposttype']) ? 'post' : $post_data['campaign_customposttype'];
     $campaigndata['campaign_post_format'] = !isset($post_data['campaign_post_format']) ? '0' : $post_data['campaign_post_format'];
     $campaigndata['activated'] = !isset($post_data['activated']) || empty($post_data['activated']) ? false : $post_data['activated'] == 1 ? true : false;
     $campaigndata['campaign_feeddate'] = !isset($post_data['campaign_feeddate']) || empty($post_data['campaign_feeddate']) ? false : $post_data['campaign_feeddate'] == 1 ? true : false;
     //		$campaign_feeds=array();
     $campaign_feeds = isset($post_data['campaign_feeds']) && !empty($post_data['campaign_feeds']) ? $post_data['campaign_feeds'] : array();
     if (!empty($campaign_feeds)) {
         // Proceso los feeds sacando los que estan en blanco
         foreach ($campaign_feeds as $k => $on) {
             if (empty($campaign_feeds[$k])) {
                 unset($campaign_feeds[$k]);
             }
         }
     }
     /*		if(isset($post_data['campaign_feeds'])) {  // Proceso los feeds 
     			foreach($post_data['campaign_feeds'] as $k => $on) {       
     				$feedname = $post_data['campaign_feeds'][$k];
     				if(!empty($feedname)) 
     					$campaign_feeds[]=$feedname;
     			}
     		}
     */
     $campaigndata['campaign_feeds'] = (array) $campaign_feeds;
     $campaigndata['cron'] = !isset($post_data['cronminutes']) ? !isset($post_data['cron']) ? '0 3 * * *' : $post_data['cron'] : WPeMatico::cron_string($post_data);
     $campaigndata['cronnextrun'] = isset($post_data['cronnextrun']) && !empty($post_data['cronnextrun']) ? (int) $post_data['cronnextrun'] : (int) WPeMatico::time_cron_next($campaigndata['cron']);
     // Direccion de e-mail donde enviar los logs
     $campaigndata['mailerroronly'] = !isset($post_data['mailerroronly']) || empty($post_data['mailerroronly']) ? false : $post_data['mailerroronly'] == 1 ? true : false;
     $campaigndata['mailaddresslog'] = !isset($post_data['mailaddresslog']) ? '' : sanitize_email($post_data['mailaddresslog']);
     // *** Campaign Options
     $campaigndata['campaign_max'] = !isset($post_data['campaign_max']) ? 5 : (int) $post_data['campaign_max'];
     $campaigndata['campaign_author'] = !isset($post_data['campaign_author']) ? 0 : (int) $post_data['campaign_author'];
     $campaigndata['campaign_linktosource'] = !isset($post_data['campaign_linktosource']) || empty($post_data['campaign_linktosource']) ? false : $post_data['campaign_linktosource'] == 1 ? true : false;
     $campaigndata['campaign_strip_links'] = !isset($post_data['campaign_strip_links']) || empty($post_data['campaign_strip_links']) ? false : $post_data['campaign_strip_links'] == 1 ? true : false;
     $campaigndata['campaign_commentstatus'] = !isset($post_data['campaign_commentstatus']) ? 'closed' : $post_data['campaign_commentstatus'];
     $campaigndata['campaign_allowpings'] = !isset($post_data['campaign_allowpings']) || empty($post_data['campaign_allowpings']) ? false : $post_data['campaign_allowpings'] == 1 ? true : false;
     $campaigndata['campaign_woutfilter'] = !isset($post_data['campaign_woutfilter']) || empty($post_data['campaign_woutfilter']) ? false : $post_data['campaign_woutfilter'] == 1 ? true : false;
     // *** Campaign Images
     $campaigndata['campaign_imgcache'] = !isset($post_data['campaign_imgcache']) || empty($post_data['campaign_imgcache']) ? false : $post_data['campaign_imgcache'] == 1 ? true : false;
     $campaigndata['campaign_cancel_imgcache'] = !isset($post_data['campaign_cancel_imgcache']) || empty($post_data['campaign_cancel_imgcache']) ? false : $post_data['campaign_cancel_imgcache'] == 1 ? true : false;
     if (isset($cfg['imgcache']) && $cfg['imgcache']) {
         if ($campaigndata['campaign_cancel_imgcache']) {
             $campaigndata['campaign_imgcache'] = false;
         }
     } else {
         if ($campaigndata['campaign_imgcache']) {
             $campaigndata['campaign_cancel_imgcache'] = false;
         }
     }
     $campaigndata['campaign_nolinkimg'] = !isset($post_data['campaign_nolinkimg']) || empty($post_data['campaign_nolinkimg']) ? false : $post_data['campaign_nolinkimg'] == 1 ? true : false;
     $campaigndata['campaign_solo1ra'] = !isset($post_data['campaign_solo1ra']) || empty($post_data['campaign_solo1ra']) ? false : $post_data['campaign_solo1ra'] == 1 ? true : false;
     // *** Campaign Template
     $campaigndata['campaign_enable_template'] = !isset($post_data['campaign_enable_template']) || empty($post_data['campaign_enable_template']) ? false : $post_data['campaign_enable_template'] == 1 ? true : false;
     if (isset($post_data['campaign_template'])) {
         $campaigndata['campaign_template'] = $post_data['campaign_template'];
     } else {
         $campaigndata['campaign_enable_template'] = false;
         $campaigndata['campaign_template'] = '';
     }
     // *** Processed posts count
     $campaigndata['postscount'] = !isset($post_data['postscount']) ? 0 : (int) $post_data['postscount'];
     $campaigndata['lastpostscount'] = !isset($post_data['lastpostscount']) ? 0 : (int) $post_data['lastpostscount'];
     $campaigndata['lastrun'] = !isset($post_data['lastrun']) ? 0 : (int) $post_data['lastrun'];
     $campaigndata['lastruntime'] = !isset($post_data['lastruntime']) ? 0 : (int) $post_data['lastruntime'];
     //campaign_categories & tags
     $campaigndata['campaign_tags'] = !isset($post_data['campaign_tags']) ? '' : $post_data['campaign_tags'];
     $campaigndata['campaign_autocats'] = !isset($post_data['campaign_autocats']) || empty($post_data['campaign_autocats']) ? false : $post_data['campaign_autocats'] == 1 ? true : false;
     // Primero proceso las categorias nuevas si las hay y las agrego al final del array
     # New categories
     if (isset($post_data['campaign_newcat'])) {
         foreach ($post_data['campaign_newcat'] as $k => $on) {
             $catname = $post_data['campaign_newcatname'][$k];
             if (!empty($catname)) {
                 //$post_data['post_category'][] = wp_insert_category(array('cat_name' => $catname));
                 $arg = array('description' => "Auto Added by WPeMatico", 'parent' => "0");
                 $newcat = wp_insert_term($catname, "category", $arg);
                 $post_data['post_category'][] = is_array($newcat) ? $newcat['term_id'] : $newcat;
             }
         }
     }
     # All: Las elegidas + las nuevas ya agregadas
     $campaigndata['campaign_categories'] = !isset($post_data['post_category']) ? !isset($post_data['campaign_categories']) ? array() : (array) $post_data['campaign_categories'] : (array) $post_data['post_category'];
     #Proceso las Words to Category sacando los que estan en blanco
     //campaign_wrd2cat, campaign_wrd2cat_regex, campaign_wrd2cat_category
     $campaign_wrd2cat = array();
     if (isset($post_data['campaign_wrd2cat']['word'])) {
         //  for ($i = 0; $i <= count(@$campaign_wrd2cat['word']); $i++) :
         foreach ($post_data['campaign_wrd2cat']['word'] as $id => $value) {
             $word = isset($post_data['_wp_http_referer']) ? addslashes($post_data['campaign_wrd2cat']['word'][$id]) : $post_data['campaign_wrd2cat']['word'][$id];
             $regex = $post_data['campaign_wrd2cat']['regex'][$id] == 1 ? true : false;
             $cases = $post_data['campaign_wrd2cat']['cases'][$id] == 1 ? true : false;
             $w2ccateg = $post_data['campaign_wrd2cat']['w2ccateg'][$id];
             if (!empty($word)) {
                 $campaign_wrd2cat['word'][] = $word;
                 $campaign_wrd2cat['regex'][] = $regex;
                 $campaign_wrd2cat['cases'][] = $cases;
                 $campaign_wrd2cat['w2ccateg'][] = $w2ccateg;
             }
         }
     }
     $_wrd2cat = array('word' => array(''), 'regex' => array(false), 'w2ccateg' => array(''), 'cases' => array(false));
     $campaigndata['campaign_wrd2cat'] = !empty($campaign_wrd2cat) ? (array) $campaign_wrd2cat : (array) $_wrd2cat;
     // *** Campaign Rewrites
     // Proceso los rewrites sacando los que estan en blanco
     //		$campaign_rewrites = Array();
     $campaign_rewrites = isset($post_data['campaign_rewrites']) && !empty($post_data['campaign_rewrites']) ? $post_data['campaign_rewrites'] : array();
     if (isset($post_data['campaign_word_origin'])) {
         foreach ($post_data['campaign_word_origin'] as $id => $rewrite) {
             $origin = addslashes($post_data['campaign_word_origin'][$id]);
             $regex = $post_data['campaign_word_option_regex'][$id] == 1 ? true : false;
             $title = $post_data['campaign_word_option_title'][$id] == 1 ? true : false;
             $rewrite = addslashes($post_data['campaign_word_rewrite'][$id]);
             $relink = addslashes($post_data['campaign_word_relink'][$id]);
             if (!empty($origin)) {
                 $campaign_rewrites['origin'][] = $origin;
                 $campaign_rewrites['regex'][] = $regex;
                 $campaign_rewrites['title'][] = $title;
                 $campaign_rewrites['rewrite'][] = $rewrite;
                 $campaign_rewrites['relink'][] = $relink;
             }
         }
     }
     $campaigndata['campaign_rewrites'] = !empty($campaign_rewrites) ? (array) $campaign_rewrites : array('origin' => array(''), 'title' => array(false), 'regex' => array(false), 'rewrite' => array(''), 'relink' => array(''));
     if (has_filter('pro_check_campaigndata')) {
         $campaigndata = apply_filters('pro_check_campaigndata', $campaigndata, $post_data);
     }
     return $campaigndata;
 }
Beispiel #2
0
 public static function save_campaigndata($post_id)
 {
     global $post;
     // Stop WP from clearing custom fields on autosave, and also during ajax requests (e.g. quick edit) and bulk edits.
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE || defined('DOING_AJAX') && DOING_AJAX || isset($_REQUEST['bulk_edit'])) {
         return $post_id;
     }
     if (!wp_verify_nonce(@$_POST['wpematico_nonce'], 'edit-campaign')) {
         return $post_id;
     }
     if ($post->post_type != 'wpematico') {
         return $post_id;
     }
     $nivelerror = error_reporting(E_ERROR | E_WARNING | E_PARSE);
     $cfg = get_option(WPeMatico::OPTION_KEY);
     $campaign = array();
     $campaign = WPeMatico::get_campaign($post_id);
     $campaign['campaign_posttype'] = $_POST['campaign_posttype'];
     $campaign['campaign_customposttype'] = $_POST['campaign_customposttype'];
     $campaign['activated'] = $_POST['activated'] == 1 ? true : false;
     $campaign['campaign_feeddate'] = $_POST['campaign_feeddate'] == 1 ? true : false;
     $campaign['cron'] = WPeMatico::cron_string($_POST);
     $campaign['cronnextrun'] = WPeMatico::time_cron_next($campaign['cron']);
     // Direccion de e-mail donde enviar los logs
     $campaign['mailaddresslog'] = sanitize_email($_POST['mailaddresslog']);
     $campaign['mailerroronly'] = $_POST['mailerroronly'] == 1 ? true : false;
     // Process categories
     $campaign['campaign_autocats'] = $_POST['campaign_autocats'] == 1 ? true : false;
     // Primero proceso las categorias nuevas si las hay y las agrego al final del array
     # New categories
     if (isset($_POST['campaign_newcat'])) {
         foreach ($_POST['campaign_newcat'] as $k => $on) {
             $catname = $_POST['campaign_newcatname'][$k];
             if (!empty($catname)) {
                 //$_POST['campaign_categories'][] = wp_insert_category(array('cat_name' => $catname));
                 $arg = array('description' => "Auto Added by WPeMatico", 'parent' => "0");
                 $_POST['campaign_categories'][] = wp_insert_term($catname, "category", $arg);
             }
         }
     }
     # All: Las elegidas + las nuevas ya agregadas
     if (isset($_POST['campaign_categories'])) {
         $campaign['campaign_categories'] = (array) $_POST['campaign_categories'];
     }
     //if(isset($_POST['campaign_tags'])) {
     $campaign['campaign_tags'] = $_POST['campaign_tags'];
     //}
     #Proceso las Words to Category sacando los que estan en blanco
     //campaign_wrd2cat, campaign_wrd2cat_regex, campaign_wrd2cat_category
     if (isset($_POST['campaign_wrd2cat'])) {
         foreach ($_POST['campaign_wrd2cat'] as $id => $w2cword) {
             $word = addslashes($_POST['campaign_wrd2cat'][$id]);
             $regex = $_POST['campaign_wrd2cat_regex'][$id] == 1 ? true : false;
             $cases = $_POST['campaign_wrd2cat_cases'][$id] == 1 ? true : false;
             $w2ccateg = $_POST['campaign_wrd2cat_category'][$id];
             if (!empty($word)) {
                 if (!isset($campaign_wrd2cat)) {
                     $campaign_wrd2cat = array();
                 }
                 $campaign_wrd2cat['word'][] = $word;
                 $campaign_wrd2cat['regex'][] = $regex;
                 $campaign_wrd2cat['cases'][] = $cases;
                 $campaign_wrd2cat['w2ccateg'][] = $w2ccateg;
             }
         }
     }
     $campaign['campaign_wrd2cat'] = (array) $campaign_wrd2cat;
     // Proceso los feeds sacando los que estan en blanco
     if (isset($_POST['campaign_feeds'])) {
         foreach ($_POST['campaign_feeds'] as $k => $on) {
             $feedname = $_POST['campaign_feeds'][$k];
             if (!empty($feedname)) {
                 if (!isset($campaign_feeds)) {
                     $campaign_feeds = array();
                 }
                 $campaign_feeds[] = $feedname;
             }
         }
     }
     // Jamas llegaria aca si no hay feeds por el check ajax
     $campaign['campaign_feeds'] = (array) $campaign_feeds;
     // *** Campaign Options
     $campaign['campaign_max'] = (int) $_POST['campaign_max'];
     $campaign['campaign_author'] = $_POST['campaign_author'];
     $campaign['campaign_linktosource'] = $_POST['campaign_linktosource'] == 1 ? true : false;
     $campaign['campaign_strip_links'] = $_POST['campaign_strip_links'] == 1 ? true : false;
     $campaign['campaign_commentstatus'] = $_POST['campaign_commentstatus'];
     $campaign['campaign_allowpings'] = $_POST['campaign_allowpings'] == 1 ? true : false;
     $campaign['campaign_woutfilter'] = $_POST['campaign_woutfilter'] == 1 ? true : false;
     // *** Campaign Images
     $campaign['campaign_imgcache'] = $_POST['campaign_imgcache'] == 1 ? true : false;
     $campaign['campaign_cancel_imgcache'] = $_POST['campaign_cancel_imgcache'] == 1 ? true : false;
     if ($cfg['imgcache']) {
         if ($campaign['campaign_cancel_imgcache']) {
             $campaign['campaign_imgcache'] = false;
         }
     } else {
         if ($campaign['campaign_imgcache']) {
             $campaign['campaign_cancel_imgcache'] = false;
         }
     }
     $campaign['campaign_nolinkimg'] = $_POST['campaign_nolinkimg'] == 1 ? true : false;
     $campaign['campaign_solo1ra'] = $_POST['campaign_solo1ra'] == 1 ? true : false;
     // *** Campaign Template
     $campaign['campaign_enable_template'] = $_POST['campaign_enable_template'] == 1 ? true : false;
     if (isset($_POST['campaign_template'])) {
         $campaign['campaign_template'] = $_POST['campaign_template'];
     } else {
         $campaign['campaign_enable_template'] = false;
         $campaign['campaign_template'] = '';
     }
     // *** Campaign Rewrites
     // Proceso los rewrites sacando los que estan en blanco
     if (isset($_POST['campaign_word_origin'])) {
         foreach ($_POST['campaign_word_origin'] as $id => $rewrite) {
             $origin = addslashes($_POST['campaign_word_origin'][$id]);
             $regex = $_POST['campaign_word_option_regex'][$id] == 1 ? true : false;
             $title = $_POST['campaign_word_option_title'][$id] == 1 ? true : false;
             $rewrite = addslashes($_POST['campaign_word_rewrite'][$id]);
             $relink = addslashes($_POST['campaign_word_relink'][$id]);
             if (!empty($origin)) {
                 if (!isset($campaign_rewrites)) {
                     $campaign_rewrites = array();
                 }
                 $campaign_rewrites['origin'][] = $origin;
                 $campaign_rewrites['regex'][] = $regex;
                 $campaign_rewrites['title'][] = $title;
                 $campaign_rewrites['rewrite'][] = $rewrite;
                 $campaign_rewrites['relink'][] = $relink;
             }
         }
     }
     $campaign['campaign_rewrites'] = (array) $campaign_rewrites;
     //***** Call nonstatic
     if ($cfg['nonstatic']) {
         $campaign = NoNStatic::save_data($campaign, $_POST);
     }
     // check and correct all fields
     $campaign = self::check_campaigndata($campaign);
     error_reporting($nivelerror);
     // Grabo la campaña
     add_post_meta($post_id, 'campaign_data', $campaign, true) or update_post_meta($post_id, 'campaign_data', $campaign);
     return $post_id;
 }