| |
| <?php
|
|
|
|
|
|
|
|
|
|
|
| add_action('user_register', function ($user_id) {
|
| if (!$user_id) {
|
| return;
|
| }
|
|
|
| $field_map = array(
|
| 'account_type' => 'account_type',
|
| 'afm' => 'afm',
|
| 'phone_1' => 'phone_1',
|
| 'mobile_phone' => 'mobile_phone',
|
| );
|
|
|
| foreach ($field_map as $post_key => $meta_key) {
|
| if (!isset($_POST[$post_key])) {
|
| continue;
|
| }
|
|
|
| $value = $_POST[$post_key];
|
|
|
| if (is_array($value)) {
|
| $value = implode(', ', array_map('sanitize_text_field', wp_unslash($value)));
|
| } else {
|
| $value = sanitize_text_field(wp_unslash($value));
|
| }
|
|
|
| if ($value !== '') {
|
| update_user_meta($user_id, $meta_key, $value);
|
| }
|
| }
|
| }, 20);
|
|
|
|
|
|
|
|
|
| function dc_get_user_meta_with_fallback($user_id, $keys = array()) {
|
| foreach ($keys as $key) {
|
| $value = get_user_meta($user_id, $key, true);
|
|
|
| if ($value !== '' && $value !== null) {
|
| return $value;
|
| }
|
| }
|
|
|
| return '';
|
| }
|
|
|
|
|
|
|
|
|
| add_filter('manage_users_columns', function ($columns) {
|
| $new_columns = array();
|
|
|
| foreach ($columns as $key => $label) {
|
| $new_columns[$key] = $label;
|
|
|
| if ($key === 'email') {
|
| $new_columns['dc_account_type'] = 'Είδος λογαριασμού';
|
| $new_columns['dc_afm'] = 'ΑΦΜ';
|
| $new_columns['dc_phone_1'] = 'Τηλ. Εταιρίας';
|
| $new_columns['dc_mobile_phone'] = 'Κινητό Υπεύθυνου';
|
| }
|
| }
|
|
|
| return $new_columns;
|
| });
|
|
|
|
|
|
|
|
|
| add_filter('manage_users_custom_column', function ($output, $column_name, $user_id) {
|
| if ($column_name === 'dc_account_type') {
|
| $value = dc_get_user_meta_with_fallback($user_id, array(
|
| 'account_type',
|
| 'user_registration_account_type',
|
| ));
|
|
|
| return !empty($value) ? esc_html($value) : '—';
|
| }
|
|
|
| if ($column_name === 'dc_afm') {
|
| $value = dc_get_user_meta_with_fallback($user_id, array(
|
| 'afm',
|
| 'user_registration_AFM',
|
| 'user_registration_afm',
|
| ));
|
|
|
| return !empty($value) ? esc_html($value) : '—';
|
| }
|
|
|
| if ($column_name === 'dc_phone_1') {
|
| $value = dc_get_user_meta_with_fallback($user_id, array(
|
| 'phone_1',
|
| 'user_registration_phone_1',
|
| ));
|
|
|
| return !empty($value) ? esc_html($value) : '—';
|
| }
|
|
|
| if ($column_name === 'dc_mobile_phone') {
|
| $value = dc_get_user_meta_with_fallback($user_id, array(
|
| 'mobile_phone',
|
| 'user_registration_mobile_phone',
|
| ));
|
|
|
| return !empty($value) ? esc_html($value) : '—';
|
| }
|
|
|
| return $output;
|
| }, 10, 3);
|
|
|
|
|
|
|
|
|
| add_filter('manage_users_sortable_columns', function ($columns) {
|
| $columns['dc_account_type'] = 'dc_account_type';
|
| $columns['dc_afm'] = 'dc_afm';
|
| $columns['dc_phone_1'] = 'dc_phone_1';
|
| $columns['dc_mobile_phone'] = 'dc_mobile_phone';
|
|
|
| return $columns;
|
| });
|
|
|
|
|
|
|
|
|
| add_action('pre_get_users', function ($query) {
|
| if (!is_admin() || !$query->is_main_query()) {
|
| return;
|
| }
|
|
|
| $orderby = $query->get('orderby');
|
|
|
| if ($orderby === 'dc_account_type') {
|
| $query->set('meta_key', 'account_type');
|
| $query->set('orderby', 'meta_value');
|
| }
|
|
|
| if ($orderby === 'dc_afm') {
|
| $query->set('meta_key', 'afm');
|
| $query->set('orderby', 'meta_value');
|
| }
|
|
|
| if ($orderby === 'dc_phone_1') {
|
| $query->set('meta_key', 'phone_1');
|
| $query->set('orderby', 'meta_value');
|
| }
|
|
|
| if ($orderby === 'dc_mobile_phone') {
|
| $query->set('meta_key', 'mobile_phone');
|
| $query->set('orderby', 'meta_value');
|
| }
|
| });
|
| |
| |
Comments