プラグインWooCommerceのwoocommerce_checkout_shippingアクションの使用方法・解説

概要

woocommerce_checkout_shipping アクションは、WooCommerceのチェックアウトプロセスにおいて、配送情報の入力セクションが表示された後に実行されます。このフックを利用することで、ユーザーに対してカスタムフィールドを追加したり、特定の条件に基づいてメッセージを表示したりすることが可能です。以下の機能を実装する際によく使用されます:

  1. カスタム配送オプションの表示
  2. 特別なメッセージや通知の追加
  3. フォームのバリデーションの実行
  4. ユーザーの入力に基づいたダイナミックな値の変更
  5. アップセルやクロスセル商品の提案
  6. セクションの見た目のカスタマイズ

構文

do_action( 'woocommerce_checkout_shipping' );

パラメータ

woocommerce_checkout_shipping アクションは、引数を取らず、呼び出される際には特定のパラメータを持ちません。

戻り値

このアクション自体は何も戻すものではありませんが、各フックで実行される関数に基づいて、ページ上に追加されるコンテンツや機能に影響を与えます。

使用可能なバージョン

  • WooCommerce バージョン: すべてのバージョン
  • WordPress バージョン: すべてのバージョン

この関数のアクションでの使用可能性

アクション 使用例
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( 'woocommerce_checkout_shipping', 'custom_shipping_message' );
function custom_shipping_message() {
    echo '<p class="custom-message">特別な配送オプションをお選びください。</p>';
}

このコードは、チェックアウトの配送情報セクションに「特別な配送オプションをお選びください。」というメッセージを追加します。

サンプルコード 2

add_action( 'woocommerce_checkout_shipping', 'add_custom_shipping_field' );
function add_custom_shipping_field( $checkout ) {
    echo '<div class="custom-field">';
    woocommerce_form_field( 'custom_shipping_note', array(
        'type'          => 'textarea',
        'class'         => array('form-row-wide'),
        'label'         => __('配送に関する特別な指示'),
        'placeholder'   => __('例: 玄関口に届けてほしい'),
    ), $checkout->get_value( 'custom_shipping_note' ));
    echo '</div>';
}

このコードは、配送セクションにカスタムのテキストエリアフィールドを追加します。

サンプルコード 3

add_action( 'woocommerce_checkout_shipping', 'validate_custom_shipping_field' );
function validate_custom_shipping_field() {
    if ( isset($_POST['custom_shipping_note']) && empty($_POST['custom_shipping_note']) ) {
        wc_add_notice( '配送に関する特別な指示をもらう必要があります。', 'error' );
    }
}

このコードは、カスタムのテキストエリアフィールドに値が入力されていない場合、エラーメッセージを表示します。

サンプルコード 4

add_action( 'woocommerce_checkout_shipping', 'display_additional_info' );
function display_additional_info() {
    if ( is_user_logged_in() ) {
        echo '<p class="logged-in-message">ログイン中: カスタムビルダーオプションが利用可能です!</p>';
    }
}

このコードは、ユーザーがログインしている場合に特定のメッセージを表示します。

サンプルコード 5

add_action( 'woocommerce_checkout_shipping', 'add_discount_message' );
function add_discount_message() {
    $discount = 10; // 割引率
    echo '<p class="discount-message">次回の配送に10%割引が適用されます!</p>';
}

このコードは、チェックアウト時に次回の配送に対する10%割引のメッセージを表示します。

この関数について質問する


上の計算式の答えを入力してください