예제 #1
0
    /**
     * Returns user's information as set in Overview Page User Card
     *
     * @since 0.21
     *
     */
    static function render_user_card($args = false)
    {
        global $wp_crm, $current_user;
        if (!$args) {
            return;
        }
        $defaults = array('avatar_width' => 50, 'do_not_display_user_avatars' => !empty($wp_crm['configuration']['do_not_display_user_avatars']) && $wp_crm['configuration']['do_not_display_user_avatars'] == 'true' ? true : false, 'show_user_actions' => false);
        $args = wp_parse_args($args, $defaults);
        extract($args);
        if (!isset($user_object)) {
            $user_object = wp_crm_get_user($user_id);
        }
        if ($show_user_actions && is_array($wp_crm['overview_user_actions'])) {
            foreach ($wp_crm['overview_user_actions'] as $action => $data) {
                if (!empty($data['enable']) && $data['enable'] == 'true') {
                    $html = $data['label'];
                    if ($action == 'reset_password' && $current_user->ID == (int) $user_id) {
                        continue;
                    }
                    //** Apply filters to action */
                    $action = apply_filters('wp_crm_user_action', array('html' => $html, 'action' => $action, 'data' => $data, 'user_object' => $user_object, 'user_id' => $user_id));
                    $user_actions[] = '<li class="wp_crm_user_action" user_id="' . $action['user_id'] . '" action="' . $action['action'] . '">' . $action['html'] . '</li>';
                }
            }
        }
        //** Get selected attributes from Settings page */
        $user_card_attributes = $wp_crm['configuration']['overview_table_options']['main_view'];
        //** Load Default user card values to avoid having blank user cards */
        if (!is_array($user_card_attributes)) {
            $user_card_attributes[] = 'display_name';
            $user_card_attributes[] = 'user_email';
        }
        ob_start();
        ?>

    <?php 
        if (!$do_not_display_user_avatars) {
            ?>
      <div class='user_avatar'>
      <?php 
            if (current_user_can('WP-CRM: View Profiles')) {
                ?>
          <a href='<?php 
                echo admin_url("admin.php?page=wp_crm_add_new&user_id={$user_id}");
                ?>
'><?php 
                echo get_avatar($user_id, $avatar_width);
                ?>
</a>
      <?php 
            } else {
                ?>
        <?php 
                echo get_avatar($user_id, $avatar_width);
                ?>
      <?php 
            }
            ?>
      </div>
    <?php 
        }
        ?>

    <div class="user_card_inner_wrapper">
      <ul class="user_card_data">
        <li class='primary'>
    <?php 
        if (current_user_can('WP-CRM: View Profiles')) {
            ?>
            <a href='<?php 
            echo admin_url("admin.php?page=wp_crm_add_new&user_id={$user_id}");
            ?>
'><?php 
            echo WP_CRM_F::get_primary_display_value($user_object);
            ?>
</a>
    <?php 
        } else {
            ?>
      <?php 
            echo WP_CRM_F::get_primary_display_value($user_object);
            ?>
    <?php 
        }
        ?>
        </li>
    <?php 
        foreach ($user_card_attributes as $key) {
            ?>
          <li class="<?php 
            echo $key;
            ?>
">
      <?php 
            unset($visible_options);
            if (!empty($wp_crm['data_structure']['attributes'][$key]['has_options'])) {
                $visible_options = WP_CRM_F::list_options($user_object, $key);
            } else {
                $visible_options[] = apply_filters('wp_crm_display_' . $key, WP_CRM_F::get_first_value($user_object[$key]), $user_id, $user_object, 'user_card');
            }
            if (is_array($visible_options)) {
                foreach ($visible_options as $this_key => $option) {
                    if (CRM_UD_F::is_url($option)) {
                        $visible_options[$this_key] = "<a href='{$option}'>{$option}</a>";
                    }
                }
            }
            if (is_array($visible_options)) {
                echo '<ul><li>' . implode('</li><li>', $visible_options) . '</li></ul>';
            }
            ?>
</li>
    <?php 
        }
        ?>
      </ul>

      <?php 
        if (!empty($user_actions) && is_array($user_actions)) {
            echo '<ul class="wp_crm_user_row_actions">' . implode('<li class="wp_crm_divider"> | </li>', $user_actions) . '</ul>';
        }
        ?>
    </div>
    <?php 
        $content = ob_get_contents();
        ob_end_clean();
        return $content;
    }