PluginProbe
Powerkit – Supercharge your WordPress Site / 2.2.9
Powerkit – Supercharge your WordPress Site v2.2.9
3.1.1 3.1.0 3.0.9 3.0.8 trunk 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 All 87 releases
powerkit / extensions / user / helpers / helper-powerkit-user.php

helper-powerkit-user.php in Powerkit – Supercharge your WordPress Site 2.2.9, at extensions/user/helpers/helper-powerkit-user.php

155 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Helpers to empower authors and users
4 *
5 * @package Powerkit
6 * @subpackage Modules/Helper
7 */
8
9 /**
10 * Check enabled CoAuthors.
11 */
12 function powerkit_coauthors_enabled() {
13 return class_exists( 'CoAuthors_Plus' );
14 }
15
16 /**
17 * Retrieve list of guests.
18 */
19 function powerkit_get_guests() {
20
21 $list = wp_cache_get( 'powerkit_get_guests' );
22
23 if ( ! $list ) {
24
25 $list = array();
26
27 $query = new WP_Query();
28
29 $guests = $query->query( array(
30 'post_type' => 'guest-author',
31 'post_status' => 'publish',
32 'posts_per_page' => -1,
33 ) );
34
35 foreach ( $guests as $guest ) {
36 array_push( $list, $guest );
37 }
38
39 wp_cache_set( 'powerkit_get_guests', $list, 'powerkit', 1 );
40 }
41
42 return $list;
43 }
44
45 /**
46 * Determines whether a user is a guest.
47 *
48 * @param int $id The id of guest.
49 */
50 function powerkit_is_guest( $id ) {
51 if ( ! powerkit_coauthors_enabled() ) {
52 return false;
53 }
54
55 if ( ! is_numeric( $id ) ) {
56 return false;
57 }
58
59 $guests = powerkit_get_guests();
60
61 foreach ( $guests as $guest ) {
62 if ( (int) $id === (int) $guest->ID ) {
63 return true;
64 }
65 }
66 }
67
68 /**
69 * Retrieve guest info by a given field.
70 *
71 * @param string $field The field of guest.
72 * @param int $id The id of guest.
73 */
74 function powerkit_get_guest_meta( $field, $id ) {
75 $field = str_replace( array( 'user_url', 'url' ), 'website', $field );
76
77 return get_post_meta( $id, 'cap-' . $field, true );
78 }
79
80 /**
81 * Retrieve list of users and guests.
82 */
83 function powerkit_get_users() {
84
85 $users = wp_cache_get( 'powerkit_get_users' );
86
87 if ( ! $users ) {
88 $users = get_users( array(
89 'orderby' => 'display_name',
90 ) );
91
92 if ( powerkit_coauthors_enabled() ) {
93
94 $guests = powerkit_get_guests();
95
96 foreach ( $guests as $guest ) {
97 $guest->first_name = powerkit_get_guest_meta( 'first_name', $guest->ID );
98 $guest->last_name = powerkit_get_guest_meta( 'last_name', $guest->ID );
99 $guest->user_email = powerkit_get_guest_meta( 'user_email', $guest->ID );
100 $guest->website = powerkit_get_guest_meta( 'website', $guest->ID );
101
102 $user = (object) array(
103 'ID' => $guest->ID,
104 'display_name' => $guest->post_title,
105 'user_registered' => $guest->post_date,
106 'user_login' => $guest->first_name,
107 'user_nicename' => $guest->last_name,
108 'user_email' => $guest->user_email,
109 'user_url' => $guest->website,
110 'user_pass' => '',
111 'user_activation_key' => '',
112 'user_status' => 0,
113 );
114
115 array_push( $users, $user );
116 }
117 }
118
119 wp_cache_set( 'powerkit_get_users', $users, 'powerkit', 1 );
120 }
121
122 usort( $users, function( $a, $b ) {
123 if ( function_exists( 'mb_strtolower' ) ) {
124 return strcmp( mb_strtolower( $a->display_name ), mb_strtolower( $b->display_name ) );
125 } else {
126 return strcmp( strtolower( $a->display_name ), strtolower( $b->display_name ) );
127 }
128 } );
129
130 return $users;
131 }
132
133 /**
134 * Check the user's belonging to the post.
135 *
136 * @param int $author_id The ID of author.
137 * @param int $post_id The ID of post.
138 */
139 function powerkit_check_post_author( $author_id, $post_id ) {
140
141 if ( (string) get_post_field( 'post_author', $post_id ) === (string) $author_id ) {
142 return true;
143 }
144
145 if ( powerkit_coauthors_enabled() ) {
146 $coauthors = (array) get_coauthors();
147
148 foreach ( $coauthors as $coauthor ) {
149 if ( isset( $coauthor->ID ) && (string) $coauthor->ID === (string) $author_id ) {
150 return true;
151 }
152 }
153 }
154 }
155