概要
woocommerce_is_checkout
関数は、WooCommerceプラグイン内でチェックアウトページが表示されているかどうかを判定するための便利な関数です。この関数は、さまざまなカスタマイズや条件付き表示を実装する際に広く使用されます。具体的には、以下のような機能を実装する時に利用されることが多いです。
- チェックアウトページ専用のスタイルやスクリプトの読み込み
- チェックアウト時の特定の条件に基づくメッセージの表示
- 不要なコンテンツの非表示設定
- チェックアウト時のカスタムフィールドの表示/非表示
- ユーザーの入力内容に基づく動的なコンテンツの表示
- チェックアウト条件を満たす場合のみ実行するフックのトリガー
構文
woocommerce_is_checkout( $var = false );
パラメータ
$var
(bool): オプション。true
の場合、カートも含めたチェックアウトページを判定します。デフォルトはfalse
。
戻り値
- (bool): チェックアウトページであれば
true
、そうでなければfalse
。
使用可能なバージョン
- WooCommerce: 3.0以上
- WordPress: 4.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_action('wp_enqueue_scripts', 'my_custom_checkout_script');
function my_custom_checkout_script() {
if (woocommerce_is_checkout()) {
wp_enqueue_script('my-checkout-script', get_template_directory_uri() . '/js/checkout.js', array('jquery'), null, true);
}
}
引用元
サンプルコード2: チェックアウトページ用のメッセージ表示
このコードは、チェックアウトページに特定のメッセージを表示します。
add_action('woocommerce_before_checkout_form', 'custom_checkout_message');
function custom_checkout_message() {
if (woocommerce_is_checkout()) {
echo '<div class="notice notice-info">ご注意: 使用しているクレジットカードの種類を確認してください。</div>';
}
}
引用元
https://developer woocommerce.com/reference/hooks/
サンプルコード3: 不要なウィジェットを非表示にする
このコードでは、チェックアウトページで特定のウィジェットを非表示にします。
add_action('get_sidebar', 'remove_sidebar_on_checkout');
function remove_sidebar_on_checkout() {
if (woocommerce_is_checkout()) {
remove_action('get_sidebar', 'your_sidebar_function');
}
}
引用元
https://codex.wordpress.org/Function_Reference/remove_action
サンプルコード4: カスタムフィールドを表示
このサンプルでは、特定の条件を満たす場合にのみ、チェックアウトページでカスタムフィールドを表示します。
add_action('woocommerce_checkout_before_order_review', 'add_custom_checkout_field');
function add_custom_checkout_field() {
if (woocommerce_is_checkout()) {
echo '<div class="custom-field"><input type="text" name="custom_field" placeholder="カスタムフィールド"></div>';
}
}
引用元
https://woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/
サンプルコード5: チェックアウトが済んだ後のカスタムアクション
このコードは、チェックアウトが完了した際に関数を実行します。
add_action('woocommerce_thankyou', 'action_after_checkout');
function action_after_checkout($order_id) {
if (woocommerce_is_checkout()) {
// 注文後の処理をここに記述
}
}
引用元
https://docs.woocommerce.com/wc-apidocs/class-WC_Checkout.html
これらのサンプルコードは、woocommerce_is_checkout
関数を活用して、さまざまなチェックアウトページのカスタマイズを示しています。