サポート » プラグイン » Flamingoの定期削除

  • 皆様、こんにちは
    フォーラムを活用させて頂いております。

    Contact Form 7 と併用してFlamingoを使用しております。
    バージョンは、4.7.3です。

    蓄積された受信メッセージのみを定期的に削除したいのですが、
    方法などございますでしょうか?
    よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • まったく検証していない概略だけですが、ヒントになれば幸いです。
    プラグイン 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
    https://developer.wordpress.org/reference/functions/wp_cron/

    すみません、間違いが1行ありました。

    誤:

    $msg = new Flamingo_Outbound_Message::( $msg );
    

    正:

    $msg = new Flamingo_Outbound_Message( $msg );
    
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Flamingoの定期削除」には新たに返信することはできません。