概要
woocommerce_get_shipping_classes
フィルタは、WooCommerceショップにおいて、配送クラスの取得やカスタマイズを行う際に使われます。このフックを利用することで、既存の配送クラスを変更したり、新しい配送クラスを追加したりすることができます。具体的には以下のような機能でよく使用されます。
- 新しい配送クラスを追加する
- 既存の配送クラスをフィルタリングする
- 特定の条件に基づいて配送クラスを適用する
- 管理画面で配送クラスの表示を変更する
- カスタム配送ロジックを実装する
- 料金設定に応じた配送クラスの調整
構文
add_filter('woocommerce_get_shipping_classes', 'callback_function');
パラメータ
$shipping_classes
(array) – 既存の配送クラスの配列
戻り値
- (array) – フィルタリングまたは変更された配送クラスの配列
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 2.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_filter('woocommerce_get_shipping_classes', 'add_new_shipping_class');
function add_new_shipping_class($shipping_classes) {
$shipping_classes[] = '新しい配送クラス'; // 新しい配送クラスを追加
return $shipping_classes;
}
このコードは、新しい配送クラスを配列に追加し、WooCommerceの配送クラスに表示させる機能を実装します。
サンプルコード 2: 特定の条件に基づいて配送クラスをフィルタリング
add_filter('woocommerce_get_shipping_classes', 'filter_shipping_classes');
function filter_shipping_classes($shipping_classes) {
// '子供向け' クラスを除外
if(($key = array_search('子供向け', $shipping_classes)) !== false) {
unset($shipping_classes[$key]);
}
return $shipping_classes;
}
このコードは、特定の配送クラスを除外する機能を追加します。ここでは「子供向け」クラスを配送オプションから削除しています。
サンプルコード 3: 配送クラスの名前を変更
add_filter('woocommerce_get_shipping_classes', 'modify_shipping_class_name');
function modify_shipping_class_name($shipping_classes) {
if (isset($shipping_classes['送料無料'])) {
$shipping_classes['送料無料'] = '送料無料クラス'; // 名前を変更
}
return $shipping_classes;
}
このコードでは、既存の配送クラス「送料無料」の名前を「送料無料クラス」に変更しています。
サンプルコード 4: 配送クラスの表示順序を変更
add_filter('woocommerce_get_shipping_classes', 'sort_shipping_classes');
function sort_shipping_classes($shipping_classes) {
asort($shipping_classes); // 配送クラスをアルファベット順にソート
return $shipping_classes;
}
このコードでは、配送クラスの表示順序をアルファベット順に変更しています。
サンプルコード 5: 管理画面で配送クラスの説明を追加
add_filter('woocommerce_get_shipping_classes', 'add_description_to_shipping_classes');
function add_description_to_shipping_classes($shipping_classes) {
foreach ($shipping_classes as $class => $name) {
$shipping_classes[$class] = $name . ' - 説明文'; // 説明文を追加
}
return $shipping_classes;
}
このコードでは、すべての配送クラスに説明文を追加し、管理画面での情報表示を豊かにします。
これらのコードはWooCommerceの配送クラスをカスタマイズする際の参考になります。各サンプルは独自の機能を持っていますが、基本的な使い方は同じです。