概要
woocommerce_cancel_unpaid_order
アクションは、WooCommerceにおいて未払いの注文がキャンセルされた際にトリガーされるフックです。このアクションは、特定の処理を実行するための機会を提供し、主に次のような機能を実装する際に利用されます。
- 未払いの注文キャンセル後にユーザーへの通知を送る。
- 在庫を再調整する処理を行う。
- 特定のログ情報を記録する。
- 外部サービスへの通知を行う。
- 検索エンジン最適化(SEO)のためのメタ情報調整を行う。
- フロントエンドやバックエンドのUIに変更を加える。
構文
do_action('woocommerce_cancel_unpaid_order', $order_id);
パラメータ
$order_id
: キャンセルされた未払いの注文のID。
戻り値
このアクションは戻り値を返しません(void)。
使用可能なプラグインWooCommerceのバージョン
- 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_cancel_unpaid_order', 'send_cancel_notification', 10, 1);
function send_cancel_notification($order_id) {
$order = wc_get_order($order_id);
$to = $order->get_billing_email();
$subject = 'Your Order has been Cancelled';
$message = 'Your order #' . $order_id . ' has been cancelled due to unpaid status.';
wp_mail($to, $subject, $message);
}
このコードは、未払いの注文がキャンセルされた際に、該当するユーザーに通知メールを送信します。
サンプルコード 2 – 在庫の再調整
add_action('woocommerce_cancel_unpaid_order', 'restock_order_items', 10, 1);
function restock_order_items($order_id) {
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item_id => $item) {
$product = $item->get_product();
$product->set_stock_status('instock');
$product->save();
}
}
このコードは、キャンセルされた未払い注文のアイテムの在庫状態を「在庫あり」に戻します。
サンプルコード 3 – ログの記録
add_action('woocommerce_cancel_unpaid_order', 'log_cancelled_order', 10, 1);
function log_cancelled_order($order_id) {
error_log('Order ' . $order_id . ' was cancelled due to non-payment.');
}
このコードでは、キャンセルされた注文のIDをエラーログに記録します。
サンプルコード 4 – 外部サービスへの通知
add_action('woocommerce_cancel_unpaid_order', 'notify_external_service', 10, 1);
function notify_external_service($order_id) {
$url = 'https://example.com/api/order/cancel';
wp_remote_post($url, array(
'body' => json_encode(array('order_id' => $order_id)),
'headers' => array('Content-Type' => 'application/json'),
));
}
このコードは、外部APIにキャンセルされた注文の情報を通知します。
サンプルコード 5 – SEO用メタ情報の変更
add_action('woocommerce_cancel_unpaid_order', 'update_meta_for_cancelled_order', 10, 1);
function update_meta_for_cancelled_order($order_id) {
// SEO用のメタ情報を更新する処理。
update_post_meta($order_id, '_seo_status', 'cancelled');
}
このコードは、キャンセルされた注文のメタ情報を更新してSEO対策を行います。