2012-11-09 251 views
0

我有一個客戶希望我建立,我可以用wp_mail,但我想知道它應該如何建立是不可能的 - 沒有他們不想使用第三方網站或軟件。WordPress的電子郵件,自定義帖子類型和電子郵件訂閱

基本上是一個小部件將在客戶的電子郵件地址,這個我們可以:

有某種接口,所以我們可以說,送出5,10,類X,Y,15個員額X在每日,每週或每月的基礎上

這不難,但問題是:我將如何存儲電子郵件進來?一個新的專欄?

使用這些電子郵件和自定義帖子類型來創建電子郵件模板,新聞簡報等,可以在指定的時間發送到一組電子郵件(在這種情況下,所有電子郵件現在存儲)。

這一個也不難,它的自定義帖子類型的一部分,我將如何創建一個自定義帖子類型,當一個帖子發佈帖子未發佈的方式是一個帖子或一個頁面。而是像其中一樣存儲,但我可以在電子郵件正文中使用它的內容,而不是像郵寄或頁面那樣顯示它。

基本上我不應該能去: site.come/email_templates/POST_ID

所以,第二個是一個比較複雜一點,但我想知道如何你們可能會接近這一情況或想法。

回答

1

以下是關於電子郵件訂閱部分的一些想法。至於自定義帖子類型 - 我沒有太多的經驗,對不起:)

如果你想要一個快速和簡單的電子郵件訂閱解決方案,創建一個wp選項(見http://codex.wordpress.org/Function_Reference/add_option),本質上將類別映射到表中的鍵的哈希表。

對於散列表中的每個類別,存儲訂閱該類別的用戶的用戶ID和/或電子郵件數組。

一旦你有了這個數據結構,就可以很容易地操作和使用wp_mail。下面是我爲我的插件之一寫了一些示例代碼:

 $subscribers = get_option('subscribers'); 
     $categories = get_the_category($post->ID); 

     if(!empty($categories) && !empty($subscribers)){ 
      $emails = array(); 
      //Go through each category and accumulate the necessary e-mail addresses 
      foreach($categories as $category){ 
       $catID = $category->term_id; 
       if(!empty($subscribers[$catID])){ 
        foreach($subscribers[$catID] as $userID => $trash){ 
         $user  = get_userdata($userID); 
         $userEmail = array($userID => $user->user_email); 
         if(!in_array($userEmail, $emails)){ 
          $emails = $emails + $userEmail; 
          //you can use something like implode(", ", $emails) 
          //in the Bcc: part when you send out the e-mail. 
         } 
        } 
       } 
      } 
     } 

需要注意以下幾點:

  • 這是一個快速和骯髒的解決方案。如果類別數量和用戶數量增長很大,您最好在數據庫中創建一個表格並保持該表格
  • 確保考慮類別被刪除時的情況(例如,刪除類別時掛鉤到操作中)和
  • 哈希表的方法效果很好假設類別不會被刪除/常

好運氣如何加入會影響您的數據結構!