プラグインWooCommerceのwoocommerce_create_orderアクションの使用方法・解説

概要

woocommerce_create_orderアクションは、WooCommerceで新しい注文が作成された際にトリガーされるフックです。このフックは、次のような機能を実装する際によく使用されます。

  1. 注文確認メールのカスタマイズ
  2. 注文に関連するカスタムデータの保存
  3. 注文ステータスの変更
  4. リアルタイム在庫管理の実装
  5. サードパーティサービスへのデータ送信
  6. 注文作成直後のカスタムアクションの実行

構文

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

この関数について質問する


上の計算式の答えを入力してください