• 解決済 arrowfield

    (@arrowfield)


    Ultimate Memberというプラグインの最新版を使って
    会員限定サイトを構築中なのですが
    以下の方法が分からず
    教えていただけると幸いです。

    Ultimate Member
    https://ja.wordpress.org/plugins/ultimate-member/

    ■実現したい事
    プラグインにより生成される会員ログインページ
    (Default Login [ultimatemember form_id=”131″]を埋め込んだ固定ページ)
    から、一般会員(購読者)がログイン後
    再度同じURL※(上記のログインページ)にアクセスした場合に表示される
    画面メッセージの文言やリンク等を削除・変更したい。
    (※ログイン後に遷移を指定したロケート先のページではありません)

    【消したい項目】
    ・ログイン中ユーザの画像アイコン
    ・ログイン中ユーザの名前
    ・「あなたのアカウント」(プロフィールページへのリンク)
    ・「ログアウト」

    【消した代わりに表示したいメッセージ】
    「すでにログイン済ですので、会員限定情報が閲覧可能です」など

    【対応の方法について】
    プラグインのアップデート時に修正が消えてしまわないように
    子テーマの、functions.php への記述等で対応したい。
    (アップデートによって影響が出なければ、他の方法でも構いません)

    上記の【消したい項目】を表示している処理は
    プラグインのフォルダ
    ultimate-member\includes\core

    um-actions-user.php
    の中にコードがあるのを見つけ
    直接このファイルを編集(該当項目のタグの削除等)すると
    画面の表示にも反映されました。

    ただ、この方法では
    プラグインのアップデート時に消えてしまうと思われ

    functions.php内へのコード追記で
    um-actions-user.php
    の書き換え替えが出来ないか

    あるいはほかの方法でもよいので
    プラグインのアップデート時に修正が消えてしまわないように対応できないか
    具体的な方法について
    教えていただけると幸いです。

    以下は、直接編集した、
    変更前と変更後の
    um-actions-user.php
    のコードです。

    【変更前(オリジナル)】

    <?php if ( ! defined( 'ABSPATH' ) ) exit;
    
    /**
     * Adds main links to a logout widget
     *
     * @param $args
     */
    function um_logout_user_links( $args ) {
    	?>
    
    	<li>
    		<a href="/">すでにログイン済ですので、会員情報が閲覧可能です。</a>
    	</li>
    
    	<?php
    }
    add_action( 'um_logout_user_links', 'um_logout_user_links', 100 );

    【変更後】

    <?php if ( ! defined( 'ABSPATH' ) ) exit;
    
    /**
     * Adds main links to a logout widget
     *
     * @param $args
     */
    function um_logout_user_links( $args ) {
    	?>
    
    	<li>
    		<a href="/">すでにログイン済ですので、会員情報が閲覧可能です。</a>
    	</li>
    
    	<?php
    }
    add_action( 'um_logout_user_links', 'um_logout_user_links', 100 );
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 arrowfield

    (@arrowfield)

    【変更前】のコードが間違えてしまいました。
    申し訳ありません。以下がオリジナルの内容です。

    	<li>
    		<a href="<?php echo esc_url( um_get_core_page( 'account' ) ); ?>">
    			<?php _e( 'Your account', 'ultimate-member' ); ?>
    		</a>
    	</li>
    	<li>
    		<a href="<?php echo esc_url( add_query_arg( 'redirect_to', UM()->permalinks()->get_current_url( true ), um_get_core_page( 'logout' ) ) ); ?>">
    			<?php _e( 'Logout', 'ultimate-member' ); ?>
    		</a>
    	</li>
    
    	<?php
    }
    add_action( 'um_logout_user_links', 'um_logout_user_links', 100 );

    こんにちは

    プラグインの /templates/logout.php ファイルを、子テーマディレクトリ下の /ultimate-member/templates/ ディレクトリにコピーすると、こちらが優先されて表示されます。

    (子テーマディレクトリ)/ultimate-member/templates/logout.php

    logout.php:

    オリジナル:
    do_action( 'um_logout_user_links', $args ); ?>

    変更後:

    //do_action( 'um_logout_user_links', $args ); ?>
    <li><a href="/">すでにログイン済ですので、会員情報が閲覧可能です。</a></li>
    トピック投稿者 arrowfield

    (@arrowfield)

    ありがとうございます!

    教えていただいた通りの方法で解決できました。
    助かりました。
    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Ultimate MemberNOログイン後画面のカスタマイズについて」には新たに返信することはできません。