概要
woocommerce_view_order
アクションは、WooCommerceの注文詳細ページが表示される際にトリガーされるフックです。このフックを使用することで、注文に関連する情報やコンテンツをカスタマイズすることができます。具体的には以下のような機能を実装する際に利用されることが多いです。
- 注文内容のカスタムメタデータ表示
- 顧客への追加情報の提供
- 特別なプロモーションやオファーの表示
- 注文状況に応じたメッセージのカスタマイズ
- 注文確認のためのカスタム通知
- 外部サービスとの統合(例えば、サポートチケットの作成など)
構文
add_action('woocommerce_view_order', 'your_function_name_here', 10, 1);
パラメータ
$order_id
(int): 表示される注文のID。
戻り値
このアクション自体は戻り値を持ちません。必要に応じて関数内でHTMLやその他の出力を生成します。
対応バージョン
- WooCommerceバージョン: 2.1.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_view_order', 'display_custom_order_meta');
function display_custom_order_meta($order_id) {
$custom_meta = get_post_meta($order_id, '_custom_order_meta', true);
if (!empty($custom_meta)) {
echo '<h3>' . __('Custom Order Meta', 'your-plugin-textdomain') . '</h3>';
echo '<p>' . esc_html($custom_meta) . '</p>';
}
}
サンプル2: 顧客への追加情報提供
このコードは、顧客に対して追加のお知らせメッセージを表示します。
add_action('woocommerce_view_order', 'show_additional_message_to_customer');
function show_additional_message_to_customer($order_id) {
echo '<p>' . __('Thank you for your order! If you have any questions, please contact us.', 'your-plugin-textdomain') . '</p>';
}
サンプル3: プロモーションオファーの表示
条件に応じてプロモーションを表示するコードです。
add_action('woocommerce_view_order', 'display_promotional_offer');
function display_promotional_offer($order_id) {
if (is_user_logged_in()) {
echo '<div class="promo-offer">' . __('Get 10% off your next purchase! Use code: NEXT10', 'your-plugin-textdomain') . '</div>';
}
}
サンプル4: 注文状況に応じたメッセージのカスタマイズ
このサンプルは、注文のステータスに基づいて異なるメッセージを表示します。
add_action('woocommerce_view_order', 'customize_order_status_message');
function customize_order_status_message($order_id) {
$order = wc_get_order($order_id);
if ($order->has_status('completed')) {
echo '<p>' . __('Your order has been completed. Thank you!', 'your-plugin-textdomain') . '</p>';
} elseif ($order->has_status('pending')) {
echo '<p>' . __('Your order is pending payment.', 'your-plugin-textdomain') . '</p>';
}
}
サンプル5: 外部サービスとの統合
このコードは、注文が表示される際にカスタムサービスへのリンクを提供します。
add_action('woocommerce_view_order', 'link_to_support_ticket_service');
function link_to_support_ticket_service($order_id) {
$ticket_url = 'http://example.com/support/ticket?order_id=' . $order_id;
echo '<a href="' . esc_url($ticket_url) . '">' . __('Need help? Create a support ticket', 'your-plugin-textdomain') . '</a>';
}