C:\xampp\htdocs\landing\wp-content\updraft\plugins-old\penci-framework\inc\post-like.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?php
/**
 * Create post like for posts
 *
 * Idea from Jon Masterson < http://jonmasterson.com/ >
 * @since 1.0
 */
add_action'wp_ajax_nopriv_penci_post_like''penci_post_like_callback' );
add_action'wp_ajax_penci_post_like''penci_post_like_callback' );

function 
penci_post_like_callback() {
    
$nonce $_POST['nonce'];

    if ( ! 
wp_verify_nonce$nonce'ajax-nonce' ) ) {
        die ( 
'Nope!' );
    }

    if ( isset( 
$_POST['penci_post_like'] ) ) {

        
$post_id         $_POST['post_id']; // post id
        
$post_like_count get_post_meta$post_id"_post_like_count"true ); // post like count

        
if ( function_exists'wp_cache_post_change' ) ) { // invalidate WP Super Cache if exists
            
$GLOBALS["super_cache_enabled"] = 1;
            
wp_cache_post_change$post_id );
        }

        if ( 
is_user_logged_in() ) { // user is logged in
            
$user_id     get_current_user_id(); // current user
            
$meta_POSTS  get_user_option"_liked_posts"$user_id ); // post ids from user meta
            
$meta_USERS  get_post_meta$post_id"_user_liked" ); // user ids from post meta
            
$liked_POSTS null// setup array variable
            
$liked_USERS null// setup array variable

            
$count_meta_post is_array$meta_POSTS ) || is_object$meta_POSTS ) ? count$meta_POSTS ) : 0;
            
$count_meta_users is_array$meta_USERS ) || is_object$meta_USERS ) ? count$meta_USERS ) : 0;

            if ( 
$count_meta_post != ) { // meta exists, set up values
                
$liked_POSTS $meta_POSTS;
            }

            if ( ! 
is_array$liked_POSTS ) ) // make array just in case
            
{
                
$liked_POSTS = array();
            }

            if ( 
$count_meta_users != ) { // meta exists, set up values
                
$liked_USERS $meta_USERS[0];
            }

            if ( ! 
is_array$liked_USERS ) ) // make array just in case
            
{
                
$liked_USERS = array();
            }

            
$liked_POSTS'post-' $post_id ] = $post_id// Add post id to user meta array
            
$liked_USERS'user-' $user_id ] = $user_id// add user id to post meta array
            
$user_likes                        count( (array)$liked_POSTS ); // count user likes

            
if ( ! penci_Already_Liked$post_id ) ) { // like the post
                
update_post_meta$post_id"_user_liked"$liked_USERS ); // Add user ID to post meta
                
update_post_meta$post_id"_post_like_count", ++ $post_like_count ); // +1 count post meta
                
update_user_option$user_id"_liked_posts"$liked_POSTS ); // Add post ID to user meta
                
update_user_option$user_id"_user_like_count"$user_likes ); // +1 count user meta
                
echo absint$post_like_count ); // update count on front end

            
} else { // unlike the post
                
$pid_key array_search$post_id$liked_POSTS ); // find the key
                
$uid_key array_search$user_id$liked_USERS ); // find the key
                
unset( $liked_POSTS$pid_key ] ); // remove from array
                
unset( $liked_USERS$uid_key ] ); // remove from array
                
$user_likes count( (array)$liked_POSTS ); // recount user likes
                
update_post_meta$post_id"_user_liked"$liked_USERS ); // Remove user ID from post meta
                
update_post_meta$post_id"_post_like_count", -- $post_like_count ); // -1 count post meta
                
update_user_option$user_id"_liked_posts"$liked_POSTS ); // Remove post ID from user meta
                
update_user_option$user_id"_user_like_count"$user_likes ); // -1 count user meta
                
echo "already" absint$post_like_count ); // update count on front end

            
}

        } else { 
// user is not logged in (anonymous)
            
$ip        $_SERVER['REMOTE_ADDR']; // user IP address
            
$meta_IPS  get_post_meta$post_id"_user_IP" ); // stored IP addresses
            
$liked_IPS null// set up array variable

            
$count_meta_IPS is_array$meta_IPS ) || is_object$meta_IPS ) ? count$meta_IPS ) : 0;

            if ( 
$count_meta_IPS != ) { // meta exists, set up values
                
$liked_IPS $meta_IPS[0];
            }

            if ( ! 
is_array$liked_IPS ) ) // make array just in case
            
{
                
$liked_IPS = array();
            }

            if ( ! 
in_array$ip$liked_IPS ) ) // if IP not in array
            
{
                
$liked_IPS'ip-' $ip ] = $ip;
            } 
// add IP to array

            
if ( ! penci_Already_Liked$post_id ) ) { // like the post
                
update_post_meta$post_id"_user_IP"$liked_IPS ); // Add user IP to post meta
                
update_post_meta$post_id"_post_like_count", ++ $post_like_count ); // +1 count post meta
                
echo absint$post_like_count ); // update count on front end

            
} else { // unlike the post
                
$ip_key array_search$ip$liked_IPS ); // find the key
                
unset( $liked_IPS$ip_key ] ); // remove from array
                
update_post_meta$post_id"_user_IP"$liked_IPS ); // Remove user IP from post meta
                
update_post_meta$post_id"_post_like_count", -- $post_like_count ); // -1 count post meta
                
echo "already" absint$post_like_count ); // update count on front end

            
}
        }
    }

    
wp_send_json_success( );
}

/**
 * Check if user is liked post
 */
function penci_Already_Liked$post_id ) { // test if user liked before
    
if ( is_user_logged_in() ) { // user is logged in
        
$user_id     get_current_user_id(); // current user
        
$meta_USERS  get_post_meta$post_id"_user_liked" ); // user ids from post meta
        
$liked_USERS ""// set up array variable
        
$count_meta_USERS is_array$meta_USERS ) || is_object$meta_USERS ) ? count$meta_USERS ) : 0;
        if ( 
$count_meta_USERS != ) { // meta exists, set up values
            
$liked_USERS $meta_USERS[0];
        }

        if ( ! 
is_array$liked_USERS ) ) // make array just in case
        
{
            
$liked_USERS = array();
        }

        if ( 
in_array$user_id$liked_USERS ) ) { // True if User ID in array
            
return true;
        }

        return 
false;

    } else { 
// user is anonymous, use IP address for voting

        
$meta_IPS  get_post_meta$post_id"_user_IP" ); // get previously voted IP address
        
$ip        $_SERVER["REMOTE_ADDR"]; // Retrieve current user IP
        
$liked_IPS ""// set up array variable
        
$count_meta_IPS is_array$meta_IPS ) || is_object$meta_IPS ) ? count$meta_IPS ) : 0;
        if ( 
$count_meta_IPS != ) { // meta exists, set up values
            
$liked_IPS $meta_IPS[0];
        }

        if ( ! 
is_array$liked_IPS ) ) // make array just in case
        
{
            
$liked_IPS = array();
        }

        if ( 
in_array$ip$liked_IPS ) ) { // True is IP in array
            
return true;
        }

        return 
false;
    }

}

/**
 * Front end button like post
 */
function penci_get_post_like_link$post_id$show false$class_pre ="" ) {
    
$like_count get_post_meta$post_id"_post_like_count"true ); // get post likes
    
if ( ! $like_count ): $like_count '0'; endif;


    if ( 
penci_Already_Liked$post_id ) ) {
        
$class esc_attr' liked' );
        
$title esc_html__'Unlike''penci-framework' );
    } else {
        
$class '';
        
$title esc_html__'Like''penci-framework' );
    }

    
$output '<a href="#" class="penci-post-like penci_post-meta_item ' $class ' ' $class_pre'" data-post_id="' $post_id '" title="' $title '" data-like="' esc_html__'Like''penci-framework' ) . '" data-unlike="' esc_html__'Unlike''penci-framework' ) . '"><i class="fa fa-thumbs-o-up"></i><span class="penci-share-number">' sanitize_text_field$like_count ) . '</span></a>';

    if ( ! 
$show ) {
        return 
$output;
    }

    echo 
$output;
}

/**
 * Front end button like post in single
 */
function penci_single_get_PostLikeLink$post_id ) {
    
$like_count get_post_meta$post_id"_post_like_count"true ); // get post likes
    
if ( ! $like_count ): $like_count '0'; endif;

    if ( 
penci_Already_Liked$post_id ) ) {
        
$class esc_attr' liked' );
        
$title esc_html__'Unlike''penci-framework' );
    } else {
        
$class '';
        
$title esc_html__'Like''penci-framework' );
    }
    
$return '<span class="count-number-like">' sanitize_text_field$like_count ) . '</span><a class="penci-post-like single-like-button' $class '" data-post_id="' $post_id '" title="' $title '" data-like="' esc_html__'Like''penci-framework' ) . '" data-unlike="' esc_html__'Unlike''penci-framework' ) . '"><i class="fa fa-heart-o"></i></a>';

    return 
$return;
}

/**
 * Front end count like post
 */
function penci_get_PostCountLike$post_id ) {
    
$like_count get_post_meta$post_id"_post_like_count"true ); // get post likes
    
$count      = ( ! isset( $like_count ) || empty( $like_count ) ) ? '0' $like_count;

    return 
$count;
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586