概要
woocommerce_trash_pending_orders_query_argsフィルタは、WooCommerceプラグインでの保留中のオーダーをさらに扱いやすくするためのカスタマイズを可能にします。このフィルタは、保留中のオーダーをデータベースからゴミ箱に移動する際に使われるクエリの引数を変更することができます。よく使われる機能の例としては以下のようなものがあります。
- 保留中のオーダーの特定の条件でフィルタリングする。
- 特定のユーザーによるオーダーのみを対象にする。
- オーダーの更新日時でフィルタリングする。
- 特定のステータスのオーダーを除外する。
- 特定のメタデータを持つオーダーだけを対象にする。
- 並び順をカスタマイズする。
構文
add_filter('woocommerce_trash_pending_orders_query_args', 'custom_trash_pending_orders_query_args');
function custom_trash_pending_orders_query_args($args) {
// カスタマイズ処理
return $args;
}
パラメータ
$args: デフォルトのWP_Query引数。配列形式で、クエリの条件を設定します。
戻り値
- 修正された引数を含む配列。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 3.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_filter('woocommerce_trash_pending_orders_query_args', 'custom_trash_pending_orders_query_args');
function custom_trash_pending_orders_query_args($args) {
$args['author'] = get_current_user_id(); // 現在のユーザーのオーダーのみ
return $args;
}
このコードは、現在のユーザーが作成した保留中のオーダーのみをゴミ箱に移動するための条件を追加します。
サンプルコード2: オーダーの更新日時でフィルタリングする
add_filter('woocommerce_trash_pending_orders_query_args', 'custom_filter_trash_pending_orders_by_date');
function custom_filter_trash_pending_orders_by_date($args) {
$args['date_query'] = array(
array(
'column' => 'post_modified',
'before' => '30 days ago'
)
);
return $args;
}
このコードは、過去30日より前に更新された保留中のオーダーのみをゴミ箱に移動するクエリを実行します。
サンプルコード3: 特定のオーダーステータスを除外
add_filter('woocommerce_trash_pending_orders_query_args', 'exclude_specific_order_status');
function exclude_specific_order_status($args) {
$args['post_status'] = array_diff($args['post_status'], ['wc-failed']);
return $args;
}
このコードは、失敗したオーダーを除外してゴミ箱に移動するクエリを実行します。
サンプルコード4: 特定のメタデータを持つオーダーのみを対象に
add_filter('woocommerce_trash_pending_orders_query_args', 'filter_trash_orders_by_meta');
function filter_trash_orders_by_meta($args) {
$args['meta_query'] = array(
array(
'key' => '_customer_ip_address',
'compare' => 'EXISTS'
)
);
return $args;
}
このコードは、_customer_ip_addressというメタデータを持つ保留中のオーダーをゴミ箱に移動するためのクエリを設定しています。
サンプルコード5: 並び順をカスタマイズ
add_filter('woocommerce_trash_pending_orders_query_args', 'custom_order_sorting');
function custom_order_sorting($args) {
$args['orderby'] = 'post_date';
$args['order'] = 'ASC'; // 昇順
return $args;
}
このコードは、保留中のオーダーを作成日で昇順に並び替えてゴミ箱に移動します。