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

概要

woocommerce_track_orderは、WooCommerceが提供するアクションフックであり、顧客が注文の追跡情報を表示するためのページにアクセスした際に実行されます。このアクションを使用することで、注文のステータス更新やメール通知、カスタムトラッキング情報の表示などの機能を実装することができます。具体的には、以下のような機能を実装する際によく使われます。

  1. 注文ステータス更新時の通知
  2. 注文追跡ページへのカスタム情報追加
  3. 注文履歴の表示のカスタマイズ
  4. 特定の条件に基づいた表示の調整
  5. 注文関連のログやトラッキングの記録
  6. カスタムスタイルやスクリプトの追加

構文

add_action('woocommerce_track_order', 'your_custom_function');

パラメータ

  • your_custom_function: カスタム関数の名前。実行したい処理を含む関数を指定します。

戻り値

このアクションには戻り値はありませんが、フック内で実行される関数が開発者によって定義された結果を出力することができます。

使用可能なプラグインのバージョン

  • WooCommerce: 2.0.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_track_order', 'custom_order_tracking_message');

function custom_order_tracking_message($order_id) {
    $order = wc_get_order($order_id);
    echo '<div class="custom-tracking-message">あなたの注文が発送されました!</div>';
}

このコードは、注文追跡ページにカスタムメッセージを表示します。顧客が自分の注文を追跡すると、発送の通知が見えるようになります。

サンプルコード2

add_action('woocommerce_track_order', 'log_order_tracking_access');

function log_order_tracking_access($order_id) {
    $log_file = ABSPATH . '/order_tracking.log';
    $message = "Order #{$order_id} was tracked on " . date('Y-m-d H:i:s') . "n";
    file_put_contents($log_file, $message, FILE_APPEND);
}

このサンプルコードは、注文の追跡が行われた際に、アクセスされた注文IDをログファイルに記録します。

サンプルコード3

add_action('woocommerce_track_order', 'add_custom_tracking_fields');

function add_custom_tracking_fields($order_id) {
    // カスタムトラッキング情報の取得
    $tracking_info = get_post_meta($order_id, '_custom_tracking_info', true);
    echo '<div class="tracking-info">' . esc_html($tracking_info) . '</div>';
}

このコードは、注文IDに関連付けられたカスタムトラッキング情報を表示するためのものです。

サンプルコード4

add_action('woocommerce_track_order', 'redirect_after_tracking');

function redirect_after_tracking($order_id) {
    if (!is_order_status($order_id, 'completed')) {
        wp_redirect(home_url('/thank-you'));
        exit;
    }
}

このサンプルでは、注文が完了していない場合に、顧客を感謝ページにリダイレクトしています。

サンプルコード5

add_action('woocommerce_track_order', 'modify_tracking_page_style');

function modify_tracking_page_style() {
    echo '<style> .tracking-info { color: blue; font-weight: bold; } </style>';
}

このコードは、注文追跡ページのスタイルを変更するため、特定のCSSスタイルを追加しています。これにより、トラッキング情報が目立つようになります。

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


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