概要
woocommerce_order_downloads_table_show_downloads
フィルタは、WooCommerce におけるダウンロード可能な商品の表示に関連するフィルタです。このフィルタを使用すると、特定の条件に基づいて、ユーザーが購入した商品のダウンロード情報を表示するかどうかを制御することができます。一般的に、このフィルタは次のような機能を実装する際に使用されます。
- アカウントページのダウンロードリストのカスタマイズ
- 特定のユーザーグループへのダウンロード情報の制限
- 購入した商品のダウンロード期限の制御
- 管理者による特定商品のダウンロード機能のオフ
- ダウンロード商品に関するカスタムメッセージの表示
- CSVやExcelなどの形式でのダウンロードリストのエクスポート機能
フィルタの構文は以下の通りです。
add_filter( 'woocommerce_order_downloads_table_show_downloads', 'custom_function_name', 10, 2 );
パラメータ
- $show_downloads (bool): ダウンロード情報を表示するかどうかを示すブール値。
- $order (WC_Order): 現在の注文オブジェクト。
戻り値
- このフィルタは、ダウンロード情報を表示するかどうかを示すブール値を返します。
使用可能なプラグインのバージョン
- WooCommerce: バージョン 3.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_filter( 'woocommerce_order_downloads_table_show_downloads', 'hide_downloads_for_guest_users', 10, 2 );
function hide_downloads_for_guest_users( $show_downloads, $order ) {
if ( ! is_user_logged_in() ) {
return false; // ゲストユーザーにはダウンロード情報を表示しない
}
return $show_downloads; // ログインユーザーには表示
}
このサンプルコードは、ゲストユーザーがダウンロード情報を表示されないようにします。ログインしているユーザーにのみダウンロード情報を表示します。
サンプルコード2
add_filter( 'woocommerce_order_downloads_table_show_downloads', 'disable_downloads_for_specific_product', 10, 2 );
function disable_downloads_for_specific_product( $show_downloads, $order ) {
$product_id = 123; // 対象の製品ID
foreach ( $order->get_items() as $item ) {
if ( $item->get_product_id() == $product_id ) {
return false; // 特定の製品のダウンロード情報を表示しない
}
}
return $show_downloads;
}
このサンプルコードは、特定の製品を含む注文ではダウンロード情報を表示しないようにします。特定の製品IDを指定して制御しています。
サンプルコード3
add_filter( 'woocommerce_order_downloads_table_show_downloads', 'restrict_downloads_to_user_roles', 10, 2 );
function restrict_downloads_to_user_roles( $show_downloads, $order ) {
$user = wp_get_current_user();
if ( in_array( 'subscriber', (array) $user->roles ) ) {
return false; // 特定のユーザー役割にはダウンロード情報を表示しない
}
return $show_downloads;
}
このサンプルコードは、特定のユーザー役割(ここでは購読者)にはダウンロード情報を表示しないように制御しています。
サンプルコード4
add_filter( 'woocommerce_order_downloads_table_show_downloads', 'add_custom_message_for_downloads', 10, 2 );
function add_custom_message_for_downloads( $show_downloads, $order ) {
if ( $show_downloads ) {
echo '<p>購入商品のダウンロードリンクは数日後に有効になります。</p>';
}
return $show_downloads;
}
このサンプルコードは、ダウンロードリンクが表示される場合にカスタムメッセージを追加するものです。ユーザーにダウンロードリンクがいつ有効になるかを知らせるメッセージを表示します。
サンプルコード5
add_filter( 'woocommerce_order_downloads_table_show_downloads', 'manage_downloads_visibility_based_on_status', 10, 2 );
function manage_downloads_visibility_based_on_status( $show_downloads, $order ) {
if ( $order->has_status( 'completed' ) ) {
return true; // 完了した注文のみ、ダウンロード情報を表示
}
return false; // その他の状態では表示しない
}
このサンプルコードは、注文が完了した場合にのみダウンロード情報を表示するように制御します。注文の状態に基づいてダウンロードリンクの可視性を管理しています。