プラグインWooCommerceのwoocommerce_purchase_note_order_statusesフィルタの使用方法・解説

概要

woocommerce_purchase_note_order_statusesフィルタは、WooCommerceの購入ノートが表示される注文のステータスを制御するために使用されます。これにより、購入ノートを特定の注文状態に基づいて表示したり非表示にしたりすることができます。このフィルタは、購入確認メールや注文履歴、顧客への通知など、さまざまなシチュエーションで役立つ機能を実装する際によく使用されます。

よく使われる機能

  1. 購入ノートを特定の注文ステータスでのみ表示する。
  2. 購入ノートの表示を特定のユーザーグループに制限する。
  3. 購入ノートを条件に基づいてカスタマイズする。
  4. 顧客への通知内容を注文ステータスに応じて変える。
  5. 購入ノートを出荷完了時のみ表示する。
  6. 購入ノートの表示条件を動的に変更する。

フィルタの概要

構文

add_filter('woocommerce_purchase_note_order_statuses', 'custom_purchase_note_order_statuses', 10, 1);

パラメータ

  • $statuses: 配列形式で、購入ノートを表示する注文ステータス。

戻り値

  • フィルタを通過した後のステータスの配列。

バージョン

  • WooCommerce: 3.0 以降
  • WordPress: 4.4 以降

この関数のアクションでの使用可能性

アクション 使用可能性
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_filter('woocommerce_purchase_note_order_statuses', 'show_purchase_note_on_completed', 10, 1);

function show_purchase_note_on_completed($statuses) {
    $statuses[] = 'wc-completed';
    return $statuses;
}

このサンプルでは、購入ノートを「完了」状態の注文でのみ表示するようにフィルタを追加しています。これにより、ユーザーが注文を完了したときにのみ、購入ノートが見えるようになります。

サンプルコード2

add_filter('woocommerce_purchase_note_order_statuses', 'hide_purchase_note_on_pending', 10, 1);

function hide_purchase_note_on_pending($statuses) {
    $statuses = array_diff($statuses, array('wc-pending'));
    return $statuses;
}

このコードは、保留中の注文の購入ノートを非表示にする設定です。これにより、未処理の注文にはノートが表示されなくなります。

サンプルコード3

add_filter('woocommerce_purchase_note_order_statuses', 'customize_purchase_note_visibility', 10, 1);

function customize_purchase_note_visibility($statuses) {
    if (is_user_logged_in()) {
        $statuses[] = 'wc-processing';
    }
    return $statuses;
}

このサンプルでは、ユーザーがログインしている場合にのみ、「処理中」ステータスの注文の購入ノートが表示されるようにしています。

サンプルコード4

add_filter('woocommerce_purchase_note_order_statuses', 'conditional_purchase_note_display', 10, 1);

function conditional_purchase_note_display($statuses) {
    if (date('H') < 12) { // 午前中だったら
        $statuses[] = 'wc-on-hold';
    }
    return $statuses;
}

この例では、午前中の間だけ「保留中」ステータスの注文に購入ノートを表示する条件を設定しています。

サンプルコード5

add_filter('woocommerce_purchase_note_order_statuses', 'remove_purchase_note_for_canceled_orders', 10, 1);

function remove_purchase_note_for_canceled_orders($statuses) {
    $statuses = array_diff($statuses, array('wc-cancelled'));
    return $statuses;
}

このコードは、キャンセルされた注文に対して購入ノートを表示しないように設定しています。これにより、顧客は関連のない情報を受け取らなくなります。

引用元のページはありませんが、WooCommerceの公式ドキュメントやフォーラムを参考にすることができます。

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


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