会員限定のコメント機能

フォーラム その他 会員限定のコメント機能

  • このトピックには11件の返信、3人の参加者があり、最後にmaziにより10年、 4ヶ月前に更新されました。
12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • 投稿者
    投稿
  • #71176
    mazi
    参加者

    ——————————————-
    WordPress のバージョン:3.9.1–ja
    Welcart のバージョン:1.4.3
    ご利用のテーマ:welthemes
    症状を確認したブラウザ:Goole Chrome
    サーバー(会社名、サービス名):CPI
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    お客様コメントを商品ページにつけたいのですが、どうしたらようでしょうか?
    コメントがつけられるのはログインした人だけ、
    コメントは誰でも自由に見ることができる 仕様

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

    • このトピックはyasumaxが10年、 4ヶ月前に変更しました。
    #71319
    Mizuho Ogino
    参加者

    ① wc_item_single.php内にコメントテンプレートを読み込ませる。
    <?php comments_template( '', true ); ?>

    ② comments.php内のcomment_form()という関数の前後を普通に条件分岐する。

    
    if(usces_is_login()):
    comment_form()
    else:
    'コメントされる場合は'.usces_loginout().'してください。';
    endif;
    

    みたいな感じでいかがでしょう。

    #71327
    mazi
    参加者

    ——————————————-
    WordPress のバージョン:3.9.1–ja
    Welcart のバージョン:1.4.3
    ご利用のテーマ:welthemes
    症状を確認したブラウザ:Goole Chrome
    サーバー(会社名、サービス名):CPI
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    fishpieさま

    返信ありがとうございます。
    残念ながら、
    ① wc_item_single.php内にコメントテンプレートを読み込ませる。
    <?php comments_template( ”, true ); ?>

    こちらを wc_item_single.phpに書き込みましたが、コメントフォームが表示されませんでした。

    #71330
    mazi
    参加者

    ——————————————-
    WordPress のバージョン:3.9.1–ja
    Welcart のバージョン:1.4.3
    ご利用のテーマ:welthemes
    症状を確認したブラウザ:Goole Chrome
    サーバー(会社名、サービス名):CPI
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    fishpieさま

    コメントフォームは<?php comment_form(); ?>で表示できました。
    ② comments.php内のcomment_form()という関数の前後を普通に条件分岐する。

    こちらをもう一度やってみます。
    ありがとうございました。

    #71332
    Mizuho Ogino
    参加者

    ① comments_template( )はお使いのテーマ内にcomments.phpが存在しないと動きません。
      comments.phpはいろいろなテーマによって、中身の書き方が違ってきます。welcart_defaultでもいいですが、Twenty Fourteenなどの公式の機能を満たした新しいcomments.phpが記述もシンプルで参考にしやすいと思います。Twenty Fourteenのcomments.phpを今お使いのテーマにコピーしてから、wc_item_single.php内の好きなところで、omments_template()と記述すると読み込まれるはずです。

    ② 先の記述ですが誤りがありました。usces_loginoutはデフォルトでechoされてしまうので、文中に使うならreturnを指定しないと行けませんでした。

    if(usces_is_login()):
    comment_form()
    else:
    echo 'コメントされる場合は'.usces_loginout( 'return' ).'してください。';
    endif;
    #71335
    mazi
    参加者

    fishpieさま

    ありがとうございます。

    ① comments_template( )はお使いのテーマ内にcomments.phpが存在しないと動きません。
      comments.phpはいろいろなテーマによって、中身の書き方が違ってきます。welcart_defaultでもいいですが、Twenty Fourteenなどの公式の機能を満たした新しいcomments.phpが記述もシンプルで参考にしやすいと思います。Twenty Fourteenのcomments.phpを今お使いのテーマにコピーしてから、wc_item_single.php内の好きなところで、omments_template()と記述すると読み込まれるはずです。

    こちらにつきましてはこの通りやってみたらできました。

    しかし
    ② 先の記述ですが誤りがありました。usces_loginoutはデフォルトでechoされてしまうので、文中に使うならreturnを指定しないと行けませんでした。

    文字化けしてしまい、コメントフォームも表示されません。
    よろしくお願いいたします。

    #71336
    mazi
    参加者

    ——————————————-
    WordPress のバージョン:3.9.1–ja
    Welcart のバージョン:1.4.3
    ご利用のテーマ:welthemes
    症状を確認したブラウザ:Goole Chrome
    サーバー(会社名、サービス名):CPI
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    fishpieさま

    以下のようにしましたら、文字化けしないで条件分岐できました。

    <?php if(usces_is_login()): ?>
    	<?php comment_form(); ?>
            <?php else: ?>
    <?php echo usces_loginout(); ?>
    <a>"><?php _e('New enrollment for membership.','usces') ?></a>
    <?php endif; ?>

    ただし、「ログインをされるとコメントができます」が表示できずに、
    ログイン 新規ご入会はこちら
    ↑の表示のみです。

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

    • この返信は10年、 4ヶ月前にyasumaxが編集しました。
    #71345
    Mizuho Ogino
    参加者

    もうほとんどできていると思うのですが…^^;
    なるべくhtmlに近い形で書くとすれば…、たとえば、こんな感じです。

    
    <?php if(usces_is_login()): ?>
    <?php comment_form(); ?>
    <?php else: ?>
    <p>ログインされるとコメントすることができます。</p>
    <p>
    <a href="<?php echo USCES_LOGIN_URL; ?>" title="<?php _e('Log-in','usces'); ?>"><?php _e('Log-in','usces'); ?></a>
     / 
    <a href="<?php echo USCES_NEWMEMBER_URL; ?>" title="<?php _e('New enrollment for membership.','usces'); ?>"><?php _e('New enrollment for membership.','usces'); ?></a>
    </p>
    <?php endif; ?>
    

    <?php _e(‘●●●,’usces’); ?>の部分を直接お好みの文字に書き換えればと良いと思います。

    #71346
    Mizuho Ogino
    参加者

    訂正します。

    <?php if(usces_is_login()): ?>
    <?php comment_form(); ?>
    <?php else: global $usces; ?>
    <p>ログインされるとコメントすることができます。</p>
    <p>
    <a href="<?php echo USCES_LOGIN_URL; ?>" title="<?php _e('Log-in','usces’); ?>"><?php _e('Log-in','usces’); ?></a>
     / 
    <a href="<?php echo USCES_NEWMEMBER_URL; ?>" title="<?php _e('New enrollment for membership.','usces’); ?>"><?php _e('New enrollment for membership.','usces’); ?></a>
    </p>
    <?php endif; ?>
    #71348
    yskysmr
    キーマスター

    mazi 様

    文字化けするのは、テンプレートファイルの文字コードが違うのではないでしょうか。テンプレートファイルは、UTF-8 で保存してください。

    #71350
    mazi
    参加者

    fishpieさま

    ありがとうございます。
    #71345のコードは表示できましたが、なぜか#71346では表示されませんでした。
    ログインなどのところはボタンの画像にしてリンクすれば見栄えも良くなりそうです。

    #71351
    mazi
    参加者

    yskysmr様

    ご指摘ありがとうございます。
    文字化けのファイルをもう一度確認し直してみます。
    どうぞよろしくお願いいたします。

12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • このトピックに返信するにはログインが必要です。