From 00a1ef7da5254c6fa972684fa74fc042e0e4da34 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Thu, 29 Nov 2018 05:01:51 +0100 Subject: [PATCH] add order payment details to order preview --- .../admin/class-wiaas-admin-orders.php | 84 +++++++++++++++++++ .../class-wc-admin-list-table-orders.php | 11 +-- 2 files changed, 86 insertions(+), 9 deletions(-) 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 962e60e..c48369c 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 @@ -9,6 +9,31 @@ class Wiaas_Admin_Orders { add_action( 'manage_shop_order_posts_custom_column', array(__CLASS__, 'add_custom_columns_content') ); add_filter( 'woocommerce_admin_order_preview_get_order_details', array(__CLASS__, 'add_custom_data_to_order_preview') ); + + add_filter( 'woocommerce_admin_order_preview_line_items', array(__CLASS__, 'remove_simple_items_from_preview')); + + + add_action('init', array(__CLASS__, 'init_admin')); + + } + + 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_payment_type', array(__CLASS__, 'fill_in_payment_type'), 10, 2); + add_filter( 'woocommerce_admin_order_preview_line_item_column_services_extra', array(__CLASS__, 'fill_in_services_extra'), 10, 4); + add_filter( 'woocommerce_admin_order_preview_line_item_column_services_contract_period', array(__CLASS__, 'fill_in_services_contract_period'), 10, 2); + add_filter( 'woocommerce_admin_order_preview_line_item_column_max_contract_period', array(__CLASS__, 'fill_in_max_contract_period'), 10, 2); + add_filter( 'woocommerce_admin_order_preview_line_item_column_period_unit', array(__CLASS__, 'fill_in_period_unit'), 10, 2); + add_filter( 'woocommerce_admin_order_preview_line_item_column_recurrent_extra', array(__CLASS__, 'fill_in_recurrent_extra'), 10, 4); + add_filter( 'woocommerce_admin_order_preview_line_item_column_pay_period', array(__CLASS__, 'fill_in_pay_period'), 10, 2); + + } } public static function add_additional_columns_to_orders_screen( $columns ){ @@ -54,6 +79,65 @@ class Wiaas_Admin_Orders { return $order; } + public static function remove_simple_items_from_preview( $order_items){ + + $items = array(); + + foreach ($order_items as $order_item) { + if (isset($order_item['wiaas_standard_package'])) { + $items[] = $order_item; + } + } + + return $items; + } + + public static function customize_order_preview_columns( $columns ){ + + unset($columns['total']); + + $columns['payment_type'] = __( 'Payment type', 'wiaas' ); + $columns['services_extra'] = __( 'Services extra', 'wiaas'); + $columns['recurrent_extra'] = __( 'Recurrent extra', 'wiaas'); + $columns['services_contract_period'] = __( 'Contract period', 'wiaas'); + $columns['max_contract_period'] = __( 'Maximum contract period', 'wiaas'); + $columns['pay_period'] = __( 'Pay period', 'wiaas'); + $columns['period_unit'] = __( 'Period unit', 'wiaas'); + + $columns['total'] = __( 'Total', 'woocommerce'); + + return $columns; + + } + + public static function fill_in_payment_type ( $empty , $item){ + return $item->get_meta('_wiaas_payment_type'); + } + + public static function fill_in_services_extra ($empty, $item, $item_id, $order){ + return wc_price( $item->get_meta('_wiaas_services_extra'), array( 'currency' => $order->get_currency() ) ); + } + + public static function fill_in_services_contract_period($empty, $item){ + return $item->get_meta('_wiaas_service_contract_period'); + } + + public static function fill_in_max_contract_period($empty, $item){ + return $item->get_meta('_wiaas_max_contract_period'); + } + + public static function fill_in_period_unit ($empty, $item){ + return $item->get_meta('_wiaas_period_unit'); + } + + public static function fill_in_recurrent_extra($empty, $item, $item_id, $order){ + return wc_price( $item->get_meta('_wiaas_recurrent_extra'), array( 'currency' => $order->get_currency() ) ); + } + + public static function fill_in_pay_period($empty, $item){ + return $item->get_meta('_wiaas_pay_period'); + } + } diff --git a/backend/app/plugins/wiaas/includes/admin/custom-woocommerce-admin-classes/class-wc-admin-list-table-orders.php b/backend/app/plugins/wiaas/includes/admin/custom-woocommerce-admin-classes/class-wc-admin-list-table-orders.php index 8fbe0d6..5c27f0a 100644 --- a/backend/app/plugins/wiaas/includes/admin/custom-woocommerce-admin-classes/class-wc-admin-list-table-orders.php +++ b/backend/app/plugins/wiaas/includes/admin/custom-woocommerce-admin-classes/class-wc-admin-list-table-orders.php @@ -358,7 +358,7 @@ class WC_Admin_List_Table_Orders extends Wiaas_Custom_WC_Admin_List_Table {

{{{ data.formatted_billing_address }}} - + <# if ( data.data.billing.email ) { #> {{ data.data.billing.email }} @@ -505,14 +505,7 @@ class WC_Admin_List_Table_Orders extends Wiaas_Custom_WC_Admin_List_Table { $html .= wc_price( $item->get_total_tax(), array( 'currency' => $order->get_currency() ) ); break; case 'total': - $item_price = $item->get_meta('_wiaas_product_price'); - if ($item_price){ - $total_price = $item->get_quantity() * floatval($item_price); - }else{ - $total_price = $item->get_total(); - } - - $html .= wc_price( $total_price , array( 'currency' => $order->get_currency() ) ); + $html .= wc_price( $item->get_total(), array( 'currency' => $order->get_currency() ) ); break; default: $html .= apply_filters( 'woocommerce_admin_order_preview_line_item_column_' . sanitize_key( $column ), '', $item, $item_id, $order );