0

私はクライアントが私に構築してほしいものを持っています、そして私はwp_mailでできます、しかし私はそれがどのように構築されるべきか疑問に思っています-彼らはサードパーティのウェブサイトやソフトウェアを使いたくないのです。

基本的に、ウィジェットはクライアントの電子メールアドレスを取り込みます。これにより、次のことが可能になります。

カテゴリx、y、xの5、10、15の投稿を毎日、毎週、または毎月送信すると言えるように、何らかのインターフェースを用意します

それは難しいことではありませんが、問題は、受信した電子メールをどのように保存するかということです。新しい列?

これらのメールとカスタム投稿タイプを使用して、指定した時間に一連のメール(この場合は現在保存されているすべてのメール)に送信できるメールテンプレートやニュースレターなどを作成します。

これも難しいことではありません。カスタム投稿タイプの部分です。投稿が公開されたときに、投稿と同じように投稿が公開されないカスタム投稿タイプ、またはページを作成するにはどうすればよいですか。代わりに、1つのように保存されますが、投稿やページのように表示する代わりに、そのコンテンツを電子メールの本文で使用できます。

基本的に私は行くことができないはずです:site.come/email_templates/post_id

2つ目はもう少し複雑ですが、皆さんがこの状況やアイデアにどのようにアプローチするのか疑問に思っています。

4

1 に答える 1

1

電子メールのサブスクリプションの部分に関しては、いくつかの考えがあります。カスタム投稿タイプに関しては-私はそれらの経験があまりありません、ごめんなさい:)

電子メールサブスクリプションの迅速で簡単なソリューションが必要な場合は、基本的にカテゴリをテーブル内のキーにマップするハッシュテーブルであるwpオプション( http://codex.wordpress.org/Function_Reference/add_optionを参照)を作成します。

ハッシュテーブルのカテゴリごとに、そのカテゴリにサブスクライブしているユーザーのユーザーIDや電子メールの配列を格納します。

このデータ構造を設定すると、wp_mailでの操作と使用が非常に簡単になります。これが私のプラグインの1つのために書いたいくつかのサンプルコードです:

        $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.
                        }
                    }
                }
            }
        }

注意すべき点:

  • これは迅速で汚い解決策です。カテゴリの数とサブスクライバーの数が大きくなった場合は、データベースにテーブルを作成し、そのように維持する方がよいでしょう。
  • カテゴリが削除されたときの状況(つまり、カテゴリが削除されたときにアクションにフックする)と、それがデータ構造にどのように影響するかを必ず考えてください。
  • カテゴリが頻繁に削除/追加されないことを前提として、ハッシュテーブルアプローチはうまく機能します

幸運を!

于 2012-11-09T04:27:19.457 に答える