概要
woocommerce_display_item_downloads
フィルタは、WooCommerceの商品詳細ページにおいてダウンロード可能なアイテムを表示する際に使用されます。このフィルタを利用することで、ダウンロードリンクのカスタマイズや、特定の条件に基づいたダウンロードアイテムの表示を実現することができます。以下に、よく使用される機能の例を挙げます。
- ダウンロード可能アイテムの追加情報を表示
- スタイリングの変更
- ダウンロードリンクの条件付き表示
- ダウンロード可能なファイルの注文履歴表示
- デフォルトの表示文言の変更
- 特定のユーザーに対するダウンロード制御
構文
add_filter( 'woocommerce_display_item_downloads', 'custom_function_name', 10, 2 );
パラメータ
$downloads
(array): 既存のダウンロードアイテムのリスト$item_id
(int): 商品のID
戻り値
- (array): 修正されたダウンロードアイテムのリスト
使用可能なプラグインバージョン
- 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_display_item_downloads', 'custom_change_download_link_text', 10, 2 );
function custom_change_download_link_text( $downloads, $item_id ) {
foreach ( $downloads as &$download ) {
$download['name'] = 'カスタム文言: ' . $download['name'];
}
return $downloads;
}
このコードは、ダウンロードアイテムのリンクテキストを「カスタム文言: 」を付加して変更します。
引用元: https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html
サンプルコード2:特定の条件でダウンロードを非表示にする
add_filter( 'woocommerce_display_item_downloads', 'custom_hide_downloads_if_condition_met', 10, 2 );
function custom_hide_downloads_if_condition_met( $downloads, $item_id ) {
if ( ! current_user_can( 'subscriber' ) ) {
return array(); // ダウンロードを非表示
}
return $downloads;
}
このコードは、ユーザーが「subscriber」ロールでない場合にダウンロードを隠します。
引用元: https://developer.wordpress.org/reference/functions/current_user_can/
サンプルコード3:ダウンロードリストにカスタムアイコンを追加
add_filter( 'woocommerce_display_item_downloads', 'custom_add_icon_to_downloads', 10, 2 );
function custom_add_icon_to_downloads( $downloads, $item_id ) {
foreach ( $downloads as &$download ) {
$download['name'] = '<img src="path/to/icon.png" alt="アイコン"> ' . $download['name'];
}
return $downloads;
}
このコードは、全てのダウンロードリンクの前にカスタムアイコンを追加します。
引用元: https://www.w3schools.com/tags/tag_img.asp
サンプルコード4:ダウンロードの順序を変更
add_filter( 'woocommerce_display_item_downloads', 'custom_sort_downloads', 10, 2 );
function custom_sort_downloads( $downloads, $item_id ) {
usort( $downloads, function( $a, $b ) {
return strcmp( $a['name'], $b['name'] ); // 名前でソート
});
return $downloads;
}
このコードは、ダウンロードのリストを名称順にソートします。
引用元: https://www.php.net/manual/en/function.usort.php
サンプルコード5:特定のダウンロードアイテムを追加
add_filter( 'woocommerce_display_item_downloads', 'custom_add_additional_download', 10, 2 );
function custom_add_additional_download( $downloads, $item_id ) {
$additional_download = array(
'name' => '追加ダウンロードファイル',
'file' => 'path/to/additional/file.zip'
);
$downloads[] = $additional_download;
return $downloads;
}
このコードは、ダウンロードリストに新しいダウンロードファイルを追加します。
引用元: https://wordpress.org/support/article/adding-a-download-to-your-product/