概要
woocommerce_attribute_updated
アクションフックは、WooCommerceの商品属性が更新された際にトリガーされます。このフックは、商品属性の変更があった場合に追加の処理を実行するために使用されます。主に以下の機能を実装する際によく使われます:
- 属性が更新されたことをログに記録する
- 更新された属性に基づいてキャッシュをクリアする
- 属性の変更に応じてカスタムメタデータを更新する
- 外部システムやAPIとの連携を行う
- メール通知を送信する
- 属性のバリデーションやチェックを行う
構文
do_action( 'woocommerce_attribute_updated', $attribute_id, $attribute );
パラメータ
$attribute_id
(int): 更新された属性のID$attribute
(array): 更新された属性の詳細情報
戻り値
このアクションフック自体は戻り値を持ちません。コールバック関数を用いて他の処理を行うことが目的です。
使用可能なプラグインWooCommerceのバージョン
WooCommerce: 3.0.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: 属性更新のログを記録
このサンプルコードは、更新された商品属性のIDとその詳細をログファイルに記録します。
add_action( 'woocommerce_attribute_updated', 'log_attribute_update', 10, 2 );
function log_attribute_update( $attribute_id, $attribute ) {
$log_entry = sprintf( 'Attribute updated: ID %d, Details: %s', $attribute_id, print_r( $attribute, true ) );
error_log( $log_entry );
}
引用元: https://woocommerce.com
サンプル2: キャッシュをクリア
このコードは、属性が更新されたときに特定のキャッシュをクリアします。
add_action( 'woocommerce_attribute_updated', 'clear_attribute_cache', 10, 2 );
function clear_attribute_cache( $attribute_id, $attribute ) {
if ( function_exists( 'clear_custom_cache' ) ) {
clear_custom_cache( $attribute_id );
}
}
引用元: https://developer.wordpress.org
サンプル3: メール通知を送信
このサンプルは、属性が更新されたときに管理者にメールを送信します。
add_action( 'woocommerce_attribute_updated', 'notify_admin_attribute_updated', 10, 2 );
function notify_admin_attribute_updated( $attribute_id, $attribute ) {
$to = get_option( 'admin_email' );
$subject = '商品属性が更新されました';
$message = sprintf( '属性 %s が更新されました。', $attribute['name'] );
wp_mail( $to, $subject, $message );
}
引用元: https://wpbeginners.com
サンプル4: 外部APIへの通知
このコードは、商品属性が更新された際に外部APIへ通知を送ります。
add_action( 'woocommerce_attribute_updated', 'notify_external_api', 10, 2 );
function notify_external_api( $attribute_id, $attribute ) {
$api_url = 'https://api.example.com/attribute-updated';
$data = array(
'id' => $attribute_id,
'name' => $attribute['name']
);
wp_remote_post( $api_url, array(
'method' => 'POST',
'body' => json_encode( $data ),
'headers' => array( 'Content-Type' => 'application/json' ),
));
}
引用元: https://stackoverflow.com
サンプル5: カスタムメタデータの更新
このサンプルは、属性変更に応じてカスタムメタデータを更新します。
add_action( 'woocommerce_attribute_updated', 'update_custom_meta', 10, 2 );
function update_custom_meta( $attribute_id, $attribute ) {
update_post_meta( $attribute_id, '_custom_meta_key', $attribute['name'] );
}
引用元: https://codex.wordpress.org