質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • WordPress

    7647questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

WordPressでのお問い合わせ登録

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 652
退会済みユーザー

退会済みユーザー

WordPress初心者です。
現在web構築を行っているのですが以下のソースが
組み立てられず困っています。


投稿者権限グループに所属しているユーザでコネクトフォームに登録したい。

問い合わせフォームのフィールドは作成してあり、名前および住所等が記載されてあります。

WordPress初心者で苦戦しています。
お手数ですが知っている方ご教授をお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2017/03/07 21:16

    質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2017/03/07 21:32

    kei344様:ご指摘ありがとうございます。読みにくく大変申し訳ございませんでした。修正致しました。教えて頂きありがとうございます。

    キャンセル

  • 退会済みユーザー

    2017/03/07 22:52

    複数のユーザーから「意図的に内容が抹消された質問」という意見がありました
    解決後に編集機能を用いて質問内容を改変し関係のない内容にしたり、内容を削除する行為は禁止しています。
    投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になると考えるからです。
    「質問を編集する」ボタンから編集を行い、他のユーザにも質問内容が見えるように修正してください。

回答 1

checkベストアンサー

+1

質問文の修正ありがとうございます。

Contact Form 7で作成したフォームで送信する内容を、同時に投稿として保存するのであれば、以下の内容が参考になるかと思います。
(Contact Form 7のフックを検索していたら、偶然見つけました)

Contact Form 7のhook集 - Daily GLOCALISM
http://daily.glocalism.jp/wordpress/contact-form-7-hooks/

追記

// Contact Form 7で作成したフォームの送信ボタンを押下
// フォームの内容がメールで送信される時にその内容を投稿(post)として登録する
add_action('wpcf7_mail_sent', 'gloc_wpcf7_insert_post', 10, 1);

function gloc_wpcf7_insert_post(){

    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        // フォームで送信されるデータを取得する
        $formdata = $submission->get_posted_data();

        // 必要に応じて、$formdataからデータを読み出す
        $email = $formdata['your-email'];
        $name = $formdata['your-name'];
        $message = $formdata['your-message'];
        $other = $formdata['some_meta'];

        // 投稿の所有者となるユーザーIDを指定する
        $author = 1;

        // データベースへ投稿を追加する
        $new_post = array(
            'post_type' => 'post',
            'post_title' => $email . ' ' . $name ,
            'post_status' => 'draft',
            'post_content' => $message,
            'post_author' => $author // 指定しない場合は、ログイン中のユーザーの所有となる
        );
        $post_id = wp_insert_post( $new_post );

        // 関連情報などがあれば、投稿IDで結びつけてメタデータとして追加する
        add_post_meta( $post_id, 'some_meta', $other);
    }
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/07 20:37

    ご回答ありがとうございます。
    確認します。
    再度ご返答致します。

    キャンセル

  • 2017/03/07 20:50

    確認しました。ありがとうございます。
    サンプルどおりで
    メール送信後に保存機能はできそうです。
    ただ、『投稿者権限グループに所属しているユーザ』でというところが
    管理者権限になってしまいます。
    何か不足のコードが必要なんでしょうか。

    キャンセル

  • 2017/03/07 21:07

    いまいち仕様を理解できていないのですが、投稿者ユーザがフォームから送信したときだけ、wp_insert_postするようにしたいということですか?
    そうであれば、`current_user_can()`で権限が投稿者であるかを判定すればいいのではないでしょうか。

    キャンセル

  • 2017/03/07 21:29

    説明が下手で申し訳ございません。
    プラグインのWP Membersで作成したユーザー(投稿者)レベルで登録をするというものです。

    キャンセル

  • 2017/03/07 21:38

    To: tanugumaさん
    管理者でログインしながら 別ユーザーとして記事を書きたい、という事でしょうか。それで無ければメール送信テストを『投稿者権限グループに所属しているユーザ』でログインした状態で行わないといけないのでは。

    キャンセル

  • 2017/03/07 21:43

    質問者様の文章ですと、何を登録したいのかという目的語が抜けていて理解が難しいです。

    特定の投稿者ユーザーを所有者としてwp_insert_postしたいということであれば、
    wp_insert_post()のパラメータpost_authorを設定すればいいだけです。

    キャンセル

  • 2017/03/07 21:43

    kei344様:
    ご回答ありがとうございます。
    管理者でログインや異なるユーザでログインしている状態でも
    『送信』ボタンを押下した時に『投稿者』として登録したいということです。

    キャンセル

  • 2017/03/07 21:47

    To: tanugumaさん
    『投稿者』は誰でしょう?特定の人であれば mizさんの書かれているように post_authorを設定すればいいだけです。

    キャンセル

  • 2017/03/07 21:48

    miz様:
    ご回答ありがとうございます。
    言葉足らずで申し訳ございません。
    氏名や住所等を保存したいのですが
    投稿レベルを『投稿者』として保存したいという意味です。

    キャンセル

  • 2017/03/07 21:53

    miz様、kei344様
    ご回答ありがとうごじます。
    wp_insert_post()のパラメータpost_authorを失念しておりました。
    解決できました。長々とありがとうございました。

    キャンセル

  • 2017/03/07 22:19

    編集履歴が記録されているので、質問文を書き換えても意味ないんだけどなあ。

    キャンセル

同じタグがついた質問を見る

  • WordPress

    7647questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。