Merge branch 'backend-add-missing-details-order-view' into 'development'
Backend add missing details order view See merge request saburly/wiaas/new-wiaas!77
This commit was merged in pull request #77.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
<?php
|
||||
|
||||
class Wiaas_Admin_Orders {
|
||||
|
||||
public static function init() {
|
||||
|
||||
// Orders list customization
|
||||
|
||||
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') );
|
||||
|
||||
add_filter( 'woocommerce_admin_order_preview_start', array(__CLASS__, 'show_custom_data_before_order_preview') );
|
||||
|
||||
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_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);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 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', 'wiaas');
|
||||
$new_columns['wiaas_commercial_lead'] = __('Commercial lead', 'wiaas');
|
||||
$new_columns['wiaas_customer'] = __('Customer', 'wiaas');
|
||||
$new_columns['taxonomy-shop_order_project'] = __('Project', 'wiaas');
|
||||
|
||||
$columns = array_merge(
|
||||
array_slice($columns,0,3),
|
||||
$new_columns,
|
||||
array_slice($columns,3)
|
||||
);
|
||||
|
||||
return $columns;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 = '';
|
||||
|
||||
switch ($column){
|
||||
case 'wiaas_reference':
|
||||
$column_content = Wiaas_Order::get_order_reference($post->ID);
|
||||
break;
|
||||
|
||||
case 'wiaas_commercial_lead':
|
||||
$column_content = Wiaas_Order::get_order_commercial_lead_name($post->ID);
|
||||
break;
|
||||
|
||||
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 .= '<br>';
|
||||
$column_content .= '<small>' . $customer_organization_info['name'] . '</small>';
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
echo $column_content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display custom information in order preview
|
||||
*
|
||||
*/
|
||||
public static function show_custom_data_before_order_preview () {
|
||||
|
||||
echo '<div class="wc-order-preview-addresses">
|
||||
<div class="wc-order-preview-address">
|
||||
<h3>Commercial lead</h3>
|
||||
<strong>{{data.wiaas_commercial_lead_name}}</strong>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Display only bundles (not simple products)
|
||||
*
|
||||
* This will also not display options and addons
|
||||
*
|
||||
* @param array $order_items
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function remove_simple_items_from_preview( $order_items){
|
||||
|
||||
$items = array();
|
||||
|
||||
foreach ($order_items as $order_item) {
|
||||
|
||||
if ( Wiaas_Order_Item::is_standard_bundle($order_item) ) {
|
||||
$items[] = $order_item;
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Columns for order preview order items table
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function order_preview_order_item_columns( ) {
|
||||
|
||||
return array(
|
||||
'product' => __('Product', 'wiaas'),
|
||||
'quantity' => __( 'Quantity', 'wiaas' ),
|
||||
'wiaas_order_item_price' => __( 'Price', 'wiaas' )
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $empty
|
||||
* @param WC_Order_Item $item
|
||||
* @param int $item_id
|
||||
* @param WC_Order $order
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function render_order_item_preview_price_column($empty, $item, $item_id, $order) {
|
||||
|
||||
if (Wiaas_Order_Item::is_standard_bundle($item)) {
|
||||
|
||||
$total_price = wc_price( $item->get_total(), array( 'currency' => $order->get_currency() ) );
|
||||
|
||||
$monthly_price = wc_price(
|
||||
Wiaas_Order_Item::get_monthly_recurring_total($item),
|
||||
array( 'currency' => $order->get_currency() )
|
||||
);
|
||||
|
||||
return sprintf('<strong>On Delivery:</strong> %s <br> <strong>Monthly:</strong> %s',
|
||||
$total_price,
|
||||
$monthly_price);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Render order item payment info with order item metadata on order details page
|
||||
*
|
||||
* @param $item_id
|
||||
* @param WC_Order_Item $item
|
||||
* @param $product
|
||||
*/
|
||||
public static function render_order_details_order_item_custom_info($item_id, $item, $product) {
|
||||
|
||||
if (Wiaas_Order_Item::is_standard_bundle($item)) {
|
||||
|
||||
$order = $item->get_order();
|
||||
|
||||
$total_price = wc_price( $item->get_total(), array( 'currency' => $order->get_currency() ) );
|
||||
|
||||
$monthly_price = wc_price(
|
||||
Wiaas_Order_Item::get_monthly_recurring_total($item),
|
||||
array( 'currency' => $order->get_currency() )
|
||||
);
|
||||
|
||||
?>
|
||||
<br><br>
|
||||
<strong>On Delivery:</strong> <?php echo $total_price ?>
|
||||
<br>
|
||||
<strong>Monthly:</strong> <?php echo $monthly_price ?>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $formatted_meta
|
||||
* @param WC_Order_Item $order_item
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function filter_order_item_formatted_meta_data($formatted_meta, $order_item) {
|
||||
|
||||
if (Wiaas_Order_Item::is_standard_bundle($order_item)) {
|
||||
|
||||
return $formatted_meta;
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $display_key
|
||||
* @param object $meta
|
||||
* @param WC_Order_Item $item
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function order_item_display_meta_key($display_key, $meta, $item) {
|
||||
|
||||
switch ($meta->key) {
|
||||
case '_wiaas_payment_type':
|
||||
return 'Payment type';
|
||||
|
||||
case '_wiaas_services_extra':
|
||||
return 'Services and support price';
|
||||
|
||||
case '_wiaas_recurrent_extra':
|
||||
return 'Recurrent price';
|
||||
|
||||
default:
|
||||
return $display_key;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $display_value
|
||||
* @param object $meta
|
||||
* @param WC_Order_Item $item
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function order_item_display_meta_value($display_value, $meta, $item) {
|
||||
|
||||
switch ($meta->key) {
|
||||
|
||||
case '_wiaas_services_extra':
|
||||
$order = $item->get_order();
|
||||
|
||||
return wc_price(
|
||||
Wiaas_Order_Item::get_services_total($item),
|
||||
array( 'currency' => $order->get_currency())
|
||||
);
|
||||
|
||||
case '_wiaas_recurrent_extra':
|
||||
$order = $item->get_order();
|
||||
|
||||
return wc_price(
|
||||
Wiaas_Order_Item::get_recurrent_total($item),
|
||||
array( 'currency' => $order->get_currency())
|
||||
);
|
||||
|
||||
default:
|
||||
return $display_value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Wiaas_Admin_Orders::init();
|
||||
@@ -30,7 +30,9 @@ class Wiaas_Admin {
|
||||
|
||||
require_once dirname(__FILE__) . '/admin/class-wiaas-admin-user-profile.php';
|
||||
|
||||
require_once dirname(__FILE__) . '/admin/class-wiaas-admin-countries.php';
|
||||
require_once dirname(__FILE__) . '/admin/class-wiaas-admin-countries.php';
|
||||
|
||||
require_once dirname(__FILE__) . '/admin/class-wiaas-admin-orders.php';
|
||||
|
||||
add_action( 'admin_enqueue_scripts', array(__CLASS__, 'enqueue_scripts'), 100 );
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@ class Wiaas_Cart {
|
||||
public static function init() {
|
||||
add_action( 'woocommerce_checkout_create_order_line_item', array( __CLASS__, 'add_order_item_meta' ), 10, 3 );
|
||||
|
||||
add_filter( 'woocommerce_hidden_order_itemmeta', array( __CLASS__, 'hidden_order_item_meta' ) );
|
||||
|
||||
add_action( 'woocommerce_before_calculate_totals', array( __CLASS__, 'on_calculate_totals' ), 99, 1);
|
||||
|
||||
add_action( 'woocommerce_cart_loaded_from_session', array( __CLASS__, 'on_calculate_totals' ), 99, 1);
|
||||
@@ -444,40 +442,6 @@ class Wiaas_Cart {
|
||||
return $order_item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark extended properties for order as hidden
|
||||
* @param $hidden
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function hidden_order_item_meta( $hidden ) {
|
||||
|
||||
return array_merge( $hidden, array(
|
||||
'_wiaas_payment_type',
|
||||
'_wiaas_services_extra',
|
||||
'_wiaas_service_contract_period',
|
||||
'_wiaas_max_contract_period',
|
||||
'_wiaas_period_unit',
|
||||
'_wiaas_recurrent_extra',
|
||||
'_wiaas_pay_period',
|
||||
'_wiaas_addon_items',
|
||||
'_wiaas_addon_for',
|
||||
'_wiaas_option_items',
|
||||
'_wiaas_option_for',
|
||||
'_wiaas_option_group_name',
|
||||
'_wiaas_standard_package',
|
||||
'_wiaas_documents',
|
||||
'_wiaas_category',
|
||||
'_wiaas_manufacturer_product_no',
|
||||
'_wiaas_supplier_product_no',
|
||||
'_wiaas_supplier_organization_id',
|
||||
'_wiaas_product_price',
|
||||
'_wiaas_earliest_installation_additional_days',
|
||||
'_wiaas_installation',
|
||||
'_wiaas_installation_date'
|
||||
) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets additional order data form cart after order is successfully created
|
||||
*
|
||||
|
||||
@@ -19,6 +19,7 @@ class Wiaas_Order {
|
||||
|
||||
require_once dirname( __FILE__ ) . '/order/class-wiaas-order-project.php';
|
||||
require_once dirname( __FILE__ ) . '/order/wiaas-order-functions.php';
|
||||
require_once dirname( __FILE__ ) . '/order/class-wiaas-order-item.php';
|
||||
|
||||
add_filter('woocommerce_register_post_type_shop_order', array(__CLASS__, 'manage_order_settings'));
|
||||
|
||||
@@ -370,6 +371,25 @@ class Wiaas_Order {
|
||||
return $response;
|
||||
}
|
||||
|
||||
public static function get_order_customer_full_name($order_id){
|
||||
$order = wc_get_order($order_id);
|
||||
|
||||
$customer_user_id = $order->get_customer_id();
|
||||
|
||||
$customer = get_userdata($customer_user_id);
|
||||
|
||||
return $customer->last_name . ' ' . $customer->first_name;
|
||||
}
|
||||
|
||||
public static function get_order_commercial_lead_name($order_id){
|
||||
$order = wc_get_order($order_id);
|
||||
|
||||
$commercial_lead_org_id = $order->get_meta('_wiaas_commercial_lead_id', true);
|
||||
$commercial_lead_organization_info = wiaas_get_organization_info($commercial_lead_org_id);
|
||||
|
||||
return $commercial_lead_organization_info['name'];
|
||||
}
|
||||
|
||||
public static function set_order_vat($order_id, $vat_code) {
|
||||
add_post_meta($order_id, '_wiaas_vat_code', $vat_code);
|
||||
}
|
||||
@@ -417,6 +437,53 @@ class Wiaas_Order {
|
||||
return $code;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve customer organization id for order
|
||||
*
|
||||
* @param int $order_id
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public static function get_order_customer_organization_id($order_id) {
|
||||
$order = wc_get_order($order_id);
|
||||
|
||||
$customer_organization_id = $order->get_meta('_wiaas_customer_id', true);
|
||||
|
||||
if (empty($customer_organization_id)) {
|
||||
|
||||
$customer_organization_id = wiaas_get_user_organization_id($order->get_customer_id());
|
||||
}
|
||||
|
||||
return $customer_organization_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve customer organization info from order
|
||||
*
|
||||
* @param int $order_id
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
public static function get_customer_organization_info($order_id) {
|
||||
$order = wc_get_order($order_id);
|
||||
|
||||
$customer_organization_info = $order->get_meta('_wiaas_customer_info', true);
|
||||
|
||||
$customer_organization_id = self::get_order_customer_organization_id($order_id);
|
||||
|
||||
if ( empty($customer_organization_info) && ! empty( $customer_organization_id) ) {
|
||||
|
||||
$customer_organization_info = wiaas_get_organization_info($customer_organization_id);
|
||||
}
|
||||
|
||||
if ( ! empty($customer_organization_info) ) {
|
||||
|
||||
$customer_organization_info['id'] = $customer_organization_id;
|
||||
}
|
||||
|
||||
return ! empty($customer_organization_info) ? $customer_organization_info : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* PRIVATE
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
class Wiaas_Order_Item {
|
||||
|
||||
public static function init() {
|
||||
|
||||
add_filter( 'woocommerce_hidden_order_itemmeta', array( __CLASS__, 'hidden_order_item_meta' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark extended properties for order as hidden
|
||||
*
|
||||
* @param array $hidden
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function hidden_order_item_meta( $hidden ) {
|
||||
|
||||
return array_merge( $hidden, array(
|
||||
//'_wiaas_payment_type',
|
||||
//'_wiaas_services_extra',
|
||||
'_wiaas_service_contract_period',
|
||||
'_wiaas_max_contract_period',
|
||||
'_wiaas_period_unit',
|
||||
//'_wiaas_recurrent_extra',
|
||||
'_wiaas_pay_period',
|
||||
'_wiaas_addon_items',
|
||||
'_wiaas_addon_for',
|
||||
'_wiaas_option_items',
|
||||
'_wiaas_option_for',
|
||||
'_wiaas_option_group_name',
|
||||
'_wiaas_standard_package',
|
||||
'_wiaas_documents',
|
||||
'_wiaas_category',
|
||||
'_wiaas_manufacturer_product_no',
|
||||
'_wiaas_supplier_product_no',
|
||||
'_wiaas_supplier_organization_id',
|
||||
'_wiaas_product_price',
|
||||
'_wiaas_earliest_installation_additional_days',
|
||||
'_wiaas_installation',
|
||||
'_wiaas_installation_date'
|
||||
) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WC_Order_Item $order_item
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function is_standard_bundle($order_item) {
|
||||
|
||||
$is_standard = $order_item->get_meta('_wiaas_standard_package');
|
||||
return ! empty($is_standard);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WC_Order_Item $order_item
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public static function get_services_total($order_item) {
|
||||
$quantity = $order_item->get_quantity();
|
||||
|
||||
return $quantity * floatval($order_item->get_meta('_wiaas_services_extra'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WC_Order_Item $order_item
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public static function get_recurrent_total($order_item) {
|
||||
$quantity = $order_item->get_quantity();
|
||||
|
||||
return $quantity * floatval($order_item->get_meta('_wiaas_recurrent_extra'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WC_Order_Item $order_item
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public static function get_monthly_recurring_total($order_item) {
|
||||
|
||||
return self::get_services_total($order_item) + self::get_recurrent_total($order_item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Wiaas_Order_Item::init();
|
||||
@@ -61,6 +61,7 @@ include_once WIAAS_DIR . '/includes/wiaas-class-measurement-units.php';
|
||||
|
||||
include_once WIAAS_DIR . '/includes/class-wiaas-validation.php';
|
||||
|
||||
|
||||
function wiaas_redirect_to_login() {
|
||||
wp_safe_redirect(get_site_url('', 'wp-login.php'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user