WordPress计划程序电子邮件

时间:2015-09-14 04:12:23

标签: php wordpress email

我对WordPress php编码和多个循环不是很好,请一些帮助。

我正在尝试创建一个API函数调用调度程序邮件。它做的是检查帖子表以获得woocommerce订购的帖子。获取post_status为'wc-completed'的post_modified元,并根据post_modified日期,该函数将在post_modified日期的5天后向用户发送电子邮件。

public function schedulerMail(){
        global $wpdb;

        $s= $wpdb->get_results("SELECT ID,post_modified FROM $wpdb->posts WHERE post_status like 'wc-completed'");
        for($i = 0; $i < count($s); $i++){
            $post_data = array (
            'ID' => $s[$i]->ID,
            'post_modified' =>$s{$i}->post_modified,        
            );
            return array ("post"=>$post_data);
        }

    }

我已经提出了这个代码,它确实显示了$ s的正确数据。

{
0: [
{
ID: "99",
post_modified: "2015-09-02 07:58:14"
},
{
ID: "100",
post_modified: "2015-09-04 02:59:27"
},
{
ID: "101",
post_modified: "2015-09-09 07:36:56"
}
],
status: "ok"
}

但是当我返回$ post_data时,它只返回1行数据而不是3行

{
   status: "ok",
   post: {
      ID: "99",
      post_modified: "2015-09-02 07:58:14"
         }
}

我不知道如何解释它,但我想根据这些日期进行日期检查,如果日期已经过了5天,则发送电子邮件。

1 个答案:

答案 0 :(得分:0)

解决了Ankur140290

public function schedulerMail(){
        global $wpdb;
        $s= $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status like 'wc-completed' AND DATE_SUB(CURDATE(),INTERVAL 10 DAY) <= post_modified");
        for($i = 0; $i < count($s); $i++){
            $post_data[$i]['ID'] = $s[$i]->ID;
            //$this->mailout($post_data[$i]['ID']);

        }
        return array("ID"=> $post_data);
    }