在下载文件时单击计数

时间:2017-11-29 作者:Dannie Herdyawan

我有woocommerce的数字下载网站。我免费下载所有内容,下面是我下载文件的代码:

$downloads = $product->get_files();

foreach( $downloads as $key => $each_download ) {
  echo \'<a href="\'.$each_download["file"].\'">Download</a>\';
}
我的问题是,如果人们点击该链接下载文件,如何使点击在单个产品页面中计数?我想显示文件已经下载了多少。。。你能告诉我如何编写代码吗?非常感谢。

编辑:

嗨,我在找到这个代码https://wordpress.stackexchange.com/a/258902

<?php
/* functions.php */
add_action( \'wp_ajax_link_check_click_counter\', \'link_check_click_counter\');
add_action( \'wp_ajax_nopriv_link_check_click_counter\', \'link_check_click_counter\' );
function link_check_click_counter() {

    if ( isset( $_POST[\'nonce\'] ) &&  isset( $_POST[\'post_id\'] ) && wp_verify_nonce( $_POST[\'nonce\'], \'link_check_click_counter_\' . $_POST[\'post_id\'] ) ) {
        $count = get_post_meta( $_POST[\'post_id\'], \'link_check_click_counter\', true );
        update_post_meta( $_POST[\'post_id\'], \'link_check_click_counter\', ( $count === \'\' ? 1 : $count + 1 ) );
    }
    exit();
}


add_action( \'wp_footer\', \'link_click\' );
//add_action( \'wp_head\', \'link_click\' );
function link_click() {
    global $post;

    if( isset( $post->ID ) ) {
?>
    <script type="text/javascript" >
    jQuery(function ($) {
        var ajax_options = {
            action: \'link_check_click_counter\',
            nonce: \'<?php echo wp_create_nonce( \'link_check_click_counter_\' . $post->ID ); ?>\',
            ajaxurl: \'<?php echo admin_url( \'admin-ajax.php\' ); ?>\',
            post_id: \'<?php echo $post->ID; ?>\'
        };

        $( \'#link_count a\' ).on( \'click\', function() {
            var href = $( this ).attr( "href" );
            var redirectWindow = window.open(href, \'_blank\');   
            $.post( ajax_options.ajaxurl, ajax_options, function() {
                redirectWindow.location;
            });
            return false;
        });
    });
    </script>
<?php
    }
}
?>
但是,对于外部链接的代码,我可以实现到我的代码中吗?可以怎样谢谢你。。。

1 个回复
SO网友:Hassan Alvi

使用此代码。。

$downloads = $product->get_files();
$product_id = $product->id;

foreach( $downloads as $key => $each_download ) {
    $query = "SELECT SUM( download_count ) AS count FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE product_id = $product->id";
    $count = $wpdb->get_var( $query );
    if ( ! empty( $count ) ) {
      echo \'<a href="\'.$each_download["file"].\'">Download (\'.$count.\')</a>\';
    } else {
      echo \'<a href="\'.$each_download["file"].\'">Download</a>\';        
    }
}
希望它能起作用……)

结束

相关推荐

Display Count of posts

我正在尝试创建一个计数器,该计数器将显示一个类别页面的页码,后跟页面计数,其中每页有一篇文章。例如,如果一个类别中有10个职位:1/10, 2/10, 等等。我能够使用@PieterGoosen提供的代码显示页码(How to use global post counter in the loop?) 但我很难弄清楚如何显示页数。