PluginProbe
WP Directory Kit / 1.5.9
WP Directory Kit v1.5.9
1.5.9 1.5.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 All 37 releases
wpdirectorykit / extensions / wdk-cached-users.php

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

133 lines 6.0 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
8 class WdkCachedUsers
9 {
10 /**
11 * data array
12 *
13 * @var array
14 */
15 public $data = array();
16 public $option_key = 'wdk_users_cached';
17
18 public function __construct($data = array(), $args = null)
19 {
20
21 add_action( 'wp_update_user', array($this, 'update'), 11);
22 add_action( 'init', array($this, 'regenerate_cache_activation'), 11);
23
24 /* call with GET['wdk_cached_users_regenerate'] */
25 add_action( 'init', array($this, 'regenerate_cache_regenerate'), 11);
26
27 }
28
29 public function update($user_id = NULL)
30 {
31 global $Winter_MVC_WDK;
32 $Winter_MVC_WDK->model('cachedusers_m');
33 $Winter_MVC_WDK->load_helper('listing');
34
35 $user_data = wdk_get_user_data($user_id);
36
37 $Winter_MVC_WDK->db->where('cacheduser_user_id', $user_id);
38 $Winter_MVC_WDK->db->delete($Winter_MVC_WDK->cachedusers_m->_table_name);
39
40 $user_all_meta = get_user_meta($user_id);
41 $usermetadata = array_map( function( $a ){ return $a[0]; }, $user_all_meta );
42 $json_data = $usermetadata;
43
44 $meta_fields = array('wdk_address','wdk_phone','wdk_city','wdk_company_name','wdk_facebook','wdk_youtube','wdk_linkedin','wdk_twitter','wdk_instagram','wdk_whatsapp',
45 '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',
46 'comment_shortcuts','syntax_highlighting','rich_editing','description','community-events-location','_woocommerce_persistent_cart_1','_woocommerce_tracks_anon_id',
47 $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');
48
49 /* remove from json fields from above array */
50 foreach ($meta_fields as $key_meta_field) {
51 if(isset($json_data[$key_meta_field]))
52 unset($json_data[$key_meta_field]);
53 }
54
55 $insert_id = $Winter_MVC_WDK->cachedusers_m->insert(array(
56 'cacheduser_user_id' => $user_id,
57 'cacheduser_profile_url' => wdk_esc_sql($user_data['profile_url'], true),
58 'cacheduser_avatar_url' => wdk_esc_sql($user_data['avatar'], true),
59 'cacheduser_display_name' => wdk_esc_sql(wdk_get_user_field($user_id, 'display_name'), true),
60 'cacheduser_email' => wdk_esc_sql(wdk_get_user_field($user_id, 'user_email'), true),
61 'cacheduser_wdk_address' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_address'), true),
62 'cacheduser_wdk_phone' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_phone'), true),
63 'cacheduser_wdk_city' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_city'), true),
64 'cacheduser_wdk_company_name' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_company_name'), true),
65 'cacheduser_wdk_facebook' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_facebook'), true),
66 'cacheduser_wdk_youtube' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_youtube'), true),
67 'cacheduser_wdk_linkedin' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_linkedin'), true),
68 'cacheduser_wdk_twitter' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_twitter'), true),
69 'cacheduser_wdk_instagram' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_instagram'), true),
70 'cacheduser_wdk_whatsapp' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_whatsapp'), true),
71 'cacheduser_wdk_viber' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_viber'), true),
72 'cacheduser_wdk_iban' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_iban'), true),
73 'cacheduser_wdk_telegram' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_telegram'), true),
74 'cacheduser_wdk_position_title' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_position_title'), true),
75 'cacheduser_wdk_slug' => wdk_esc_sql(wdk_get_user_field($user_id, 'wdk_slug'), true),
76 'cacheduser_user_login' => wdk_esc_sql(wdk_get_user_field($user_id, 'user_login'), true),
77 'cacheduser_agency_name' => wdk_esc_sql(wdk_get_user_field($user_id, 'agency_name'), true),
78 'cacheduser_description' => wdk_esc_sql(wdk_get_user_field($user_id, 'description'), true),
79 'cacheduser_user_url' => wdk_esc_sql(wdk_get_user_field($user_id, 'user_url'), true),
80 'cacheduser_roles' => wdk_esc_sql(join(',', (array) wdk_get_user_field($user_id, 'roles')), true),
81 'cacheduser_json_data' => wdk_esc_sql(json_encode($json_data), true),
82 'cacheduser_date_updated' => gmdate('Y-m-d H:i:s'),
83
84 ), NULL);
85 }
86
87 public function regenerate_cache_activation()
88 {
89 if(wdk_get_option($this->option_key)) {
90 return true;
91 }
92
93 $this->regenerate_cache($limit=20);
94
95 return TRUE;
96 }
97
98 public function regenerate_cache_regenerate()
99 {
100 if(isset($_GET['wdk_cached_users_regenerate'])) {
101 $this->regenerate_cache();
102
103 return TRUE;
104 }
105 }
106
107 public function regenerate_cache($limit = NULL)
108 {
109 global $wpdb;
110 if (!empty($limit)) {
111 $dbusers = $wpdb->get_results(
112 $wpdb->prepare(
113 "SELECT * FROM {$wpdb->users} LIMIT %d",
114 absint($limit)
115 )
116 );
117 } else {
118 $dbusers = $wpdb->get_results(
119 "SELECT * FROM {$wpdb->users}"
120 );
121 }
122
123 foreach($dbusers as $dbuser) {
124 $this->update(wmvc_show_data('ID', $dbuser));
125 }
126
127 update_option( $this->option_key, 1);
128
129 return TRUE;
130 }
131
132 }
133