概要
woocommerce_available_download_link
フィルタは、WooCommerceプラグインでのダウンロード可能な製品のリンクをカスタマイズするために使用されます。このフィルタを用いることで、ユーザーが購入した製品に対するダウンロードリンクの表示を制御することができます。よく使われるシナリオには以下のようなものがあります:
- 特定の条件に応じてダウンロードリンクを非表示にする。
- リンクのテキストをカスタマイズする。
- ダウンロード回数に制限を設ける。
- ダウンロードするファイルのURLをセキュリティ的に強化する。
- 顧客がダウンロードできるファイルを動的に変更する。
- 外部のストレージからファイルを取得するシステムと統合する。
構文
add_filter( 'woocommerce_available_download_link', 'your_function_name', 10, 2 );
パラメータ
$link
(string): 現在のダウンロードリンク。$product_id
(int): ダウンロード可能な製品のID。
戻り値
- (string): フィルタリングされたダウンロードリンク。
WooCommerce バージョン
- 有効: すべてのバージョン
WordPress バージョン
- 有効: すべてのバージョン
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_available_download_link', 'custom_download_link_text', 10, 2 );
function custom_download_link_text( $link, $product_id ) {
return 'こちらからダウンロード';
}
このコードは、ダウンロードリンクの表示テキストを「こちらからダウンロード」に変更します。
サンプル2: 特定の条件でダウンロードリンクを非表示にする
add_filter( 'woocommerce_available_download_link', 'hide_download_link_for_specific_user', 10, 2 );
function hide_download_link_for_specific_user( $link, $product_id ) {
if ( current_user_can('subscriber') ) {
return '';
}
return $link;
}
このコードは、特定のユーザー(ここでは「subscriber」権限を持つユーザー)に対してダウンロードリンクを非表示にします。
サンプル3: ダウンロード回数の制限を追加
add_filter( 'woocommerce_available_download_link', 'limit_download_count', 10, 2 );
function limit_download_count( $link, $product_id ) {
$download_count = get_post_meta( $product_id, '_download_count', true );
if ( $download_count >= 5 ) {
return ''; // 5回以上のダウンロードは無効
}
return $link;
}
このコードは、ダウンロード回数が5回を超えた場合にリンクを無効にします。
サンプル4: カスタムURLでダウンロードファイルを提供
add_filter( 'woocommerce_available_download_link', 'custom_download_url', 10, 2 );
function custom_download_url( $link, $product_id ) {
return 'https://example.com/files/' . $product_id . '/download.zip';
}
このコードは、製品IDに基づいてカスタムダウンロードURLを生成します。
サンプル5: 外部ストレージからのファイル取得
add_filter( 'woocommerce_available_download_link', 'external_storage_download_link', 10, 2 );
function external_storage_download_link( $link, $product_id ) {
return 'https://external-storage.com/downloads/' . $product_id . '/file.zip';
}
このコードは、外部ストレージからダウンロードファイルのリンクを提供します。
これらのサンプルコードはすべて、WooCommerceのダウンロード可能な製品に対するダウンロードリンクのカスタマイズを実現するための参考になります。