Advanced info on free downloads in a gallery
This custom code tracks users who have downloaded a free image. It will show you a list of their email address and which images they downloaded. This relies on having the Digital Downloads and Analytics add-on enabled on your site.
add_action( 'sunshine_download_free_image', 'sunshine_customer_track_download_free_image_emails' );
function sunshine_customer_track_download_free_image_emails( $image ) {
global $current_user;
if ( is_user_logged_in() ) {
$email = $current_user->user_email;
} else {
$email = SPC()->session->get( 'email' );
}
if ( $email ) {
$events = $image->gallery->get_meta_value( 'free_download_events' );
if ( empty( $entries ) ) {
$events = array();
}
$events[] = array(
'email' => $email,
'image_id' => $image->get_id(),
);
$image->gallery->update_meta_value( 'free_download_events', $events );
}
}
add_action( 'sunshine_meta_gallery_analytics_display', 'sunshine_customer_track_download_free_image_emails_display', 99 );
function sunshine_customer_track_download_free_image_emails_display() {
global $post;
$gallery = sunshine_get_gallery( $post->ID );
$events = $gallery->get_meta_value( 'free_download_events' );
if ( ! empty( $events ) ) {
echo '<p><strong>' . __( 'Free Downloads', 'sunshine-photo-cart' ) . '</strong></p>';
echo '<ul>';
$downloads = array();
foreach ( $events as $event ) {
$image = sunshine_get_image( $event['image_id'] );
if ( empty( $downloads[ $event['email'] ] ) ) {
$downloads[ $event['email'] ] = array();
}
$downloads[ $event['email'] ][] = $image->get_name();
}
foreach ( $downloads as $email => $images ) {
echo '<li>' . $email . ': ' . join( ', ', $images ) . '</li>';
}
echo '</ul>';
}
}
Learn how to add this custom code to your WordPress website
When editing a gallery, you can view the Analytics tab and find the additional data:

Still need help?
If you have not yet found your answer in the documentation articles, please contact support