wp_schedule_single_eventで登録された情報はどこかから確認可能でしょうか?

前提

以下の様なコードで記事の表示終了時間を制御しています。
close_timeはカスタムフィールドで設けています

php

add_action('save_post', 'save_custom_fields');function save_custom_fields($post_id){ if (isset($_POST['close_time'])) { update_post_meta($post_id, 'close_time', $_POST['close_time']); }} // 記事の終了時間が過ぎたら非公開にするadd_action('save_post','my_expire_event');function my_expire_event($post_id) { if (get_post_meta($post_id, 'close_time', true) != '' && date_i18n('Y-m-d H:i') < get_post_meta($post_id, 'close_time', true)) { // 設定されていて未来の日付ならスケジュールをセット $time_stamp = strtotime(get_post_meta($post_id, 'close_time', true) . ' JST'); wp_schedule_single_event($time_stamp, 'my_new_event', array($post_id)); }} // スケジュールされる動作を記述function my_update_post($post_id) { wp_update_post(array( 'ID' => $post_id, 'post_status' => 'private' ) );}add_action('my_new_event', 'my_update_post');

発生している問題・エラーメッセージ

表示終了時間の前に記事が非公開になってしまう事があるという問い合わせをもらって原因を追究中です。

wp_schedule_single_event の関数リファレンスに「同じ名前のイベントを10分より短い間隔で登録すると無視されるので注意してください。」という記述を見つけ、そのあたりに不具合の可能性が残っているものと推測して調べています。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_schedule_single_event

つまり
→誤って設定、正しい日付にしたが10分以内であったので、誤った方が有効になっているというケース

実現したいこと

実際に、wp_schedule_single_event によって登録されている日付データ(?)を確認できるのでしょうか?
カスタムフィードに表示されているものとはズレがあるのかを確認したいです。

自分でデータベースを覗くことができないのですが、担当者に依頼すれば確認可能だと思うので対応方法を教えていただけたらと思います。

コメントを投稿

0 コメント