diff --git a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-orders.php b/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-orders.php
index 2486d65..4822296 100644
--- a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-orders.php
+++ b/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-orders.php
@@ -78,12 +78,16 @@ class Wiaas_Admin_CL_Orders {
* @return array
*/
public static function columns_for_list_table_orders($columns) {
- $show_columns = array();
- $show_columns['cb'] = $columns['cb'];
- $show_columns['_wiaas_order_number'] = __( 'Order', 'woocommerce' );
- $show_columns['order_date'] = __( 'Date', 'woocommerce' );
- $show_columns['order_status'] = __( 'Status', 'woocommerce' );
- $show_columns['order_total'] = __( 'Total', 'woocommerce' );
+ $show_columns = array();
+ $show_columns['cb'] = $columns['cb'];
+ $show_columns['_wiaas_order_number'] = __( 'Order', 'wiaas' );
+ $show_columns['order_date'] = $columns['order_date'];
+ $show_columns['wiaas_reference'] = __( 'Location', 'wiaas' );
+ $show_columns['wiaas_customer'] = __( 'Customer', 'wiaas' );
+ $show_columns['order_status'] = $columns['order_status'];
+ $show_columns['billing_address'] = $columns['billing_address'];
+ $show_columns['shipping_address'] = $columns['shipping_address'];
+ $show_columns['order_total'] = $columns['order_total'];
return $show_columns;
}
diff --git a/backend/app/plugins/wiaas/includes/admin/admin-supplier/class-wiaas-admin-supplier-orders.php b/backend/app/plugins/wiaas/includes/admin/admin-supplier/class-wiaas-admin-supplier-orders.php
index 700272b..afc4264 100644
--- a/backend/app/plugins/wiaas/includes/admin/admin-supplier/class-wiaas-admin-supplier-orders.php
+++ b/backend/app/plugins/wiaas/includes/admin/admin-supplier/class-wiaas-admin-supplier-orders.php
@@ -21,11 +21,15 @@ class Wiaas_Admin_Supplier_Orders {
add_filter('woocommerce_admin_order_preview_actions', array(__CLASS__, 'remove_actions_from_order_preview'));
- add_filter('woocommerce_admin_order_preview_line_items', array(__CLASS__, 'filter_order_items_for_order_preview'), 10, 2);
+ add_filter('woocommerce_admin_order_preview_line_items', array(__CLASS__, 'filter_order_items_for_order_preview'), 999, 2);
+
+ add_filter( 'woocommerce_admin_order_preview_line_item_columns', array(__CLASS__, 'customize_order_preview_columns'), 999);
+
+ add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_simple_product_bundle', array(__CLASS__, 'render_bundled_item_bundle'), 10, 4);
add_filter('manage_shop_order_posts_columns', array(__CLASS__, 'columns_for_list_table_orders'), 999);
- add_filter('manage_edit-shop_order_sortable_columns', array(__CLASS__, 'define_sortable_columns_for_list_table_orders'));
+ add_filter('manage_edit-shop_order_sortable_columns', array(__CLASS__, 'define_sortable_columns_for_list_table_orders'), 999);
add_action('manage_shop_order_posts_custom_column', array(__CLASS__, 'render_columns_for_list_table_orders'), 999, 2);
}
@@ -53,7 +57,7 @@ class Wiaas_Admin_Supplier_Orders {
* Show only simple products from this supplier on order preview
*
* @param $order_items
- * @param $order
+ * @param WC_Order $order
*
* @return array
*/
@@ -61,26 +65,51 @@ class Wiaas_Admin_Supplier_Orders {
$user_organisation_id = Wiaas_User_Organization::get_user_organization_id(wp_get_current_user()->ID);
+ $order_items = $order->get_items();
$items = array();
foreach ($order_items as $key => $order_item) {
- $product = wc_get_product($order_item->get_product_id());
+ if (wc_pb_is_bundled_order_item($order_item)) {
- if ($product->get_type() == 'simple') {
+ $item_supplier_organization_id = absint($order_item['wiaas_supplier_organization_id']);
- $supplier_organisation_id = Wiaas_Product_Supplier
- ::get_supplier_organisation_id_from_product($order_item->get_product_id());
+ if ($item_supplier_organization_id === $user_organisation_id) {
- if ($supplier_organisation_id === $user_organisation_id) {
- $items[$key] = $order_item;
- }
+ $items[] = $order_item;
+ }
}
}
return $items;
}
+ public static function customize_order_preview_columns() {
+
+ return array(
+ 'product' => __('Product', 'wiaas'),
+ 'quantity' => __( 'Quantity', 'wiaas' ),
+ 'wiaas_simple_product_bundle' => __( '', 'wiaas' )
+ );
+ }
+
+ public static function render_bundled_item_bundle($empty, $item, $item_id, $order) {
+
+ $html = '';
+
+ if (wc_pb_is_bundled_order_item($item) ) {
+
+ $container_order_item = wc_pb_get_bundled_order_item_container($item, $order);
+
+ if ( ! empty($container_order_item) ) {
+
+ return $container_order_item->get_name();
+ }
+ }
+
+ return $html;
+ }
+
/**
* Override default table columns so only supplier specific columns are visible
*
@@ -89,11 +118,14 @@ class Wiaas_Admin_Supplier_Orders {
* @return array
*/
public static function columns_for_list_table_orders($columns) {
- $show_columns = array();
- $show_columns['cb'] = $columns['cb'];
- $show_columns['_wiaas_order_number'] = __( 'Order', 'woocommerce' );
- $show_columns['order_date'] = __( 'Date', 'woocommerce' );
- $show_columns['order_status'] = __( 'Status', 'woocommerce' );
+ $show_columns = array();
+ $show_columns['cb'] = $columns['cb'];
+ $show_columns['_wiaas_order_number'] = __( 'Order', 'wiaas' );
+ $show_columns['order_date'] = $columns['order_date'];
+ $show_columns['wiaas_reference'] = __( 'Location', 'wiaas' );
+ $show_columns['wiaas_customer'] = __( 'Customer', 'wiaas' );
+ $show_columns['order_status'] = $columns['order_status'];
+ $show_columns['shipping_address'] = $columns['shipping_address'];
return $show_columns;
}
diff --git a/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-orders.php b/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-orders.php
index 26fb3d1..5302a71 100644
--- a/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-orders.php
+++ b/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-orders.php
@@ -4,9 +4,15 @@ class Wiaas_Admin_Orders {
public static function init() {
- add_filter( 'manage_edit-shop_order_columns', array(__CLASS__, 'add_additional_columns_to_orders_screen') );
+ // Orders list customization
- add_action( 'manage_shop_order_posts_custom_column', array(__CLASS__, 'add_custom_columns_content') );
+ add_filter( 'manage_shop_order_posts_columns', array(__CLASS__, 'add_additional_columns_to_orders_list'), 11 );
+
+ add_action( 'manage_shop_order_posts_custom_column', array(__CLASS__, 'render_orders_list_additional_columns') );
+
+ add_filter('default_hidden_columns', array(__CLASS__, 'filter_orders_list_default_hidden_columns'), 11, 2);
+
+ // Order preview customization
add_filter( 'woocommerce_admin_order_preview_get_order_details', array(__CLASS__, 'add_custom_data_to_order_preview') );
@@ -14,45 +20,53 @@ class Wiaas_Admin_Orders {
add_filter( 'woocommerce_admin_order_preview_line_items', array(__CLASS__, 'remove_simple_items_from_preview'));
+ add_filter( 'woocommerce_admin_order_preview_line_item_columns', array(__CLASS__, 'order_preview_order_item_columns'));
- add_action('init', array(__CLASS__, 'init_admin'));
+ add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_order_item_price', array(__CLASS__, 'render_order_item_preview_price_column'), 10, 4);
+
+ // Order item metadata customization
+
+ add_action('woocommerce_before_order_itemmeta', array(__CLASS__, 'render_order_details_order_item_custom_info'), 10, 3);
+
+ add_filter('woocommerce_order_item_get_formatted_meta_data', array(__CLASS__, 'filter_order_item_formatted_meta_data'), 10, 2);
+
+ add_filter('woocommerce_order_item_display_meta_key', array(__CLASS__, 'order_item_display_meta_key'), 10, 3);
+
+ add_filter('woocommerce_order_item_display_meta_value', array(__CLASS__, 'order_item_display_meta_value'), 10, 3);
}
- public static function init_admin(){
- $current_user = wp_get_current_user();
- $role = $current_user->roles[0];
- $is_admin = $role === 'administrator';
-
- if ($is_admin){
- add_filter( 'woocommerce_admin_order_preview_line_item_columns', array(__CLASS__, 'customize_order_preview_columns'));
-
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_payment_type', array(__CLASS__, 'fill_in_payment_type'), 10, 2);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_services_extra', array(__CLASS__, 'fill_in_services_extra'), 10, 4);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_services_contract_period', array(__CLASS__, 'fill_in_services_contract_period'), 10, 2);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_max_contract_period', array(__CLASS__, 'fill_in_max_contract_period'), 10, 2);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_period_unit', array(__CLASS__, 'fill_in_period_unit'), 10, 2);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_recurrent_extra', array(__CLASS__, 'fill_in_recurrent_extra'), 10, 4);
- add_filter( 'woocommerce_admin_order_preview_line_item_column_wiaas_pay_period', array(__CLASS__, 'fill_in_pay_period'), 10, 2);
-
- }
- }
-
- public static function add_additional_columns_to_orders_screen( $columns ){
+ /**
+ * Add columns to orders list with wiaas specific informations
+ * @param array $columns
+ *
+ * @return array
+ */
+ public static function add_additional_columns_to_orders_list( $columns ) {
$new_columns = array();
- $new_columns['wiaas_reference'] = 'Location';
- $new_columns['wiaas_commercial_lead'] = 'Commercial lead';
- $new_columns['wiaas_customer'] = 'Customer';
+ $new_columns['wiaas_reference'] = __('Location', 'wiaas');
+ $new_columns['wiaas_commercial_lead'] = __('Commercial lead', 'wiaas');
+ $new_columns['wiaas_customer'] = __('Customer', 'wiaas');
+ $new_columns['taxonomy-shop_order_project'] = __('Project', 'wiaas');
- $insertAfterColumn = 1;
+ $columns = array_merge(
+ array_slice($columns,0,3),
+ $new_columns,
+ array_slice($columns,3)
+ );
- return array_merge(array_slice($columns,0,$insertAfterColumn+1), $new_columns, array_slice($columns,$insertAfterColumn+1));
+ return $columns;
}
- public static function add_custom_columns_content( $column ){
+ /**
+ * Display data for custom wiaas columns in orders list
+ *
+ * @param string $column
+ */
+ public static function render_orders_list_additional_columns( $column ) {
global $post;
$column_content = '';
@@ -68,13 +82,46 @@ class Wiaas_Admin_Orders {
case 'wiaas_customer':
$column_content = Wiaas_Order::get_order_customer_full_name($post->ID);
+
+ $customer_organization_info = Wiaas_Order::get_customer_organization_info($post->ID);
+
+ if ( ! empty($customer_organization_info) ) {
+
+ $column_content .= '
';
+ $column_content .= '' . $customer_organization_info['name'] . '';
+ }
break;
}
echo $column_content;
}
- public static function add_custom_data_to_order_preview ($order){
+ /**
+ * Filter default hidden columns for orders list
+ *
+ * @param array $hidden
+ * @param object $screen
+ *
+ * @return array
+ */
+ public static function filter_orders_list_default_hidden_columns($hidden, $screen) {
+
+ if (isset($screen->id) && $screen->id === 'edit-shop_order') {
+
+ $hidden = array( 'wc_actions' );
+ }
+
+ return $hidden;
+ }
+
+ /**
+ * Add custom information to order preview data
+ *
+ * @param array $order
+ *
+ * @return array
+ */
+ public static function add_custom_data_to_order_preview ($order) {
$order['wiaas_commercial_lead_name'] = Wiaas_Order::get_order_commercial_lead_name( $order['data']['id'] );
$order['needs_shipping'] = true;
@@ -82,6 +129,10 @@ class Wiaas_Admin_Orders {
return $order;
}
+ /**
+ * Display custom information in order preview
+ *
+ */
public static function show_custom_data_before_order_preview () {
echo '