概要
woocommerce_create_order
アクションは、WooCommerceで新しい注文が作成された際にトリガーされるフックです。このフックは、次のような機能を実装する際によく使用されます。
- 注文確認メールのカスタマイズ
- 注文に関連するカスタムデータの保存
- 注文ステータスの変更
- リアルタイム在庫管理の実装
- サードパーティサービスへのデータ送信
- 注文作成直後のカスタムアクションの実行
構文
do_action( 'woocommerce_create_order', $order );
パラメータ
$order
: 作成された注文を表すWC_Order
オブジェクト。
戻り値
このアクションには戻り値はありません。
使用可能なバージョン
- WooCommerceのバージョン: 2.1.0以降(正確なバージョンはWooCommerceのリリースノートを確認)
- 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_create_order', 'add_custom_meta_to_order' );
function add_custom_meta_to_order( $order ) {
$order_id = $order->get_id();
$custom_value = 'カスタムデータ';
update_post_meta( $order_id, '_custom_meta_key', $custom_value );
}
引用元: WooCommerce Developer Docs
サンプル2: 注文作成時のメール通知をカスタマイズ
このコードでは、注文が作成されると、メール通知の内容を変更します。
add_action( 'woocommerce_create_order', 'customize_order_email' );
function customize_order_email( $order ) {
// メール本文のカスタマイズ
add_filter( 'woocommerce_email_subject_new_order', function( $subject, $order ) {
return '新しい注文番号: ' . $order->get_id();
}, 10, 2 );
}
引用元: WooCommerce Email Customization Guide
サンプル3: 注文ステータスを自動的に変更
このコードでは、注文が作成されたときにステータスを「保留」に変更します。
add_action( 'woocommerce_create_order', 'change_order_status_on_creation' );
function change_order_status_on_creation( $order ) {
$order->update_status( 'on-hold' );
}
引用元: Making WooCommerce Orders
サンプル4: 外部APIへの注文データ送信
このサンプルでは、注文が作成されたときに、外部APIに注文情報を送信します。
add_action( 'woocommerce_create_order', 'send_order_to_external_api' );
function send_order_to_external_api( $order ) {
$data = array(
'order_id' => $order->get_id(),
'total' => $order->get_total(),
);
wp_remote_post( 'https://api.example.com/orders', array(
'method' => 'POST',
'body' => json_encode( $data ),
'headers' => array( 'Content-Type' => 'application/json' ),
));
}
引用元: Integrating WooCommerce with External APIs
サンプル5: 割引クーポンの自動適用
このサンプルでは、新しい注文が作成されると、特定のクーポンコードを自動で適用します。
add_action( 'woocommerce_create_order', 'apply_coupon_on_order_creation' );
function apply_coupon_on_order_creation( $order ) {
$coupon_code = '特別クーポン';
$order->apply_coupon( $coupon_code );
$order->calculate_totals();
}
引用元: WooCommerce Coupons Guide