会員情報をメンバーページ以外に表示するショートコードはありますか

2016 年 2 月 12 日

ホーム フォーラム 使い方全般 会員情報をメンバーページ以外に表示するショートコードはありますか

このトピックには4件の返信が含まれ、2人の参加者がいます。11 ヶ月前 dswdsw123456 さんが最後の更新を行いました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #77340

    dswdsw123456
    参加者

    ログイン後の
    会員情報(氏名・メールアドレスなど)を
    メンバーページ以外に表示する
    ショートコードはありますか

    具体的に行いたいことは

    ユーザーがログインしている際に
    ContactFoam7で作成したお問い合わせフォームの
    氏名・メールアドレスなどの記入欄の
    初期値に、ユーザー氏名などのショートコードを入れ

    ログインしている場合の
    記入箇所を減らしたいと思っております。

    何卒よろしくお願い申し上げます。

    #77348

    yasumax
    キーマスター

    こんにちは。

    会員情報のショートコードは用意されていません。

    管理画面から問い合わせフォームの編集で初期値のショートコードをいれるイメージをされていますでしょうか。
    Contact Form 7では、フォームタグは全てショートコードで記述する形になっていますので、さらに内側に別のショートコードをいれることはできません。

    Contact Form 7側でwpcf7_form_tagというフィルターが用意されているので、そちらを利用して各フォームのvalue値に会員情報をいれる形でやってみてはいかがでしょうか。
    会員情報はusces_memberinfo( ●●, 'return' )で各種取得することができますので挑戦してみてください。

    ※余談ですが、Contact Form 7には、HTTP GET 変数からデフォルト値を取得する方法が用意されていますが、会員情報の場合この方法はやめておいたほうがいいかと思います。

    #77535

    dswdsw123456
    参加者

    お教えいただいた方法で、試してみたのですが
    どうしても上手くいきませんでした。

    function my_form_tag_filter($tag){
      if ( ! is_array( $tag ) )
      return $tag;
         $user = usces_localized_name( usces_memberinfo( 'name1', 'return' ), usces_memberinfo( 'name2', 'return' ) ); 
    
    if($user) {
        $name = $tag['name'];
        if($name == 'your-name')
          $tag['values'] = $user;
      }
      return $tag;
    }
    add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);

    フォームの【input name】が【 your-name 】だった場合
    values値に、会員情報【 name1・name2 】
    を入れるとしてみましたが

    values値に入らず
    フォーム外に表示されてしまいます。

    welcartプラグインの
    質問範囲外かとは思いましたが
    どうしても、解決できず
    困ってしまい、ご質問させていただきました。

    よろしければ、お教え下さい。

    何卒よろしくお願いいたします。

    ——————————————-
    WordPress のバージョン:4.4.2
    Welcart のバージョン:Version 1.7.2
    ご利用のテーマ:デフォルトテーマをカスタマイズ
    SSLの利用:無し
    ——————————————–

    #77536

    yasumax
    キーマスター

    こんにちは。

    usces_localized_nameは第3引数がない場合、echoします。
    変数として利用するのであれば第3引数に'return'を指定してください。

    #77574

    dswdsw123456
    参加者

    ご回答ありがとうございました。

    ・変数であれば、return
    ・第3引数がない場合は、echoする。

    参考になりました。

    以前のコードを少し修正して以下で
    問題が解決いたしました。

    function my_form_tag_filter($tag){
    	if ( !is_array( $tag ) )
    	return $tag;
    	$user = usces_localized_name( usces_memberinfo( 'name1', 'return' ), usces_memberinfo( 'name2', 'return' ), 'return'); 
    
    	if(isset($user)) {
    		$name = $tag['name'];
    		if($name == 'your-name')
    		$tag['values'] = (array)$user;
    	}
    	return $tag;
    }
    add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);

    ありがとうございました。助かりました。

    ※ contactform7側の問題でwatermarkに指定があると
    valuesに入らずplaceholderに入ってしまうようです。

5件の投稿を表示中 - 1 - 5件目 (全5件中)

このトピックに返信するにはログインが必要です。