概要
woocommerce_order_note_deleted
は、WooCommerce において特定の注文のメモが削除された際に呼び出されるフックです。このアクションは、注文メモの管理や監視に関連するカスタム機能を実装する際に非常に便利です。具体的には以下のようなシナリオで使用されることが多いです。
- メモ削除のロギング
- 削除されたメモに基づく通知の送信
- 削除されたメモをデータベースにバックアップ
- 削除のアクションに応じたユーザーインターフェースの更新
- メモ削除に関するカスタムアクションのトリガー
- ユーザーごとのアクティビティ管理
構文
do_action('woocommerce_order_note_deleted', $note_id, $order_id);
パラメータ
$note_id
(int): 削除されたメモの ID$order_id
(int): 削除されたメモが関連付けられている注文の ID
戻り値
このアクションは、値を返しません。
使用可能なバージョン
- WooCommerce: 3.0以降
- WordPress: 4.0以降
サンプルコード
サンプルコード 1: メモ削除のロギング
このコードでは、注文メモが削除されるたびに削除ログを保存します。
add_action('woocommerce_order_note_deleted', 'log_order_note_deletion', 10, 2);
function log_order_note_deletion($note_id, $order_id) {
$log_entry = "Order Note ID {$note_id} for Order ID {$order_id} was deleted.";
error_log($log_entry);
}
このコードは、エラーログに削除されたメモの情報を記録します。
サンプルコード 2: 管理者への通知
このコードは、メモが削除されたときに管理者に通知メールを送信します。
add_action('woocommerce_order_note_deleted', 'notify_admin_on_order_note_deleted', 10, 2);
function notify_admin_on_order_note_deleted($note_id, $order_id) {
$to = get_option('admin_email');
$subject = "Order Note Deleted";
$message = "Order Note ID {$note_id} has been deleted from Order ID {$order_id}.";
wp_mail($to, $subject, $message);
}
このコードは、管理者に削除されたメモの通知を送信します。
サンプルコード 3: 削除メモのバックアップ
このコードは、削除されたメモのバックアップをデータベースに保存します。
add_action('woocommerce_order_note_deleted', 'backup_deleted_order_note', 10, 2);
function backup_deleted_order_note($note_id, $order_id) {
global $wpdb;
$note_content = $wpdb->get_var($wpdb->prepare("SELECT comment_content FROM {$wpdb->comments} WHERE comment_ID = %d", $note_id));
$wpdb->insert('wp_deleted_order_notes', ['order_id' => $order_id, 'note_content' => $note_content]);
}
このコードは、削除されたメモを別のテーブルに保存します。
サンプルコード 4: ユーザーインターフェースの更新
このコードは、メモが削除されたときに関連するユーザーインターフェースを更新します。
add_action('woocommerce_order_note_deleted', 'update_ui_on_order_note_deleted', 10, 2);
function update_ui_on_order_note_deleted($note_id, $order_id) {
// UI更新処理を実装(AJAXなどを使用)
echo json_encode(['status' => 'success', 'message' => 'Order note deleted successfully.']);
wp_die(); // AJAXの終了
}
このコードは、削除操作が成功したことを示すレスポンスを生成します。
サンプルコード 5: ユーザーアクティビティの記録
このコードでは、ユーザー別にアクティビティを記録します。
add_action('woocommerce_order_note_deleted', 'record_user_activity_on_note_deletion', 10, 2);
function record_user_activity_on_note_deletion($note_id, $order_id) {
$user_id = get_current_user_id();
update_user_meta($user_id, 'deleted_order_notes', $note_id);
}
このコードは、現在のユーザーが削除したメモの ID をユーザーメタに記録します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
この表では、woocommerce_order_note_deleted
アクションが他のフックで使用される可能性を示しています。