概要
woocommerce_downloadable_product_download_log_insert_format
アクションは、WooCommerceでダウンロード可能な商品に関連するダウンロードログを挿入・管理する際に使用されます。このフックを利用することで、ダウンロード時のトラッキングやカスタム処理を追加することができます。
具体的には、以下のような機能を実装する際によく使われます。
- ダウンロード履歴をカスタムデータベーステーブルに記録する。
- 特定のユーザーにダウンロード制限を設ける。
- ダウンロード時にユーザーに通知を送信する。
- ダウンロードが成功した際に特定のアクションをトリガーする。
- 商品ごとに異なるダウンロード条件を設定する。
- ダウンロードイベントの分析および報告機能を追加する。
構文
do_action( 'woocommerce_downloadable_product_download_log_insert_format', $download_log, $order, $order_item );
パラメータ
$download_log
:ダウンロードログのデータ。$order
:オーダーオブジェクト。$order_item
:オーダーアイテムのデータ。
戻り値
このアクションには戻り値はありません。
使用可能なプラグインバージョン
- 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_action('woocommerce_downloadable_product_download_log_insert_format', function ($download_log, $order, $order_item) {
update_post_meta($download_log->id, '_custom_meta', 'カスタムデータ');
});
サンプル2: ダウンロード時間をログに記録する
このサンプルは、ダウンロードされるたびにダウンロードのタイムスタンプを記録します。
add_action('woocommerce_downloadable_product_download_log_insert_format', function ($download_log, $order, $order_item) {
$time_downloaded = current_time('mysql');
update_post_meta($download_log->id, '_time_downloaded', $time_downloaded);
});
サンプル3: 特定ユーザーのダウンロード制限を追加
このコードは、特定のユーザーにはダウンロードの制限を設ける処理を追加します。
add_action('woocommerce_downloadable_product_download_log_insert_format', function ($download_log, $order, $order_item) {
if ($order->get_user_id() == 123) { // ユーザーID 123
// デフォルトのダウンロード制限を適用
update_post_meta($download_log->id, '_download_limit', 1);
}
});
サンプル4: ダウンロード完了時の通知を送信
このサンプルは、ユーザーにメール通知を送る機能を追加します。
add_action('woocommerce_downloadable_product_download_log_insert_format', function ($download_log, $order, $order_item) {
$to = $order->get_billing_email();
$subject = 'ダウンロードが完了しました';
$message = '商品が正常にダウンロードされました。';
wp_mail($to, $subject, $message);
});
サンプル5: ダウンロードイベントのトラッキング
このコードでは、ダウンロードイベントを外部トラッキングサービスに送信します。
add_action('woocommerce_downloadable_product_download_log_insert_format', function ($download_log, $order, $order_item) {
// 外部トラッキングAPIにデータ送信
$data = array(
'download_id' => $download_log->id,
'user_id' => $order->get_user_id(),
);
wp_remote_post('https://example.com/tracking', array('body' => $data));
});
引用元は公式ドキュメンテーションやフォーラムで確認してください。