如何防止当前用户两次执行功能?

时间:2018-11-29 00:47:20

标签: php wordpress

对我来说,一个用户只能完成1次功能。 如果重试,将不会发生任何事情。 如果另一个用户登录,该功能将为他执行,但仅执行一次。 以此类推。 有必要在每页上分别重复进行检查。 并且没有转到single.php中的其他页面

我的功能

if( current_user_can('author') || current_user_can('editor') || current_user_can('administrator') ){  
function setPostViews($postID) {
    $count = get_post_meta($postID, 'post_count', true);
    $count++;
    update_post_meta($postID, 'post_count', $count);
    echo $count.;
}

}

有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

这可能对某人有用,这是可以两次禁用该功能的代码。

function function_views($postID) {  
    if( current_user_can('author') || current_user_can('editor') || current_user_can('administrator') ){ 
   $user_id_views_check = get_current_user_id(); 
   $check_views = get_user_meta( $user_id_views_check, 'meta_check_views', true ); 
   if ( !$check_views || !isset($check_views[$postID]) ){   //
    $check_views[$postID] = 1;
    update_user_meta($user_id_views_check, 'meta_check_views', $check_views);
    echo 'TEST views';  
    $number_views = get_post_meta($postID, 'views_registration', true);
    $number_views++;
    update_post_meta($postID, 'views_registration', $number_views);
    }}}

仅适用于注册用户。插入到functions.php文件中

使用显示结果

function setPostViews($postID) {
$number_views = get_post_meta($postID, 'views_registration', true);
echo $number_views.' Views';
}

为了显示插入它

<?php function_views(get_the_ID()); ?>

计数和

<?php setPostViews(get_the_ID()); ?>

提款