0

wordpress サイトの場合、wordpress で投稿を作成してから 30 日後に送信されるリマインダーを実装する必要があります。

例えば:

投稿者が投稿を作成すると、この投稿の作成から 30 日後に、作成者は管理者プロファイル ダッシュボードで入力した電子メール アドレスにメールを受け取ります。

メールには、元の投稿への URL が含まれている必要があります。

私を助けることができる利用可能なプラグインはありますか、それともカスタム関数を書くべきですか?

前もって感謝します。

4

3 に答える 3

2

ここで直面する問題は、ユーザーがリクエストを行ったときに PHP が実行されることです。そのため、適切な日または適切な時間に誰もサイトにアクセスしないと、必要なコードが実行されない可能性があります。たとえそうであっても、この機能に対するランダムなユーザー要求を遅くしたいですか?

スケジュールされたタスク (windows) または cron ジョブ (linux) を調べるのが最善です。これらのユーティリティを使用して、特定の時刻または特定の間隔 (毎時、毎日午前 0 時など) で PHP スクリプトを実行できます。次に、特定の投稿を見つけてメールを送信する PHP スクリプトを作成します。

ホスティング プロバイダーがスケジューリング ユーティリティへのアクセスを許可していない場合。自分のコンピューター、またはこの作業を行う特定の PHP ファイルを呼び出すスケジュールされたタスクを持つ別のコンピューターをセットアップできます。

于 2012-03-16T18:55:47.247 に答える
1

ブログ更新リマインダーが必要です。

必要に応じてこのプラグインを変更しました。きっと気に入っていただけると思います;-)

http://wordpress.org/extend/plugins/blog-update-reminder/

于 2012-06-02T21:47:26.410 に答える
0

一時的な解決策として、次のことを行いました。

プラグイン「crony cronjob manager」をダウンロードしました

このプラグインを使用すると、特定の時間間隔でカスタム php を実行できます。

私のカスタム php は次のようになります。

<?php

  $query = "SELECT * FROM wp_posts
         WHERE post_type = 'catalogus'
         AND post_date BETWEEN '" . date('Y-m-d', strtotime('-30 days')) . "'
         AND '" . date('Y-m-d', strtotime('-29 days')) . "'";

  $allposts = $wpdb->get_results($query);

  if($allposts){
    foreach ($allposts as $post) {
      // get post name for url 
      echo "http://xxxxxx.xxx/product/".$post->post_name;
      // get author email to send mail to.


      $to = get_the_author_meta('email',$post->post_author);
      $subject = "XXXXXXXXXXX";
      $headers = "From: XXXXX <noreply@XXXXXXX.nl>";
      $message = "Dummy message";
      wp_mail( $to, $subject, $message, $headers, $attachments ); 
    }
  }
  else{
    echo "No posts";
  }
?>

上記の Chris のように、この cron ジョブは訪問者がリクエストを行った場合にのみ実行されるため、これはまだ完全な解決策ではありません。私の次のステップは、上記のコードを実行する実際の cron ジョブまたはスケジュールされたタスクを作成することです。

于 2012-03-18T14:25:26.163 に答える