function NS_SNAP_SavePostMetaTags($id) { global $nxs_snapAvNts, $plgn_NS_SNAutoPoster; if (!empty($_POST['nxs_snapPostOptions'])) { $NXS_POSTX = $_POST['nxs_snapPostOptions']; $NXS_POST = array(); $NXS_POST = NXS_parseQueryStr($NXS_POSTX); } else { $NXS_POST = $_POST; } if (count($NXS_POST) < 1 || !isset($NXS_POST["snapEdIT"]) || empty($NXS_POST["snapEdIT"])) { return; } if (get_magic_quotes_gpc() || !empty($_POST['nxs_mqTest']) && $_POST['nxs_mqTest'] == "\\'") { array_walk_recursive($NXS_POST, 'nsx_stripSlashes'); } array_walk_recursive($NXS_POST, 'nsx_fixSlashes'); if (!isset($plgn_NS_SNAutoPoster)) { return; } $options = $plgn_NS_SNAutoPoster->nxs_options; // echo "| NS_SNAP_SavePostMetaTags - ".$id." |"; $post = get_post($id); if ($post->post_type == 'revision' && $post->post_status == 'inherit' && $post->post_parent != '0') { return; } // prr($NXS_POST); if (empty($NXS_POST["useSURL"])) { $NXS_POST["useSURL"] = '2'; } delete_post_meta($id, '_snap_forceSURL'); add_post_meta($id, '_snap_forceSURL', $NXS_POST["useSURL"]); delete_post_meta($id, 'snap_MYURL'); add_post_meta($id, 'snap_MYURL', $NXS_POST["urlToUse"]); delete_post_meta($id, 'snapEdIT'); add_post_meta($id, 'snapEdIT', '1'); $snap_isAutoPosted = get_post_meta($id, 'snap_isAutoPosted', true); if ($snap_isAutoPosted == '1' && $post->post_status == 'future') { delete_post_meta($id, 'snap_isAutoPosted'); add_post_meta($id, 'snap_isAutoPosted', '2'); } foreach ($nxs_snapAvNts as $avNt) { // echo "--------------------------------------------"; prr($avNt); if (isset($options[$avNt['lcode']]) && count($options[$avNt['lcode']]) > 0 && isset($NXS_POST[$avNt['lcode']]) && count($NXS_POST[$avNt['lcode']]) > 0) { $savedMeta = maybe_unserialize(get_post_meta($id, 'snap' . $avNt['code'], true)); if (is_array($NXS_POST[$avNt['lcode']])) { $ii = 0; foreach ($NXS_POST[$avNt['lcode']] as $pst) { // echo "###########"; prr($pst); if (is_array($pst) && empty($pst['do' . $avNt['code']]) && empty($NXS_POST[$avNt['lcode']][$ii]['do' . $avNt['code']])) { $NXS_POST[$avNt['lcode']][$ii]['do' . $avNt['code']] = 0; } $ii++; } } $newMeta = $NXS_POST[$avNt['lcode']]; if (is_array($savedMeta) && is_array($newMeta)) { $newMeta = nxsMergeArraysOV($savedMeta, $newMeta); } // echo "#####~~~~~~~~~ ".$id."| snap".$avNt['code']; prr($savedMeta); echo "||"; prr($newMeta);// $newMeta = 'AAA'; delete_post_meta($id, 'snap' . $avNt['code']); add_post_meta($id, 'snap' . $avNt['code'], str_replace('\\', '\\\\', serialize($newMeta))); } } // die(); // prr($_POST); }
function nxs_snapPublishTo($postArr, $type = '', $aj = false) { global $plgn_NS_SNAutoPoster, $nxs_snapAvNts, $blog_id, $nxs_tpWMPU; // echo " | nxs_doSMAS2 | "; prr($postArr); if (!isset($plgn_NS_SNAutoPoster)) { return; } $options = $plgn_NS_SNAutoPoster->nxs_options; if (!empty($_POST['nxs_snapPostOptions'])) { $NXS_POSTX = $_POST['nxs_snapPostOptions']; $NXS_POST = array(); $NXS_POST = NXS_parseQueryStr($NXS_POSTX); } else { $NXS_POST = $_POST; } if (is_object($postArr)) { $postID = $postArr->ID; } else { $postID = $postArr; $postArr = get_post($postID); } $isPost = isset($NXS_POST["snapEdIT"]); $post = get_post($postID); if ($post->post_status != 'publish') { sleep(5); $post = get_post($postID); $postArr = $post; if ($post->post_status != 'publish') { nxs_addToLogN('I', 'Cancelled', '', 'Autopost Cancelled - Post is not "Published" Right now - Post ID:(' . $postID . ') - Current Post status -' . $post->post_status); return; } } //nxs_addToLogN('BG', 'Post Status Changed', '', '-=## Autopost requested.'.($blog_id>1?'BlogID:'.$blog_id:'').' PostID:('.$postID.') Post Type: '.$post->post_type.' ##=-'); //$args=array('public'=>true, '_builtin'=>false); $output = 'names'; $operator = 'and'; $post_types = array(); ## Removed because some post types are not available from WP Cron // if (function_exists('get_post_types')) { $post_types=get_post_types($args, $output, $operator); ## Removed because some post types are not available from WP Cron if (isset($options['nxsCPTSeld']) && $options['nxsCPTSeld'] != '') { $nxsCPTSeld = unserialize($options['nxsCPTSeld']); } else { $nxsCPTSeld = array(); } // if ($post->post_type == 'post' || ($options['useForPages']=='1' && $post->post_type == 'page') || (in_array($post->post_type, $post_types) && in_array($post->post_type, $nxsCPTSeld))) { ## Removed because some post types are not available from WP Cron $post_types = array(); if ($post->post_type == 'post' || $options['useForPages'] == '1' && $post->post_type == 'page' || in_array($post->post_type, $nxsCPTSeld)) { if ($isPost && $options['skipSecurity'] != '1' && !current_user_can("make_snap_posts") && !current_user_can("manage_options")) { nxs_addToLogN('I', 'Skipped', '', 'Current user can\'t autopost - Post ID:(' . $postID . ')'); return; } $postUser = $postArr->post_author; if ($options['skipSecurity'] != '1' && !user_can($postUser, "make_snap_posts") && !user_can($postUser, "manage_options")) { nxs_addToLogN('I', 'Skipped', '', '', 'User ID ' . $postUser . ' can\'t autopost (see <a target="_blank" href="http://www.nextscripts.com/support-faq/#a17">FAQ #1.7</a>) - Post ID:(' . $postID . ')'); return; } if ($isPost) { $plgn_NS_SNAutoPoster->NS_SNAP_SavePostMetaTags($postID); } if (function_exists('nxs_doSMAS2')) { nxs_doSMAS2($postArr, $type, $aj); return; } else { $options = $plgn_NS_SNAutoPoster->nxs_options; $ltype = strtolower($type); if ($nxs_tpWMPU == 'S') { switch_to_blog(1); $plgn_NS_SNAutoPoster = new NS_SNAutoPoster(); $options = $plgn_NS_SNAutoPoster->nxs_options; restore_current_blog(); } if (!isset($options['nxsHTDP']) || $options['nxsHTDP'] == 'S') { if (isset($NXS_POST["snapEdIT"]) && $NXS_POST["snapEdIT"] == '1') { $publtype = 'S'; $delay = rand(2, 10); } else { $publtype = 'A'; } } else { $publtype = 'I'; } nxs_addToLogN('BG', 'Start =- ', '', '------=========#### NEW AUTO-POST REQUEST ' . ($blog_id > 1 ? 'BlogID:' . $blog_id : '') . ' PostID:(' . $postID . ') ' . ($publtype == 'S' ? 'Scheduled +' . $delay : ($publtype == 'A' ? 'Automated' : 'Immediate')) . ' ####=========------'); $snap_isAutoPosted = get_post_meta($postID, 'snap_isAutoPosted', true); if ($snap_isAutoPosted == '1') { nxs_addToLogN('W', 'Skipped', '', 'Already Autoposted - Post ID:(' . $postID . ')'); return; } $snap_isEdIT = get_post_meta($postID, 'snapEdIT', true); if ($snap_isEdIT != '1') { $doPost = true; $exclCats = maybe_unserialize($options['exclCats']); $postCats = wp_get_post_categories($postID); foreach ($postCats as $pCat) { if (is_array($exclCats) && in_array($pCat, $exclCats)) { $doPost = false; } else { $doPost = true; break; } } if (!$doPost) { nxs_addToLogN('I', 'Skipped', '', 'Automated Post - Category Excluded - Post ID:(' . $postID . ')'); return; } } foreach ($nxs_snapAvNts as $avNt) { if (isset($options[$avNt['lcode']]) && count($options[$avNt['lcode']]) > 0) { $clName = 'nxs_snapClass' . $avNt['code']; if ($isPost && isset($NXS_POST[$avNt['lcode']])) { $po = $NXS_POST[$avNt['lcode']]; } else { $po = get_post_meta($postID, 'snap' . $avNt['code'], true); $po = maybe_unserialize($po); } if (isset($po) && is_array($po)) { $isPostMeta = true; } else { $isPostMeta = false; $po = $options[$avNt['lcode']]; } delete_post_meta($postID, 'snap_isAutoPosted'); add_post_meta($postID, 'snap_isAutoPosted', '1'); $optMt = $options[$avNt['lcode']][0]; if ($isPostMeta) { $ntClInst = new $clName(); $optMt = $ntClInst->adjMetaOpt($optMt, $po[0]); } if ($snap_isEdIT != '1') { $doPost = true; if ($optMt['catSel'] == '1' && trim($optMt['catSelEd']) != '') { $inclCats = explode(',', $optMt['catSelEd']); foreach ($postCats as $pCat) { if (!in_array($pCat, $inclCats)) { $doPost = false; } else { $doPost = true; break; } } if (!$doPost) { nxs_addToLogN('I', 'Skipped', $avNt['name'] . ' (' . $optMt['nName'] . ')', '[Automated Post] - Individual Category Excluded - Post ID:(' . $postID . ')'); continue; } } //## Get tags if (!empty($optMt['tagsSel'])) { $inclTags = explode(',', strtolower($optMt['tagsSel'])); $postTags = wp_get_post_tags($postID, array('fields' => 'slugs')); $postCust = array(); //## Get all custom post types foreach ($inclTags as $iTag) { if (strpos($iTag, '|') !== false) { $dd = explode('|', $itag); if (empty($postCust[$dd[0]])) { $postCust[$dd[0]] = wp_get_object_terms($postID, $dd[0], array('fields' => 'slugs')); } if (!in_array(strtolower($dd[1]), $postCust[$dd[0]])) { $doPost = false; } else { $doPost = true; break; } } else { if (!in_array(strtolower($iTag), $postTags)) { $doPost = false; } else { $doPost = true; break; } } } if (!$doPost) { nxs_addToLogN('I', 'Skipped', $avNt['name'] . ' (' . $optMt['nName'] . ')', '[Automated Post] - Tag Excluded - Post ID:(' . $postID . ') - Included Tags: ' . $optMt['tagsSel'] . ' | Post Tags: ' . print_r($postTags, true) . " | " . print_r($postCust, true)); continue; } } } if ($optMt['do' . $avNt['code']] == '1') { $optMt['ii'] = 0; if ($publtype == 'A' && ($optMt['nMin'] > 0 || $optMt['nHrs'] > 0 || $optMt['nTime'] != '')) { $publtype = 'S'; } if ($publtype == 'S') { if (isset($optMt['nHrs']) && isset($optMt['nMin']) && ($optMt['nHrs'] > 0 || $optMt['nMin'] > 0)) { $delay = $optMt['nMin'] * 60 + $optMt['nHrs'] * 3600; nxs_addToLogN('I', 'Delayed', $avNt['name'] . ' (' . $optMt['nName'] . ')', 'Post has been delayed for ' . $delay . ' Seconds (' . ($optMt['nHrs'] > 0 ? $optMt['nHrs'] . ' Hours' : '') . " " . ($optMt['nMin'] > 0 ? $optMt['nMin'] . ' Minutes' : '') . ')'); } else { $delay = rand(2, 10); } $optMt['timeToRun'] = time() + $delay; if ($options['ver'] > 300.33) { $shName = '_nxs_snap_sh_' . $avNt['code'] . '0_' . $optMt['timeToRun']; delete_post_meta($postID, $shName); add_post_meta($postID, $shName, $optMt); $args = array($postID, $shName); } else { $args = array($postID, $optMt); } wp_schedule_single_event($optMt['timeToRun'], 'ns_doPublishTo' . $avNt['code'], $args); nxs_addToLogN('BI', 'Scheduled', $avNt['name'] . ' (' . $optMt['nName'] . ') for ' . $optMt['timeToRun'] . "(" . date_i18n('Y-m-d H:i:s', $optMt['timeToRun'] + get_option('gmt_offset') * HOUR_IN_SECONDS) . ")", ' PostID:(' . $postID . ')'); } else { $fname = 'nxs_doPublishTo' . $avNt['code']; $fname($postID, $optMt); } } else { nxs_addToLogN('GR', 'Skipped', $avNt['name'] . ' (' . $optMt['nName'] . ')', '-=[Unchecked Account]=- - PostID:' . $postID . ''); } } } } } else { nxs_addToLogN('I', 'Skipped', '', 'Excluded Post Type: ' . $post->post_type . ' (Post ID: ' . $postID . ')| NOT IN (' . print_r($nxsCPTSeld, true) . ')| ALL (' . print_r($post_types, true) . ')'); return; } if ($isS) { restore_current_blog(); } }