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

概要

woocommerce_save_settings_$CURRENT_TABアクションは、WooCommerceの設定が保存される際にトリガーされるフックです。このフックは、WordPressの管理画面内で特定のタブに関連する設定が保存された後に実行され、主に設定のデータを処理・保存する際に活用されます。このアクションは次のような状況でよく使われます。

  • カスタム設定の検証
  • フィールドのデータをデータベースに保存
  • サードパーティサービスへのデータ送信
  • 設定の変更に自身のビジネスロジックを追加
  • 特定のユーザーに対する設定のカスタマイズ
  • 設定保存後の通知やログ記録

構文

do_action( "woocommerce_save_settings_{$current_tab}" );

パラメータ

  • $current_tab: 現在の設定タブの識別子(文字列)。

戻り値

このアクションは特に戻り値を持ちませんが、フックを利用する関数は通常、特定の処理結果を持つ場合があります。

WooCommerceのバージョン

  • WooCommerce 3.0.0以降

WordPressのバージョン

  • 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( 'woocommerce_save_settings_general', 'save_custom_general_settings' );

function save_custom_general_settings( $settings ) {
    // カスタムフィールドのデータを保存
    if ( isset( $_POST['custom_field'] ) ) {
        update_option( 'custom_field', sanitize_text_field( $_POST['custom_field'] ) );
    }
}

このサンプルコードは、WooCommerceの一般設定タブで「custom_field」というカスタムフィールドのデータを保存するためのものです。

サンプルコード2

add_action( 'woocommerce_save_settings_accounts', 'handle_account_settings' );

function handle_account_settings() {
    if ( isset( $_POST['account_custom_option'] ) ) {
        update_option( 'account_custom_option', sanitize_text_field( $_POST['account_custom_option'] ) );
    }
}

このコードは、アカウント設定タブにおいてカスタムオプションのデータをデータベースに保存する役割を果たします。

サンプルコード3

add_action( 'woocommerce_save_settings_payment', 'log_payment_settings_changes' );

function log_payment_settings_changes() {
    // 設定変更のログを記録
    error_log( 'Payment settings have been saved.' );
}

このサンプルは、WooCommerceの支払い設定タブで設定が保存された際に、変更をログに記録します。

サンプルコード4

add_action( 'woocommerce_save_settings_shipping', 'validate_shipping_settings' );

function validate_shipping_settings() {
    // 減算設定が有効かを検証
    if ( ! isset( $_POST['shipping_calculator_enable'] ) ) {
        add_settings_error( 'shipping_settings', 'shipping_error', 'Shipping calculator must be enabled.' );
    }
}

このコードは、配送設定タブでいくつかの設定の検証を行い、エラーが存在する場合は適切なメッセージを表示します。

サンプルコード5

add_action( 'woocommerce_save_settings_products', 'notify_products_settings_saved' );

function notify_products_settings_saved() {
    // 設定が保存された後に管理者に通知
    if ( current_user_can( 'manage_options' ) ) {
        add_action( 'admin_notices', function() {
            echo '<div class="notice notice-success"><p>Product settings saved successfully!</p></div>';
        });
    }
}

このサンプルコードは、商品設定タブにおいて設定が正常に保存された際に、管理者に成功メッセージを表示します。

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


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