我想创建一个wordpress用户注册功能,以便用户和管理员每年都应该收到电子邮件警报


I want to create a wordpress user registration function so that both user and admin should get email alert after every year

我得到了所有用户。如果任何用户的截止日期接近365,他/她应该在15天前收到一封电子邮件提醒到他们的注册邮件id。

有了这个函数,我能够得到第一年的正确结果,但从下一年开始,用户注册日期将是相同的,所以它不会与365天计算。

我不知道该怎么办。请帮帮我。
  <?php
            if (!function_exists('nopaymentmade')) {
                function nopaymentmade($user_id) {
                    $blogusers = get_users('role=paid-membership');
                    // Array of WP_User objects.
                    foreach ($blogusers as $user) {
                        //$user->user_registered;
                        // $user_id=$user->ID;
                        $user->user_registered;
                        $user_id = $user->ID;
                        $user_login = $user->user_login;
                        $user_email = $user->user_email;
                        $devabirthdate = $user->user_registered;
                        /* input birthday date format -> Y-m-d */
                        list($y, $m, $d) = explode('-', $devabirthdate);
                        $nowdate = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
                        $nextbirthday = mktime(0, 0, 0, $m, $d, date("Y"));
                        if ($nextbirthday < $nowdate)
                            $nextbirthday = $nextbirthday + (60 * 60 * 24 * 365);
                        $daycount = intval(($nextbirthday - $nowdate) / (60 * 60 * 24));
                        //echo $daycount; 
                        if ($daycount < 349) {
                            /* echo $user->user_registered;
                              echo "<br/>";
                              echo $user_id=$user->ID;
                              echo "<br/>";
                              echo $user_login=$user->user_login;
                              echo "<br/>";
                              echo $user_email=$user->user_email;
                              echo "<br/>"; */
                            $message = sprintf(__('your Account will be expired in next 15 days %s:'), get_option('blogname')) . "'r'n'r'n";
                            $message .= sprintf(__('Username: %s'), $user_login) . "'r'n'r'n";
                            $message .= sprintf(__('E-mail: %s'), $user_email) . "'r'n";
                            @wp_mail(
                                            $user_email, sprintf(__('[%s] Account Expiration alert'), get_option('blogname')), $message
                            );
                        }
                    }
                }
?>

一个更好的方法。

  • 确保你的cron每天运行一次
  • 总是在用户元中存储下一个生日,这样对于每个用户,您可以检查相同的元键值,并确保当cron运行时,当条件变为真时,您在发送邮件后更新下一个生日。
    • 在上面的声明中,我所说的条件将包括检查当前日期与存储在usermeta中的下一个生日相差15天的条件。
相关文章: