wordpress サイトの場合、wordpress で投稿を作成してから 30 日後に送信されるリマインダーを実装する必要があります。
例えば:
投稿者が投稿を作成すると、この投稿の作成から 30 日後に、作成者は管理者プロファイル ダッシュボードで入力した電子メール アドレスにメールを受け取ります。
メールには、元の投稿への URL が含まれている必要があります。
私を助けることができる利用可能なプラグインはありますか、それともカスタム関数を書くべきですか?
前もって感謝します。
ここで直面する問題は、ユーザーがリクエストを行ったときに PHP が実行されることです。そのため、適切な日または適切な時間に誰もサイトにアクセスしないと、必要なコードが実行されない可能性があります。たとえそうであっても、この機能に対するランダムなユーザー要求を遅くしたいですか?
スケジュールされたタスク (windows) または cron ジョブ (linux) を調べるのが最善です。これらのユーティリティを使用して、特定の時刻または特定の間隔 (毎時、毎日午前 0 時など) で PHP スクリプトを実行できます。次に、特定の投稿を見つけてメールを送信する PHP スクリプトを作成します。
ホスティング プロバイダーがスケジューリング ユーティリティへのアクセスを許可していない場合。自分のコンピューター、またはこの作業を行う特定の PHP ファイルを呼び出すスケジュールされたタスクを持つ別のコンピューターをセットアップできます。
ブログ更新リマインダーが必要です。
必要に応じてこのプラグインを変更しました。きっと気に入っていただけると思います;-)
一時的な解決策として、次のことを行いました。
プラグイン「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 ジョブまたはスケジュールされたタスクを作成することです。