概要
woocommerce_downloadable_product_download_log_insert
アクションは、WooCommerceにおけるダウンロード可能な商品のダウンロードログをデータベースに挿入する際に使用されます。このフックを使用することで、ユーザーがどのアイテムをダウンロードしたかに関する情報を記録し、必要に応じてカスタマイズや拡張を行うことができます。主な使用ケースには、以下のようなものがあります。
- ダウンロード数の追跡
- ユーザーのダウンロード履歴の表示
- 特定の条件を満たした場合の通知やアクションのトリガー
- マーケティングデータとしての使用
- ダウンロードされたファイルのアクセス制御
- ユーザーエクスペリエンスの向上のためのカスタマイズ
構文
add_action( 'woocommerce_downloadable_product_download_log_insert', 'your_custom_function', 10, 3 );
パラメータ
$download_log
– ダウンロードログの情報を持つ配列$product_id
– ダウンロードされた商品ID$user_id
– ダウンロードしたユーザーのID
戻り値
このアクションは、特に戻り値を必要としないため、何も返しません。
使用可能なWooCommerceのバージョン
- WooCommerce 2.6.0以降
使用可能なWordPressのバージョン
- WordPress 4.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', 'custom_download_log_message', 10, 3 );
function custom_download_log_message( $download_log, $product_id, $user_id ) {
// ダウンロード成功のメッセージを追加
$download_log['custom_message'] = 'ダウンロードが成功しました!';
return $download_log;
}
引用元: https://developer.woocommerce.com/
サンプルコード 2: ダウンロード回数の追跡
このコードは、ダウンロードされた商品IDとユーザーIDを元に、ダウンロード回数をデータベースに保存します。
add_action( 'woocommerce_downloadable_product_download_log_insert', 'track_download_count', 10, 3 );
function track_download_count( $download_log, $product_id, $user_id ) {
$download_count = get_post_meta( $product_id, '_download_count', true );
update_post_meta( $product_id, '_download_count', $download_count + 1 );
}
引用元: https://developer.woocommerce.com/
サンプルコード 3: ユーザーへの通知
このコードは、商品がダウンロードされた際にユーザーに対してカスタムメールを送信します。
add_action( 'woocommerce_downloadable_product_download_log_insert', 'send_download_notification', 10, 3 );
function send_download_notification( $download_log, $product_id, $user_id ) {
$user = get_userdata( $user_id );
$to = $user->user_email;
$subject = 'あなたはファイルをダウンロードしました';
$message = 'あなたがダウンロードした商品ID: ' . $product_id;
wp_mail( $to, $subject, $message );
}
引用元: https://developer.woocommerce.com/
サンプルコード 4: カスタムログテーブルの挿入
このコードは、カスタムテーブルにダウンロードログを挿入する処理です。
add_action( 'woocommerce_downloadable_product_download_log_insert', 'insert_custom_download_log', 10, 3 );
function insert_custom_download_log( $download_log, $product_id, $user_id ) {
global $wpdb;
$table_name = $wpdb->prefix . 'custom_download_logs';
$wpdb->insert(
$table_name,
array(
'product_id' => $product_id,
'user_id' => $user_id,
'download_time' => current_time( 'mysql' ),
)
);
}
引用元: https://developer.woocommerce.com/
サンプルコード 5: ログデータの拡張
このコードは、ダウンロードした商品に付随するメタ情報もログに保存するものです。
add_action( 'woocommerce_downloadable_product_download_log_insert', 'enhance_download_log_data', 10, 3 );
function enhance_download_log_data( $download_log, $product_id, $user_id ) {
$additional_info = get_post_meta( $product_id, '_additional_info', true );
$download_log['additional_info'] = $additional_info;
return $download_log;
}
引用元: https://developer.woocommerce.com/