概要
woocommerce_delete_product_variation
アクションは、WooCommerce プラグインにおいて商品バリエーションが削除されたときに実行されるフックです。このフックを使用することで、商品バリエーション削除時に特定の処理をカスタマイズしたり、追加のアクションをトリガーすることができます。
このアクションの主な使用目的には以下が含まれます:
- 商品バリエーション削除時のログ記録
- 外部システムへの通知
- 商品データの再計算
- 削除されたバリエーションに関連するメタデータのクリーンアップ
- 削除されたバリエーションに関連する在庫状況の更新
- 管理者への通知を送信
構文
do_action('woocommerce_delete_product_variation', $variation_id, $product_id);
パラメータ
$variation_id
(int): 削除されたバリエーションのID。$product_id
(int): 削除されたバリエーションが属する親商品のID。
戻り値
このアクションは値を返しません。
互換性
- WooCommerce バージョン: 3.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_delete_product_variation', 'log_variation_deletion', 10, 2);
function log_variation_deletion($variation_id, $product_id) {
$log_message = sprintf('Variation %d deleted for product %d.', $variation_id, $product_id);
error_log($log_message);
}
このコードは、商品バリエーションが削除されるたびに、削除されたバリエーションのIDと親商品のIDをログに記録します。
サンプル2: 外部APIへの通知
add_action('woocommerce_delete_product_variation', 'notify_external_system', 10, 2);
function notify_external_system($variation_id, $product_id) {
$data = [
'variation_id' => $variation_id,
'product_id' => $product_id,
];
wp_remote_post('https://example.com/api/notify', ['body' => json_encode($data)]);
}
このコードは、商品のバリエーションが削除されると、外部APIに通知を送信します。
サンプル3: バリエーションに関連するメタデータの削除
add_action('woocommerce_delete_product_variation', 'delete_variation_meta', 10, 2);
function delete_variation_meta($variation_id, $product_id) {
delete_post_meta($variation_id, '_custom_meta_key');
}
このコードは、削除されたバリエーションに関連するカスタムメタデータを削除します。
サンプル4: 在庫状況の更新
add_action('woocommerce_delete_product_variation', 'update_stock_status', 10, 2);
function update_stock_status($variation_id, $product_id) {
$parent_product = wc_get_product($product_id);
$parent_product->update_stock_status();
}
このコードは、削除されたバリエーションに基づいて親商品の在庫状況を更新します。
サンプル5: 管理者への通知
add_action('woocommerce_delete_product_variation', 'notify_admin', 10, 2);
function notify_admin($variation_id, $product_id) {
$admin_email = get_option('admin_email');
$subject = 'Variation Deleted';
$message = sprintf('The variation with ID %d has been deleted from product %d.', $variation_id, $product_id);
wp_mail($admin_email, $subject, $message);
}
このコードは、商品バリエーションが削除されると管理者にメール通知を送信します。