概要
woocommerce_delete_order
アクションは、WooCommerce において注文が削除された際に発生するフックです。このアクションを使用することで、注文が削除された後に特定の処理を実行することができます。例えば、カスタムロギングや関連データのクリーンアップ、外部APIとの連携などが考えられます。
以下に、このアクションがよく使われる機能の例を挙げます。
- 注文削除後のカスタムロギング
- 削除された注文に関連するデータのクリーンアップ
- 削除通知を外部サービスに送信
- 顧客への注文削除通知メールの送信
- 削除された注文情報を管理画面に記録
- 在庫数の再計算や更新
構文
do_action('woocommerce_delete_order', $order_id);
パラメータ
$order_id
(int): 削除された注文のID。
戻り値
このアクションには戻り値はありません。
使用可能なプラグインのバージョン
- WooCommerce: 3.0以上
- WordPress: 4.0以上
サンプルコード
サンプルコード 1: 注文削除時にログを記録する
このコードは、注文が削除された際にログファイルにメッセージを追加します。
add_action('woocommerce_delete_order', 'log_deleted_order', 10, 1);
function log_deleted_order($order_id) {
$log_message = sprintf('Order %d has been deleted.', $order_id);
error_log($log_message);
}
引用元: https://developer.wordpress.org/plugins/hooks/
サンプルコード 2: 削除された注文に関連するカスタムデータを削除
このコードは、注文が削除されたときに関連するカスタムメタデータを削除します。
add_action('woocommerce_delete_order', 'delete_related_custom_data', 10, 1);
function delete_related_custom_data($order_id) {
delete_post_meta($order_id, '_custom_meta_key');
}
引用元: https://developer.wordpress.org/plugins/hooks/
サンプルコード 3: 削除された注文を外部APIに通知する
このコードは、外部APIに削除された注文の情報を送信します。
add_action('woocommerce_delete_order', 'notify_external_api', 10, 1);
function notify_external_api($order_id) {
$url = 'https://api.example.com/order_deleted';
$data = array('order_id' => $order_id);
wp_remote_post($url, array(
'method' => 'POST',
'body' => json_encode($data),
'headers' => array('Content-Type' => 'application/json'),
));
}
引用元: https://developer.wordpress.org/plugins/hooks/
サンプルコード 4: 顧客に削除通知メールを送信する
このコードは、顧客に注文が削除されたことを知らせるメールを送信します。
add_action('woocommerce_delete_order', 'send_order_deleted_notification', 10, 1);
function send_order_deleted_notification($order_id) {
$order = wc_get_order($order_id);
$to = $order->get_billing_email();
$subject = 'Your Order Has Been Deleted';
$message = sprintf('Order %d has been deleted.', $order_id);
wp_mail($to, $subject, $message);
}
引用元: https://developer.wordpress.org/plugins/hooks/
サンプルコード 5: 削除された注文情報を管理画面に記録する
このコードは、管理画面のエントリに削除された注文情報を記録します。
add_action('woocommerce_delete_order', 'record_deleted_order_info', 10, 1);
function record_deleted_order_info($order_id) {
global $wpdb;
$wpdb->insert('wp_order_deletes', array(
'order_id' => $order_id,
'deleted_at' => current_time('mysql'),
));
}
引用元: https://developer.wordpress.org/plugins/hooks/
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |