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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

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

Q&A

解決済

1回答

2683閲覧

Wordpress:Simple Membershipのユーザページにお問合せフォームを設置する

LEBIPHIDE

総合スコア15

WordPress

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

0グッド

0クリップ

投稿2020/01/29 06:58

編集2020/01/30 11:54

実現したいことはタイトルの通りです。
Simple Membershipの使用経験者様に回答をお願いしたいです。

【現状】
会員制のWebサービスを構築しています。
メンバーシップ機能を実装するために、WPのプラグインであるSimple Membershipを使用しています。
会員からのみのお問合せを受け付けるため、マイページ(/membership.login)へのフォームの設置を考えています。

データベース等の知識が足りないため、フォームもまたWPのプラグインを利用して設置したいです。
→そうすると、一般的にはショートコードを貼る形になるかと思います。

【山】
Simple Membershipはログインページとユーザプロフィールページのパーマリンクが同一で、
ログインの有無によって表示内容を変えているようです(未ログイン時login.php読み込み、ログイン時loggedin.php読み込み)。
したがって、プロフィールページの設置を目的としたショートコードの貼り付けによって、
ログインページにもフォームが表示されてしまうという状況になります。

これを改善し、ログインした後のこのパーマリンクのページにフォームを表示させたい。

【乗り越えれば解決できそうな点】
①もしSimple Membershipにおいてログインの有無を判定するショートコードを作れれば、解決します。
→[ifログイン] [フォーム] [/ifログイン] のように固定ページに記述することによって実現できると考えました。
この場合、[ifログイン]のショートコードを生成できれば、解決されます。

②Simple Membershipにおける views/loggedin.php にフォームを設置できれば、解決します。
→ログイン後にのみ読み込まれるファイルにフォームを設置できれば、当然ログイン後にのみ閲覧可能となります。
この場合、フォームもプラグインを用いていますので、あるプラグインのphpファイルに別のプラグインを導入することが求められます。

①も②も当方のスキル不足によって現状では突破が厳しいです。
乗り越えれば解決できそうな点を打開する方法、プラグインの紹介など、知恵をお貸しいただければ幸いです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

会員からのみのお問合せを受け付けるため、マイページ(/membership.login)へのフォームの設置を考えています。

の 「マイページ」に設置は、必須条件なのでしょうか?

必須要件でないのであれば...

  1. 「お問い合わせ」固定ページを作成して「Simple WP Membership プロテクション」で「お問い合わせ」ページにアクセス制限をかける。
  2. 「ログイン」固定ページで、「お問い合わせ」ページへのリンクを記載する。

で、対応できないでしょうか。


(追記)

コメント風フォームを簡単に実現する案は思いつかないのですが...

質問にある

→[ifログイン] [フォーム] [/ifログイン] 
のように固定ページに記述することによって実現できると考えました。
この場合、[ifログイン]のショートコードを生成できれば、解決されます。

の「ログインユーザーにショートコードに挟まれたメッセージ(生HTML含む)を表示する」だけであれば、

例では、「my_loginuser_only」ショートコードを作る

function login_only_content_346773( $atts, $content = null ) { if ( is_user_logged_in() ) { return '<div class="loginuser">' . $content . '</div>'; } else { return '<div class="nologin">ログインしてください</div>'; } } add_shortcode( 'my_loginuser_only', 'login_only_content_346773' );

のような感じのコードを追加して、[my_loginuser_only]My Caption[/my_loginuser_only] のようなショートコードで、ログインユーザーだけに表示することは可能と思いますが、フォーム等の場合 POST 先での処理も必要になるのでいろいろ工夫する必要があると思います。

投稿2020/01/30 14:01

編集2020/02/03 01:20
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LEBIPHIDE

2020/02/01 08:17

ありがとうございます。確かにそれがもっともシンプルな方法ですね。 マイページに設置したい理由は、お問合せに対する返事もまたマイページで行いたかったからです。 そもそもSimple Membershipでユーザ-管理者間でユーザページでの情報のやりとりが可能かはわからないのですが、CHERRYさんの案を婉曲して採用するのであれば、メンバー分の固定ページを用意するという形になるのでしょうか。
CHERRY

2020/02/02 03:23

ああ、なるほど、お問い合わせフォームというよりは、WordPressのコメント欄みたいなイメージですか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問