概要
woocommerce_update_non_option_setting
アクションは、WooCommerceの設定が更新された際にトリガーされるフックであり、ユーザーがWooCommerceの設定ページで行った変更を処理するのに使用されます。このアクションは主に以下のような機能を実装する際によく使われます。
- カスタム設定のデータを保存
- 他のプラグインやテーマとの連携処理
- 設定変更後のキャッシュクリア
- 設定変更内容に基づく通知の送信
- 特定のユーザーに特典を付与
- 監査ログの記録
構文
do_action('woocommerce_update_non_option_setting', $setting_name, $setting_value);
パラメータ
setting_name
(string): 更新された設定の名前。setting_value
(mixed): 更新された設定の値。
戻り値
このアクションフック自体は値を返しませんが、他のフックや関数を通じて処理結果を確認することが可能です。
使用可能なバージョン
- WooCommerce: バージョン 2.6.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_action('woocommerce_update_non_option_setting', 'send_setting_change_notification', 10, 2);
function send_setting_change_notification($setting_name, $setting_value) {
// 設定変更通知メールを送信するロジック
wp_mail('admin@example.com', '設定変更通知', "設定 '$setting_name' が新しい値 '$setting_value' に更新されました。");
}
このコードは、WooCommerceの設定が変更されたときに管理者に通知メールを送信します。
サンプルコード 2: 他プラグインとの連携処理
add_action('woocommerce_update_non_option_setting', 'update_related_plugin_settings', 10, 2);
function update_related_plugin_settings($setting_name, $setting_value) {
// 他のプラグインの設定も同時に更新するロジック
if ($setting_name === 'example_setting') {
update_option('related_plugin_setting', $setting_value);
}
}
このコードは、特定のWooCommerceの設定が変更された際に、関連するプラグインの設定も同時に更新します。
サンプルコード 3: キャッシュのクリア
add_action('woocommerce_update_non_option_setting', 'clear_cache_after_setting_update', 10, 2);
function clear_cache_after_setting_update($setting_name, $setting_value) {
// 設定変更後のキャッシュをクリアする
if ($setting_name === 'cache_setting') {
wp_cache_flush();
}
}
このコードは、特定の設定が更新された際にキャッシュをクリアします。
サンプルコード 4: 監査ログの記録
add_action('woocommerce_update_non_option_setting', 'log_setting_changes', 10, 2);
function log_setting_changes($setting_name, $setting_value) {
// 設定変更を監査ログに記録するロジック
$log_entry = sprintf("設定 '%s' が '%s' に変更されました。", $setting_name, $setting_value);
error_log($log_entry);
}
このコードは、WooCommerceの設定変更を監査ログとして記録します。
サンプルコード 5: 特定ユーザーへの特典付与
add_action('woocommerce_update_non_option_setting', 'grant_loyalty_points', 10, 2);
function grant_loyalty_points($setting_name, $setting_value) {
// 特定の設定変更時にロイヤリティポイントを付与するロジック
if ($setting_name === 'loyalty_program_enabled') {
// ポイントを付与する処理
}
}
このコードは、WooCommerceの特定の設定が変更された際に、顧客にロイヤリティポイントを付与する処理を行います。