概要
wc_get_template
フィルタは、WooCommerceプラグインにおけるテンプレートファイルの取得プロセスを変更するためのフックです。このフックを利用することで、特定のテンプレートを置き換えたり、カスタマイズしたりすることができます。WooCommerceのカスタマイズが必要な場合に非常に便利です。主に以下のような機能で用いられます。
- オリジナルのテンプレートをカスタマイズする
- 特定のページや条件に基づいて異なるテンプレートを提供する
- デフォルトのWooCommerceテンプレートの動作を変更する
- テンプレートのパスを動的に変更する
- テンプレートの内容を変更する
- プラグインやテーマの互換性を保つためのカスタマイズ
構文
add_filter('wc_get_template', 'my_custom_wc_get_template', 10, 2);
パラメータ
$template_name
: 使用するテンプレートファイルの名前。$template_path
: テンプレートのパス。
戻り値
カスタマイズしたテンプレートのパス。
使用可能なプラグイン / ワードプレスのバージョン
- WooCommerce: 4.0以降
- WordPress: 5.0以降
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | |
wp_head |
サンプルコード
サンプルコード 1
add_filter('wc_get_template', 'custom_woocommerce_template', 10, 2);
function custom_woocommerce_template($template_name, $template_path) {
if ($template_name === 'cart/cart.php') {
$template_name = 'my-custom-cart.php';
}
return $template_name;
}
このコードは、WooCommerceのカートページのテンプレートを my-custom-cart.php
に置き換えます。
サンプルコード 2
add_filter('wc_get_template', 'change_checkout_template', 10, 2);
function change_checkout_template($template_name, $template_path) {
if ($template_name === 'checkout/form-checkout.php') {
$template_name = 'custom-checkout.php';
}
return $template_name;
}
このコードは、WooCommerceのチェックアウトページのテンプレートをカスタムテンプレートに変更します。
サンプルコード 3
add_filter('wc_get_template', 'add_product_template', 10, 2);
function add_product_template($template_name, $template_path) {
if ($template_name === 'single-product.php') {
$template_name = 'custom-single-product.php';
}
return $template_name;
}
このサンプルでは、商品詳細ページのテンプレートを custom-single-product.php
に変更しています。
サンプルコード 4
add_filter('wc_get_template', 'modify_order_received_template', 10, 2);
function modify_order_received_template($template_name, $template_path) {
if ($template_name === 'checkout/thankyou.php') {
$template_name = 'custom-thankyou.php';
}
return $template_name;
}
このコードは、注文完了ページのテンプレートをカスタムのものに変更します。
サンプルコード 5
add_filter('wc_get_template', 'custom_cart_action_template', 10, 2);
function custom_cart_action_template($template_name, $template_path) {
if ($template_name === 'cart/cart-empty.php') {
$template_name = 'my-empty-cart.php';
}
return $template_name;
}
このコードは、カートが空のときに表示されるテンプレートを独自のものに置き換えます。
すべてのサンプルコードは著作権フリーで、各々の目的に応じたテンプレートのカスタマイズ方法を示しています。