まったく検証していない概略だけですが、ヒントになれば幸いです。
プラグイン Flamingo のコードを眺めて、役に立ちそうな関数が幾つかありました。
それらを組み合わせて、下記のようなコードを書いてみてはどうでしょう。
// 3ヵ月以上古いメッセージをすべて取得。順序は任意。
// Flamingo_Outbound_Message::find の内部でクラス WP_Query が
// 利用されるので、検索条件は WP_Query と同様に指定できるはず。
$args = array(
'date_query' => array(
'column' => 'post_date_gmt',
'before' => '3 month ago',
),
'posts_per_page' => -1,
);
$messages = Flamingo_Outbound_Message::find( $args );
// 該当する投稿があれば削除。
if ( 0 < Flamingo_Outbound_Message::$found_items ) {
foreach( $messages as $msg ) {
$msg = new Flamingo_Outbound_Message::( $msg );
if ( empty( $msg ) ) {
continue;
}
if ( ! $msg->delete() ) {
// 削除失敗
}
}
}
定期的に実行させるには例えば wp_cron() を利用できると思います。
https://wpdocs.osdn.jp/関数リファレンス/wp_cron
Home
すみません、間違いが1行ありました。
誤:
$msg = new Flamingo_Outbound_Message::( $msg );
正:
$msg = new Flamingo_Outbound_Message( $msg );