用户评论数量:将其存储在元字段中以供不同用途

时间:2013-12-30 作者:Dr.Hariri

我正在建立一个新网站,跟踪用户信息是参与的关键,等等。。。,我发现能够将用户的计数数存储为元很重要。

将信息存储在用户元中的主要原因是smoother integration 提供外部服务。就我而言,我已经有了一个插件,可以将用户的元数据推送到外部电子邮件营销服务。在那里,我计划自动开展活动,包括根据用户发表评论的数量发送感谢和其他礼物或特惠。

这是我目前用来存储用户评论数量的代码。这是基于this other post. 我不是编码员,我知道还有需要改进的地方,但我想我会在这里发布这段代码,以防其他人对此感兴趣。因此,这可能是他们的起始代码。

If anyone have optimized/improved versions of the code, please do share :).

谢谢

1 个回复
最合适的回答,由SO网友:Dr.Hariri 整理而成

我在插件中使用它,但它可以在主题的函数文件中使用。

// Create field to track users\' comments numbers                                    
function display_educadme_user_comments_number($user_id) {
            if( is_user_logged_in() ) {
                    global $wpdb;
                    $user_comments_number = $wpdb->get_var(\'SELECT COUNT(comment_ID) FROM \' . $wpdb->comments. \' WHERE comment_author_email = "\' . get_comment_author_email() . \'"\');

                        ?>                          
                            <h3><?php _e(\'Participation in the website\'); ?></h3>
                            <table class="form-table">
                                <tr>
                                    <th>
                                    <label for="user_comments_number">
                                    <?php _e(\'Number of comments\'); ?>
                                    </label></th>
                                    <td>
                                    <input type="text" name="user_comments_number" value="<?php echo $user_comments_number ?>">
                                   </td>
                                </tr>
                                <?php

                } else {}
        }

// Update users\' comments numbers
function save_educadme_user_comments_number($user_id) {
            if( is_user_logged_in() ) {
                    if ( !is_super_admin() )
                    return FALSE;
                    update_usermeta( $user_id, \'user_comments_number\', $user_comments_number );                     
                } else {}
    }

add_action( \'show_user_profile\', \'display_educadme_user_comments_number\' );
add_action( \'edit_user_profile\', \'display_educadme_user_comments_number\' );
add_action( \'profile_update\', \'save_educadme_user_comments_number\' );
add_action( \'comment_post\', \'save_educadme_user_comments_number\' );

结束