概要
woocommerce_available_download_count
は、WooCommerceにおいてデジタル製品の利用可能なダウンロード回数を制御するためのフィルターフックです。このフィルターは特に、購入者に対してダウンロード可能な商品数を動的に変更したい場合や、特定の条件に基づいてダウンロード制限を設定したい場合に便利です。
このフィルタは次のような機能を実装する際によく使われます:
- 購入プランごとのダウンロード制限の設定
- 特定ユーザーのダウンロード回数の管理
- 商品ごとのダウンロード制限のカスタマイズ
- 限定販売商品のダウンロード回数変更
- 購入者が過去にダウンロードしたデジタル商品の回数を確認
- プロモーションや季節ごとのダウンロード制限設定
構文
apply_filters( 'woocommerce_available_download_count', $download_count, $download, $order );
パラメータ
$download_count
(int): 利用可能なダウンロード回数。$download
(object): ダウンロードに関する情報(例えば、製品IDなど)。$order
(object): 現在の注文情報。
戻り値
int
: フィルターを通じて変更された利用可能なダウンロード回数。
使用可能なプラグインのバージョン
- 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_available_download_count', 'custom_download_count_based_on_plan', 10, 3 );
function custom_download_count_based_on_plan( $count, $download, $order ) {
// 購入プランに基づいて制限を設定
if ( isset( $order->meta['_purchase_plan'] ) && $order->meta['_purchase_plan'] == 'premium' ) {
return 10; // プレミアムプランは10回
}
return 1; // 標準プランは1回
}
引用元: https://woocommerce.com/
サンプルコード2: 特定ユーザーのダウンロード回数の管理
特定のユーザーに対してダウンロード回数を管理するサンプル。
add_filter( 'woocommerce_available_download_count', 'manage_download_count_for_specific_user', 10, 3 );
function manage_download_count_for_specific_user( $count, $download, $order ) {
// 特定ユーザー(ユーザーID 1)に対して制限を変更
if ( $order->get_user_id() == 1 ) {
return 5; // ユーザーID 1には5回のダウンロードを許可
}
return $count; // その他のユーザーはそのままの回数
}
引用元: https://developer.woocommerce.com/
サンプルコード3: 商品ごとのダウンロード制限
特定の商品に対して異なるダウンロード回数を設定する例。
add_filter( 'woocommerce_available_download_count', 'custom_download_count_for_product', 10, 3 );
function custom_download_count_for_product( $count, $download, $order ) {
// 特定の製品IDに応じてダウンロード数を調整
if ( $download['product_id'] == 123 ) {
return 3; // 製品ID 123は3回まで
}
return $count;
}
引用元: https://woocommerce.com/
サンプルコード4: 限定商品のダウンロード回数の変更
このコードは、限定商品に対してダウンロード回数をダイナミックに変更します。
add_filter( 'woocommerce_available_download_count', 'limit_downloads_for_limited_product', 10, 3 );
function limit_downloads_for_limited_product( $count, $download, $order ) {
// 限定商品の場合はダウンロード回数を1回にする
if ( $download['product_id'] == 456 ) {
return 1; // 限定商品は1回のみ
}
return $count;
}
引用元: https://developer.woocommerce.com/
サンプルコード5: プロモーション期間中のダウンロード制限設定
特定のプロモーション期間中のダウンロード制限を設定するサンプル。
add_filter( 'woocommerce_available_download_count', 'promo_period_download_limit', 10, 3 );
function promo_period_download_limit( $count, $download, $order ) {
$start_date = strtotime('2023-12-01');
$end_date = strtotime('2023-12-31');
// 現在の日付がプロモーション期間内であれば制限を変更
if ( time() >= $start_date && time() <= $end_date ) {
return 2; // プロモーション中は2回まで
}
return $count;
}
引用元: https://woocommerce.com/