4 Commits

Author SHA1 Message Date
Bilal Catic
1d6837e004 hide default role 2018-12-08 22:24:22 +01:00
Bilal Catic
60de10633b show users phone number in users screen 2018-12-08 22:17:41 +01:00
Bilal Catic
902d339c6e add missing function 2018-12-08 22:00:47 +01:00
Bilal Catic
86867c4e04 add contacts page for commercial leads 2018-12-08 21:58:43 +01:00
9 changed files with 204 additions and 1 deletions

View File

@@ -0,0 +1,7 @@
.wiaas-contacts-table th{
text-align: left;
}
.wiaas-contacts-table tr.odd{
background-color: #f9f9f9;
}

View File

@@ -0,0 +1,9 @@
jQuery(document).ready(function($) {
$('#wiaas_contacts_table').DataTable({
"pageLength": 20,
"lengthChange": false,
"info": false,
"filter": true,
"order": [[ 0, "desc" ]]
});
} );

View File

@@ -0,0 +1,94 @@
<?php
/**
* Class Wiaas_Admin_CL_Contacts
*/
class Wiaas_Admin_CL_Contacts {
/**
* Displays table list of customers that are linked to commercial lead and brokers
*/
public static function init() {
add_action( 'admin_menu', array( __CLASS__, 'add_contacts_page' ), 9 );
add_action( 'admin_enqueue_scripts', array(__CLASS__, 'enqueue_scripts'), 100 );
}
public static function enqueue_scripts() {
$plugin_url = untrailingslashit( plugins_url( '/', WIAAS_FILE ) );
wp_enqueue_style( 'wiaas_admin_cl_contacts', $plugin_url . '/assets/css/wiaas-admin-cl-contacts.css' );
wp_enqueue_script( 'wiaas_admin_cl_contacts', $plugin_url . '/assets/js/wiaas-admin-cl-contacts.js' );
}
/**
* Add customer menu page for commercial lead
*/
public static function add_contacts_page() {
add_menu_page(
__( 'Contacts', 'wiaas' ),
__( 'Contacts', 'wiaas' ),
'manage_wiaas_cl_customers',
'wiaas-cl-contacts',
array(__CLASS__, 'output_contacts'),
'dashicons-list-view',
'66.0' );
}
/**
* Render content for contacts menu page
*/
public static function output_contacts() {
$organization_id = wiaas_get_current_user_organization_id();
$related_customer_organizations = Wiaas_Shop::get_shop_customers($organization_id);
$ids_of_user_organizations_to_show = [];
//add customer organizations related to CL
foreach( $related_customer_organizations as $customer_organization){
$ids_of_user_organizations_to_show[] = $customer_organization['customer_id'];
}
//add brokers
$brokers = wiaas_get_brokers();
foreach ($brokers as $broker_id => $broker_name) {
$ids_of_user_organizations_to_show[] = $broker_id;
}
$args = array(
'meta_key' => '_wiaas_organization_id',
'meta_value' => $ids_of_user_organizations_to_show,
'compare' => 'IN'
);
$query = new WP_User_Query($args);
$list_of_users = $query->get_results();
$contacts = [];
foreach ($list_of_users as $user){
$roles_array = wiaas_get_organization_roles($user->_wiaas_organization_id);
$roles = '';
foreach($roles_array as $role){
$roles .= translate_user_role( wp_roles()->role_names[ $role ]) . ', ';
}
$roles = substr($roles, 0, -2);
$contacts[] = array(
'name' => $user->user_nicename,
'email' => $user->user_email,
'phone' => get_the_author_meta('phone', $user->ID),
'roles' => $roles
);
}
require 'views/html-admin-cl-contacts-page.php';
}
}
Wiaas_Admin_CL_Contacts::init();

View File

@@ -0,0 +1,43 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
?>
<div>
<h1><?php esc_html_e( 'Contacts', 'wiaas' ); ?> </h1>
<br class="clear" />
<div >
<table id="wiaas_contacts_table" class="wiaas-contacts-table">
<thead>
<tr>
<th><?php esc_html_e( 'Name', 'wiaas' ); ?></th>
<th><?php esc_html_e( 'Email', 'wiaas' ); ?></th>
<th><?php esc_html_e( 'Phone', 'wiaas' ); ?></th>
<th><?php esc_html_e( 'Roles', 'wiaas' ); ?></th>
</tr>
</thead>
<tbody id="wiaas-contacts-tbody">
<?php
foreach ($contacts as $contact) {
?>
<tr>
<td><?php esc_html_e($contact['name'] ?: '-', 'wiaas'); ?></td>
<td><a href="mailto:<?php esc_html_e($contact['email'] ?: '-', 'wiaas'); ?>"><?php esc_html_e($contact['email'] ?: '-', 'wiaas'); ?></a></td>
<td><?php esc_html_e($contact['phone'] ?: '-', 'wiaas'); ?></td>
<td><?php esc_html_e($contact['roles'] ?: '-', 'wiaas'); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>

View File

@@ -24,6 +24,8 @@ class Wiaas_Admin_CL {
require_once dirname( __FILE__ ) . '/admin-cl/class-wiaas-admin-cl-customers.php';
require_once dirname( __FILE__ ) . '/admin-cl/class-wiaas-admin-cl-contacts.php';
require_once dirname( __FILE__ ) . '/admin-cl/class-wiaas-admin-cl-orders.php';
require_once dirname( __FILE__ ) . '/admin-cl/wiaas-admin-cl-packages-ajax.php';

View File

@@ -0,0 +1,36 @@
<?php
class Wiaas_Admin_Contacts {
public static function init() {
add_filter( 'manage_users_columns', array(__CLASS__, 'modify_users_screen_table_columns'), 999, 1 );
add_filter( 'manage_users_custom_column', array(__CLASS__, 'fill_custom_columns'), 10, 3);
}
public static function modify_users_screen_table_columns( $columns ) {
$show_columns = array();
$show_columns['cb'] = $columns['cb'];
$show_columns['username'] = $columns['username'];
$show_columns['name'] = $columns['name'];
$show_columns['email'] = $columns['email'];
$show_columns['phone'] = __( 'Phone', 'wiaas' );
$show_columns['role'] = $columns['role'];
$show_columns['wiaas-user-organization'] = $columns['wiaas-user-organization'];
return $show_columns;
}
public static function fill_custom_columns ($empty, $column, $user_id){
if ($column == 'phone'){
return get_the_author_meta('phone', $user_id) ?: '-';
}
return '';
}
}
Wiaas_Admin_Contacts::init();

View File

@@ -113,6 +113,7 @@ class Wiaas_Admin_Organization {
if (! empty($organization_role)) {
unset($role_list['none']);
unset($role_list['user']);
}
}

View File

@@ -36,6 +36,8 @@ class Wiaas_Admin {
require_once dirname(__FILE__) . '/admin/class-wiaas-admin-dashboard.php';
require_once dirname( __FILE__) . '/admin/class-wiaas-admin-contacts.php';
add_action( 'admin_enqueue_scripts', array(__CLASS__, 'enqueue_scripts'), 100 );
}

View File

@@ -56,6 +56,15 @@ function wiaas_get_organizations_with_role($role) {
return is_array($terms) ? $terms : array();
}
/**
* Retrieves list of broker organizations in [ 'id' => 'name' ] format
*
* @return array
*/
function wiaas_get_brokers() {
return wiaas_get_organizations_with_role('administrator');
}
/**
* Retrieves list of commercial lead organizations in [ 'id' => 'name' ] format
*
@@ -134,7 +143,7 @@ function wiaas_get_organization_info($organization_id) {
'description' => $organization->description,
'vat_code' => get_term_meta($organization_id, '_wiaas_organization_vat', true),
'phone' => get_term_meta($organization_id, '_wiaas_organization_phone', true),
'email' => $email
'email' => $email
);
}
}