概要
woocommerce_checkout_shipping
アクションは、WooCommerceのチェックアウトプロセスにおいて、配送情報の入力セクションが表示された後に実行されます。このフックを利用することで、ユーザーに対してカスタムフィールドを追加したり、特定の条件に基づいてメッセージを表示したりすることが可能です。以下の機能を実装する際によく使用されます:
- カスタム配送オプションの表示
- 特別なメッセージや通知の追加
- フォームのバリデーションの実行
- ユーザーの入力に基づいたダイナミックな値の変更
- アップセルやクロスセル商品の提案
- セクションの見た目のカスタマイズ
構文
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%割引のメッセージを表示します。