PluginProbe
WP Directory Kit / 1.3.4
WP Directory Kit v1.3.4
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.3.4, at extensions/wdk-cached-users.php

125 lines 5.3 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_agency_name' => wdk_get_user_field ($user_id, 'agency_name'),
77 'cacheduser_description' => wdk_get_user_field ($user_id, 'description'),
78 'cacheduser_user_url' => wdk_get_user_field ($user_id, 'user_url'),
79 'cacheduser_roles' => join(',', ( array ) wdk_get_user_field ($user_id, 'roles')),
80 'cacheduser_json_data' => json_encode($json_data),
81 'cacheduser_date_updated' => date('Y-m-d H:i:s'),
82 ), NULL);
83 }
84
85 public function regenerate_cache_activation()
86 {
87 if(wdk_get_option($this->option_key)) {
88 return true;
89 }
90
91 $this->regenerate_cache($limit=20);
92
93 return TRUE;
94 }
95
96 public function regenerate_cache_regenerate()
97 {
98 if(isset($_GET['wdk_cached_users_regenerate'])) {
99 $this->regenerate_cache();
100
101 return TRUE;
102 }
103 }
104
105 public function regenerate_cache($limit = NULL)
106 {
107 global $wpdb;
108 $sql = "SELECT * FROM $wpdb->users";
109
110 if(!empty($limit))
111 $sql .= " LIMIT ".esc_sql($limit);
112
113 $dbusers = $wpdb->get_results($sql);
114
115 foreach($dbusers as $dbuser) {
116 $this->update(wmvc_show_data('ID', $dbuser));
117 }
118
119 update_option( $this->option_key, 1);
120
121 return TRUE;
122 }
123
124 }
125