概要
woocommerce_shipping_zone_loaded
アクションは、WooCommerceにおける配送ゾーンが読み込まれた際にトリガーされるフックです。このアクションは、送料ゾーンに関連するさまざまな機能を実装する際に役立ちます。例えば:
- 送料ゾーンのカスタマイズ
- 顧客の地域に基づいた送料設定の変更
- 特定の配送オプションの有効化/無効化
- カスタム配送メソッドの追加
- 配送ゾーンに関連するビジネスロジックの実行
- 追加情報の表示や通知の管理
このアクションはWooCommerceバージョン3.0以降で利用可能であり、WordPressのバージョン4.0以降でサポートされています。
構文
add_action('woocommerce_shipping_zone_loaded', 'my_custom_function');
function my_custom_function($shipping_zone) {
// カスタムコード
}
パラメータ
$shipping_zone
: 読み込まれた配送ゾーンのインスタンス。
戻り値
このアクションは何も返さず、主に副作用としてその他の操作を実行します。
サンプルコード
サンプルコード1
add_action('woocommerce_shipping_zone_loaded', 'set_custom_shipping_zone_discount');
function set_custom_shipping_zone_discount($shipping_zone) {
$discount = 10; // 10%の割引
$shipping_zone->set_discount($discount);
}
このサンプルは、読み込まれた配送ゾーンに10%の割引を設定する機能を実装しています。
サンプルコード2
add_action('woocommerce_shipping_zone_loaded', 'modify_shipping_methods');
function modify_shipping_methods($shipping_zone) {
$methods = $shipping_zone->get_shipping_methods();
foreach ($methods as $method) {
if ($method->id === 'flat_rate') {
$method->enabled = 'no'; // 平準運賃を無効にする
}
}
}
このサンプルは、特定の配送メソッド(平準運賃)を無効にする機能を提供します。
サンプルコード3
add_action('woocommerce_shipping_zone_loaded', 'display_custom_message');
function display_custom_message($shipping_zone) {
echo '<div>現在の配送ゾーン: ' . esc_html($shipping_zone->get_id()) . '</div>';
}
このサンプルは、現在の配送ゾーンのIDを表示するカスタムメッセージを作成します。
サンプルコード4
add_action('woocommerce_shipping_zone_loaded', 'log_shipping_zone_info');
function log_shipping_zone_info($shipping_zone) {
error_log('配送ゾーンが読み込まれました: ' . $shipping_zone->get_id());
}
このサンプルは、配送ゾーンが読み込まれた際に、その情報をエラーログに記録します。
サンプルコード5
add_action('woocommerce_shipping_zone_loaded', 'validate_shipping_zone_settings');
function validate_shipping_zone_settings($shipping_zone) {
if ($shipping_zone->get_destination() === '特定の地域') {
// 特定の地域の設定を検証する処理
}
}
このサンプルは、特定の地域に対して配送ゾーンの設定を検証する機能を持っています。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
この表は、woocommerce_shipping_zone_loaded
アクションが他のデフォルトアクションで使用可能かどうかを示しています。