Welcartテンプレートの退避方法まとめ

スポンサーリンク

(2014年4月23日追記)この記事を書いた時点ではなかったのですが、Welcart公式サイトで「この情報は古いです」との注意書きが出ていたのを本日確認(それも、3年も前に新しい方法になっていたらしい・・・)。新しい退避の方法は、「wc_template」フォルダを使用テーマ内に設置し、カスタマイズしたいテンプレートをWelcartプラグインフォルダ内の「wc_template」からコピーしてきて設置します。すると、自動的にそちらが読み込まれるようになります。

function.phpへの退避コードは必要ありません。

Welcartの商品詳細ページやカートページなどをカスタマイズしたい場合は、テンプレートをWelcartのプラグインフォルダから使用中のテーマフォルダにコピー・ペーストして、それを変更していく必要があります。

と言うのも、Welcartにアップグレードがあった場合はプラグインフォルダ内のテンプレートも上書きされてしまうためです。

しかし、テンプレートをコピー・ペーストしただけでは、まだ読み込んでくれません。自分のテーマからWelcartテンプレートを読み込ませるように、functions.phpに命令を記述する必要があります。

Welcart公式サイトのこちらのページにも、詳しく方法が載っていますのでご一読下さい。

1. カスタマイズしたいテンプレートを退避させる

まず、Welcartのプラグインファイルに入っているtemplatesフォルダから、必要なテンプレートをコピー。

Welcartのカスタマイズ用ファイルの場所

使用中のテーマ内に設置したtemplatesフォルダ内に、コピーしたテンプレートを設置します。

この時、「cartフォルダ」や「memberフォルダ」に入っていたテンプレートは、コピー元のフォルダの場所と同じ形になるように、使用テーマ内の「templatesフォルダ」の中に、cart・memberという子フォルダも作って、その中にテンプレートを置きます。

Welcartの退避ファイルの設置場所

2. テンプレートを読み込ませる命令をfunctions.phpに書く

次に、退避させたテンプレートを読み込ませるため、functions.phpに以下の例のように記述します。(以下例:メンバーページの場合)

//Welcart退避用パッチ
add_action('init', 'my_welcart_template', 9);
function my_welcart_template(){
add_filter('usces_template_path_member_form', 'my_template_path_member_form');
}
function my_template_path_member_form( $path ){
	$path = get_stylesheet_directory() . '/templates/member/member_form.php';
	return $path;
}

複数のテンプレートを退避させる場合は、同じコードを何回も書くのではなく、(1)3行目のfunction my_welcart_templateのカッコ{の中にadd_filterを追加していき、(2)更に6~9行目のようなfunction関数(テンプレートを自分のテーマから読み込ませる命令)を加えます。

例えば、4つのテンプレートを退避させた場合は、以下のようになります。

//Welcart退避用パッチ
add_action('init', 'my_welcart_template', 9);
function my_welcart_template(){
add_filter('usces_template_path_member_form', 'my_template_path_member_form');
add_filter('usces_template_path_member', 'my_template_path_member');
add_filter('usces_template_path_customer', 'my_template_path_customer');
add_filter('usces_template_path_delivery', 'my_template_path_delivery');
}
function my_template_path_member_form( $path ){
	$path = get_stylesheet_directory() . '/templates/member/member_form.php';
	return $path;
}
function my_template_path_member( $path ){
	$path = get_stylesheet_directory() . '/templates/member/member.php';
	return $path;
}
function my_welcart_customer_path( $path ){
	$path = get_stylesheet_directory() . '/templates/cart/customer_info.php';
	return $path;
}
function my_template_path_delivery( $path ){
	$path = get_stylesheet_directory() . '/templates/cart/delivery_info.php';
	return $path;
}

カスタマイズ出来るWelcartテンプレートと、フィルターの一覧

テンプレート フィルター
カートの中 /cart/cart.php usces_template_path_cart
注文完了 /cart/completion.php usces_template_path_ordercompletion
注文内容の確認 /cart/confirm.php usces_template_path_confirm
お客様情報の入力 /cart/customer_info.php usces_template_path_customer
配送・支払方法 /cart/delivery_info.php usces_template_path_delivery
エラーページ /cart/error.php usces_template_path_carterror
メンテナンスページ /cart/maintenance.php usces_template_path_maintenance
パスワード変更 /member/changepassword.php usces_template_path_changepassword
入会完了 /member/completion.php usces_template_path_membercompletion
ログインページ /member/login.php usces_template_path_login
パスワード再発行 /member/lostpassword.php usces_template_path_lostpassword
会員ページ /member/member.php usces_template_path_member
新規入会フォーム /member/member_form.php usces_template_path_member_form
商品詳細ページ /single_item.php usces_template_path_single_item
商品検索ページ /search_item.php usces_template_path_search_item
その他のページ /wp_search_item.php usces_template_path_wp_search

コメントは受け付けていません。

Copyright© 2017 Welcart カスタマイズ ブログ All Rights Reserved.