wordpress plug-in

Welcart でログイン直後に表示するページを変更する方法


wordpress plug-in

WordPress の Welcart でログイン直後に表示するページを変更する方法です。

functions.php に以下の内容を追記します。

/*-------------------------------------------*/
/* ログイン後のリダイレクト先変更
/*-------------------------------------------*/
function jcs_usces_action_after_login(){
    $url = get_bloginfo('url')."/member-the-first/"; // リダイレクト先URL指定
    wp_redirect( $url );
    exit;
}
add_action( 'usces_action_after_login', 'jcs_usces_action_after_login' );


購入履歴が増えると、ログインに時間がかかるという問い合わせを頂きました。購入履歴の表示件数を制限して別ページに分けるのが一番いいのだとは思いますが、今回は一時対応として、ログイン直後のページだけ購入履歴や会員情報の編集を無くした画面を表示するようにしました。

表示する固定ページは、テンプレートで作ってもいいと思ったのですが、手っ取り早くショートコードで固定ページに追記する方法をご紹介します。まず、functions.php に以下の内容を追記します。

/*-------------------------------------------*/
/* ショートコードでパーツを追加する
/* [partsphp file='filename']
/*-------------------------------------------*/
add_filter('widget_text', 'do_shortcode');
function Include_parts_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(STYLESHEETPATH . "/parts/$file.php");
    return ob_get_clean();
}
add_shortcode('partsphp', 'Include_parts_php');

welcart_default テーマの wc_templates の中にある wc_member_page.php を取得し、適当な名前に変更。まずはヘッダーやフッターなど不要な部分を削除します。

<!-- wc_member_page.php の不要な部分を削除 -->
<div id="memberpages">

<div class="whitebox">
	<div id="memberinfo">
	<table id="memberdetail">
		<tr>
			<th scope="row"><?php _e('member number', 'usces'); ?></th>
			<td class="num"><?php usces_memberinfo( 'ID' ); ?></td>
			<td rowspan="3" class="blank_cell">&nbsp;</td>
			<th><?php _e('Strated date', 'usces'); ?></th>
			<td><?php usces_memberinfo( 'registered' ); ?></td>
		</tr>
		<tr>
			<th scope="row"><?php _e('Full name', 'usces'); ?></th>
			<td><?php esc_html_e(sprintf(_x('%s', 'honorific', 'usces'), usces_localized_name( usces_memberinfo( 'name1', 'return' ), usces_memberinfo( 'name2', 'return' ), 'return' ))); ?></td>
			<?php if(usces_is_membersystem_point()) : ?>
			<th><?php _e('The current point', 'usces'); ?></th>
			<td class="num"><?php usces_memberinfo( 'point' ); ?></td>
			<?php else : ?>
			<th>&nbsp;</th>
			<td class="num">&nbsp;</td>
			<?php endif; ?>
		</tr>
		<tr>
			<th scope="row"><?php _e('e-mail adress', 'usces'); ?></th>
			<td><?php usces_memberinfo('mailaddress1'); ?></td>
			<?php $html_reserve = '<th>&nbsp;</th><td>&nbsp;</td>'; ?>
			<?php echo apply_filters( 'usces_filter_memberinfo_page_reserve', $html_reserve, usces_memberinfo( 'ID', 'return' ) ); ?>
		</tr>
	</table>
    <!-- 会員情報の下に表示する項目を調整 -->
	<ul class="member_submenu">
		<li class="edit_member"><a href="/usces-member/#edit">会員情報編集はこちら 》</a></li>
		<li><a href="/usces-member/#memberdetail">購入履歴はこちら 》</a></li>
		<?php do_action( 'usces_action_member_submenu_list' ); ?>
		<li class="logout_member"><?php usces_loginout(); ?></li>
	</ul>

	</div><!-- end of memberinfo -->
</div><!-- end of whitebox -->
</div><!-- end of memberpages -->

現在利用中のテーマに parts というディレクトリを作成して、編集したファイルをアップロードします。(今回、 member-page.php という名前にしました。)

最後に表示させたい固定ページに以下のショートコードを追加します。

[partsphp file='member-page']

以上で準備完了、リダイレクト先に今回作成した固定ページを設定すれば完成です。

自己紹介

松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか…

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。

現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です