PluginProbe
WP Directory Kit / 1.2.7
WP Directory Kit v1.2.7
1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 1.4.0 1.4.1 All 35 releases
wpdirectorykit / extensions / wdk-cached-users.php

wdk-cached-users.php in WP Directory Kit 1.2.7, at extensions/wdk-cached-users.php

124 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Wdk\Extensions;
4
5 if (!defined('ABSPATH')) exit; // Exit if accessed directly
6
7 define( 'WDK_EXTENSIONS_CACHED_USERS_ACTIVATED', '1' );
8
9 class WdkCachedUsers
10 {
11 /**
12 * data array
13 *
14 * @var array
15 */
16 public $data = array();
17 public $option_key = 'wdk_users_cached';
18
19 public function __construct($data = array(), $args = null)
20 {
21
22 add_action( 'edit_user_profile_update', array($this, 'update'), 11);
23 add_action( 'init', array($this, 'regenerate_cache_activation'), 11);
24
25 /* call with GET['wdk_cached_users_regenerate'] */
26 add_action( 'init', array($this, 'regenerate_cache_regenerate'), 11);
27
28 }
29
30 public function update($user_id = NULL)
31 {
32 global $Winter_MVC_WDK;
33 $Winter_MVC_WDK->model('cachedusers_m');
34 $Winter_MVC_WDK->load_helper('listing');
35
36 $user_data = wdk_get_user_data($user_id);
37
38 $Winter_MVC_WDK->db->where('cacheduser_user_id', $user_id);
39 $Winter_MVC_WDK->db->delete($Winter_MVC_WDK->cachedusers_m->_table_name);
40
41 $user_all_meta = get_user_meta($user_id);
42 $usermetadata = array_map( function( $a ){ return $a[0]; }, $user_all_meta );
43 $json_data = $usermetadata;
44
45 $meta_fields = array('wdk_address','wdk_phone','wdk_city','wdk_company_name','wdk_facebook','wdk_youtube','wdk_linkedin','wdk_twitter','wdk_instagram','wdk_whatsapp',
46 'wdk_viber','wdk_iban','wdk_telegram','wdk_position_title','session_tokens','wc_last_active','show_welcome_panel','dismissed_wp_pointers','locale','show_admin_bar_front','use_ssl','admin_color',
47 'comment_shortcuts','syntax_highlighting','rich_editing','description','community-events-location','_woocommerce_persistent_cart_1','_woocommerce_tracks_anon_id',
48 $Winter_MVC_WDK->db->prefix.'capabilities',$Winter_MVC_WDK->db->prefix.'user_level',$Winter_MVC_WDK->db->prefix.'user-settings',$Winter_MVC_WDK->db->prefix.'user-settings-time',$Winter_MVC_WDK->db->prefix.'dashboard_quick_press_last_post_id');
49
50 /* remove from json fields from above array */
51 foreach ($meta_fields as $key_meta_field) {
52 if(isset($json_data[$key_meta_field]))
53 unset($json_data[$key_meta_field]);
54 }
55
56 $insert_id = $Winter_MVC_WDK->cachedusers_m->insert(array(
57 'cacheduser_user_id' => $user_id,
58 'cacheduser_profile_url' => $user_data['profile_url'],
59 'cacheduser_avatar_url' => $user_data['avatar'],
60 'cacheduser_display_name' => wdk_get_user_field ($user_id, 'display_name'),
61 'cacheduser_email' => wdk_get_user_field ($user_id, 'user_email'),
62 'cacheduser_wdk_address' => wdk_get_user_field ($user_id, 'wdk_address'),
63 'cacheduser_wdk_phone' => wdk_get_user_field ($user_id, 'wdk_phone'),
64 'cacheduser_wdk_city' => wdk_get_user_field ($user_id, 'wdk_city'),
65 'cacheduser_wdk_company_name' => wdk_get_user_field ($user_id, 'wdk_company_name'),
66 'cacheduser_wdk_facebook' => wdk_get_user_field ($user_id, 'wdk_facebook'),
67 'cacheduser_wdk_youtube' => wdk_get_user_field ($user_id, 'wdk_youtube'),
68 'cacheduser_wdk_linkedin' => wdk_get_user_field ($user_id, 'wdk_linkedin'),
69 'cacheduser_wdk_twitter' => wdk_get_user_field ($user_id, 'wdk_twitter'),
70 'cacheduser_wdk_instagram' => wdk_get_user_field ($user_id, 'wdk_instagram'),
71 'cacheduser_wdk_whatsapp' => wdk_get_user_field ($user_id, 'wdk_whatsapp'),
72 'cacheduser_wdk_viber' => wdk_get_user_field ($user_id, 'wdk_viber'),
73 'cacheduser_wdk_iban' => wdk_get_user_field ($user_id, 'wdk_iban'),
74 'cacheduser_wdk_telegram' => wdk_get_user_field ($user_id, 'wdk_telegram'),
75 'cacheduser_wdk_position_title' => wdk_get_user_field ($user_id, 'wdk_position_title'),
76 'cacheduser_description' => wdk_get_user_field ($user_id, 'description'),
77 'cacheduser_user_url' => wdk_get_user_field ($user_id, 'user_url'),
78 'cacheduser_roles' => join(',', ( array ) wdk_get_user_field ($user_id, 'roles')),
79 'cacheduser_json_data' => json_encode($json_data),
80 'cacheduser_date_updated' => date('Y-m-d H:i:s'),
81 ), NULL);
82 }
83
84 public function regenerate_cache_activation()
85 {
86 if(wdk_get_option($this->option_key)) {
87 return true;
88 }
89
90 $this->regenerate_cache($limit=20);
91
92 return TRUE;
93 }
94
95 public function regenerate_cache_regenerate()
96 {
97 if(isset($_GET['wdk_cached_users_regenerate'])) {
98 $this->regenerate_cache();
99
100 return TRUE;
101 }
102 }
103
104 public function regenerate_cache($limit = NULL)
105 {
106 global $wpdb;
107 $sql = "SELECT * FROM $wpdb->users";
108
109 if(!empty($limit))
110 $sql .= " LIMIT ".esc_sql($limit);
111
112 $dbusers = $wpdb->get_results($sql);
113
114 foreach($dbusers as $dbuser) {
115 $this->update(wmvc_show_data('ID', $dbuser));
116 }
117
118 update_option( $this->option_key, 1);
119
120 return TRUE;
121 }
122
123 }
124