예제 #1
0
 public function save_rc_post_meta($post_id)
 {
     $component = new Class_Rucy_Component();
     if (!isset($_POST) && !isset($_POST['post_type'])) {
         return;
     }
     if (isset($_POST['schroeder']) && !wp_verify_nonce($_POST['schroeder'], plugin_basename(__FILE__))) {
         return;
     }
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
         return;
     }
     $accept_post_types = $component->get_support_post_type();
     if (!in_array($_POST['post_type'], $accept_post_types)) {
         return;
     }
     if (!array_key_exists('rc_hour', $_POST) && !array_key_exists('rc_minutes', $_POST) && !array_key_exists('rc_month', $_POST) && !array_key_exists('rc_day', $_POST) && !array_key_exists('rc_year', $_POST) && !array_key_exists('rc_rb_hour', $_POST) && !array_key_exists('rc_rb_minutes', $_POST) && !array_key_exists('rc_rb_month', $_POST) && !array_key_exists('rc_rb_day', $_POST) && !array_key_exists('rc_rb_year', $_POST)) {
         return;
     }
     $post_meta_keys = $component->get_post_meta_keys();
     $date = mktime($_POST['rc_hour'], $_POST['rc_minutes'], 00, $_POST['rc_month'], $_POST['rc_day'], $_POST['rc_year']);
     if ($date) {
         $_POST[$post_meta_keys->date] = date_i18n('Y-m-d H:i:s', $date);
     } else {
         $_POST[$post_meta_keys->date] = "";
     }
     if (!isset($_POST[$post_meta_keys->accept]) || $_POST[$post_meta_keys->accept] != "1") {
         $_POST[$post_meta_keys->accept] = "0";
     }
     // rollback setting
     $rdate = mktime($_POST['rc_rb_hour'], $_POST['rc_rb_minutes'], 00, $_POST['rc_rb_month'], $_POST['rc_rb_day'], $_POST['rc_rb_year']);
     if ($rdate) {
         $_POST[$post_meta_keys->rollback_date] = date_i18n('Y-m-d H:i:s', $rdate);
     } else {
         $_POST[$post_meta_keys->rollback_date] = "";
     }
     if (!isset($_POST[$post_meta_keys->accept_rollback]) || $_POST[$post_meta_keys->accept_rollback] != "1") {
         $_POST[$post_meta_keys->accept_rollback] = "0";
     }
     if (!isset($_POST[$post_meta_keys->accept_rollback_update]) || $_POST[$post_meta_keys->accept_rollback_update] != "1") {
         $_POST[$post_meta_keys->accept_rollback_update] = "0";
     }
     if (!isset($_POST[$post_meta_keys->accept_rollback_feature_img]) || $_POST[$post_meta_keys->accept_rollback_feature_img] != "1") {
         $_POST[$post_meta_keys->accept_rollback_feature_img] = "0";
     }
     // save post meta
     foreach ($post_meta_keys as $key => $value) {
         $component->save_rc_post_meta_base($post_id, $value, $_POST);
     }
     // regist reserve update content
     if ($_POST[$post_meta_keys->accept] == "1") {
         $reserve_date = strtotime(get_gmt_from_date($_POST[$post_meta_keys->date]) . " GMT");
         if (in_array($_POST['post_type'], $accept_post_types)) {
             wp_schedule_single_event($reserve_date, RC_CRON_HOOK, array($post_id));
         }
     } else {
         if ($_POST[$post_meta_keys->accept] == "0" || !isset($_POST[$post_meta_keys->accept])) {
             // delete schedule
             wp_clear_scheduled_hook(RC_CRON_HOOK, array($post_id));
         }
     }
 }
예제 #2
0
 private function set_rollback_setting($post_id, $reserve_date, array $rollback_data)
 {
     $component = new Class_Rucy_Component();
     foreach ($rollback_data as $key => $value) {
         $component->save_rc_post_meta_base((int) $post_id, $key, $rollback_data);
     }
     wp_schedule_single_event($reserve_date, RC_CRON_HOOK, array($post_id));
 }