diff --git a/backend/app/plugins/wiaas/assets/css/wiaas-admin-cl.css b/backend/app/plugins/wiaas/assets/css/wiaas-admin-cl.css
new file mode 100644
index 0000000..50e9ff3
--- /dev/null
+++ b/backend/app/plugins/wiaas/assets/css/wiaas-admin-cl.css
@@ -0,0 +1,7 @@
+#posts-filter .tablenav .actions {
+ display: none;
+}
+
+#menu-posts-product .wp-submenu li:last-child {
+ display: none;
+}
\ No newline at end of file
diff --git a/backend/app/plugins/wiaas/assets/js/wiaas-admin-cl-packages.js b/backend/app/plugins/wiaas/assets/js/wiaas-admin-cl-packages.js
new file mode 100644
index 0000000..55332cb
--- /dev/null
+++ b/backend/app/plugins/wiaas/assets/js/wiaas-admin-cl-packages.js
@@ -0,0 +1,71 @@
+jQuery(document).ready(function ($) {
+
+ $('#tabs').each(function() {
+ var disabled = $( this ).data('disabled') || '';
+
+ $( this ).tabs({
+ disabled: [ disabled ]
+ });
+ });
+
+ $('#wiaas_add_cl_customer_extras').click(function(e) {
+ e.preventDefault();
+
+ var customer_id = $('#wiaas_cl_customers').val();
+
+ if (!customer_id || customer_id === '0') {
+ return;
+ }
+
+ $.post(window.ajaxurl, {
+ action: 'wiaas_create_cl_customer_extras',
+ _ajax_nonce: $('#wiaas_create_cl_customer_extras_nonce').val(),
+ customer_id: customer_id,
+ package_id: $('#wiaas_cl_package_id').val()
+ }).done( function (result) {
+ $('#tabs-2').append(result);
+
+ $('#wiaas_cl_customer_' + customer_id).prop( 'disabled', true );
+ });
+
+ $('#wiaas_cl_customers').val('0');
+ });
+
+ $('#wiaas_package_extras').delegate('.wiaas_remove_cl_extras', 'click', function(e) {
+ e.preventDefault();
+
+ var customer_id = $( this ).data('customer_id');
+
+ $('#extras_customer_' + customer_id).remove();
+
+ $('#wiaas_cl_customer_' + customer_id).prop( 'disabled', false );
+
+ $('#wiaas_cl_customers').val('0');
+ });
+
+ $('#wiaas_package_extras').delegate('.wiaas-cl-extra-input', 'change', function(e) {
+ e.preventDefault();
+
+ var val = parseFloat($( this ).val());
+ var target = '#' + $( this).data('target');
+
+ if (isNaN(val)) {
+
+ $(target).val('Invalid!');
+
+ return;
+ }
+
+ var type = $( this).data('type');
+
+ if (type === 'fixed') {
+ $(target).text( $(target).data('base') + val);
+ }
+
+ if (type === 'recurrent' || type === 'services') {
+ $(target).data(type, val);
+
+ $(target).text( $(target).data('base') + $(target).data('recurrent') + $(target).data('services'));
+ }
+ });
+});
\ No newline at end of file
diff --git a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages-list.php b/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages-list.php
deleted file mode 100644
index 2cd40aa..0000000
--- a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages-list.php
+++ /dev/null
@@ -1,129 +0,0 @@
- 'Package',
- 'plural' => 'Packages',
- 'ajax' => false,
- ) );
-
- return true;
- }
- public function column_default( $item, $column_name ) {
- switch ( $column_name ) {
- case 'thumb':
- return '' .
- $item->get_image( 'thumbnail' ) .
- '';
- case 'name':
- return '' .
- esc_attr( $item->get_name() ) .
- '' .
- '
ID: '. $item->get_id() . '
';
- case 'country':
- $country = Wiaas_Countries::get_package_country($item);
- if (! empty($country)) {
- return ''. $country['name'] . '';
- }
- return '';
- case 'type':
- $type = Wiaas_Package_Type::get_package_type($item->get_id());
- return ''. $type . '';
-
- }
- }
-
-
- public function prepare_items() {
- $columns = $this->get_columns();
- $sortable = $this->get_sortable_columns();
- $this->_column_headers = array( $columns, $sortable );
-
- $items_per_page = 10;
-
- $current_page = $this->get_pagenum();
-
- $query_args = array(
- 'status' => 'publish',
- 'type' => 'bundle',
- 'tag' => array(),
- 'limit' => $items_per_page,
- 'page' => $current_page,
- 'paginate' => true
- );
-
- if (!empty($_REQUEST['s'])) {
- $query_args['s'] = sanitize_text_field($_REQUEST['s']);
- }
-
- $results = wc_get_products($query_args);
-
- $this->items = $results->products;
-
- $this->set_pagination_args( array(
- 'total_items' => $results->total,
- 'per_page' => $items_per_page,
- ) );
-
- return true;
-
- }
-
- public function get_views() {
-
- return array();
- }
-
- public function get_columns() {
- $columns = array(
- 'thumb' => __( '', 'wiaas' ),
- 'name' => __( 'Name', 'wiaas' ),
- 'country' => __( 'Sell in', 'wiaas' ),
- 'type' => __( 'Type', 'wiaas' ),
- );
-
- return $columns;
- }
-
- public function get_primary_column_name() {
- return 'product_name';
- }
-
- public function get_sortable_columns() {
- $sort = array(
- 'product_name' => array( 'product_name', true ),
- );
-
- return $sort;
- }
-
- public function no_items() {
- _e( 'No packages found.', 'wiaas' );
- return true;
- }
-}
-
-function wiaas_handle_custom_query_var($query, $query_vars) {
- if ( ! empty( $query_vars['catalogue'] ) ) {
-
- $query['meta_query'][] = array(
- 'key' => '_wiaas_catalogue_'.$query_vars['catalogue'],
- 'value' => 'yes',
- );
- }
-
- return $query;
-}
-
-add_filter('woocommerce_product_data_store_cpt_get_products_query', 'wiaas_handle_custom_query_var', 10, 2);
\ No newline at end of file
diff --git a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages.php b/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages.php
index 8d67588..9176ce2 100644
--- a/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages.php
+++ b/backend/app/plugins/wiaas/includes/admin/admin-cl/class-wiaas-admin-cl-packages.php
@@ -20,6 +20,20 @@ class Wiaas_Admin_CL_Packages {
add_action( 'admin_enqueue_scripts', array(__CLASS__, 'enqueue_scripts'), 100 );
add_action( 'admin_menu', array(__CLASS__, 'add_cl_packages_menu') );
+
+ add_action( 'admin_head', array( __CLASS__, 'menu_highlight' ) );
+
+ add_filter( 'manage_product_posts_columns', array( __CLASS__, 'define_list_table_products_columns' ), 999 );
+
+ add_filter( 'bulk_actions-edit-product', array( __CLASS__, 'define_list_table_products_bulk_actions' ), 999 );
+
+ add_filter( 'views_edit-product', array( __CLASS__, 'define_list_table_products_views' ), 999 );
+
+ add_filter( 'post_row_actions', array( __CLASS__, 'define_list_table_products_row_actions' ), 999, 2 );
+
+ add_filter( 'list_table_primary_column', array( __CLASS__, 'define_list_table_products_primary_column' ), 999, 2 );
+
+ add_action( 'manage_product_posts_custom_column', array( __CLASS__, 'render_list_table_products_columns' ), 10, 2 );
}
public static function enqueue_scripts() {
@@ -29,38 +43,33 @@ class Wiaas_Admin_CL_Packages {
}
public static function add_cl_packages_menu() {
- add_menu_page(
- __( 'Products', 'wiaas' ),
- __( 'Products', 'wiaas' ),
- 'manage_wiaas_cl_products',
- 'wiaas-cl-packages',
- array(__CLASS__, 'output_list'),
- null,
- '55.5' );
-
add_submenu_page(
- null,
+ 'edit.php?post_type=product',
__( 'Products', 'wiaas' ),
null,
'manage_wiaas_cl_products',
- 'wiaas-cl-product',
+ 'wiaas-cl-package',
array(__CLASS__, 'output_package')
);
}
- public static function output_list() {
+ public static function menu_highlight() {
+ global $parent_file;
- $packages_list = new Wiaas_Admin_CL_Packages_List();
+ $screen = get_current_screen();
- $packages_list->prepare_items();
+ if ($screen->id === 'admin_page_wiaas-cl-product') {
- require 'views/html-admin-cl-packages-page.php';
+ error_log('set parent');
+
+ $parent_file = 'edit.php?post_type=product';
+ }
}
public static function output_package() {
wp_enqueue_script( 'jquery-ui-tabs' );
- $package_id = absint( $_GET['id'] );
+ $package_id = absint( $_GET['cl_package_id'] );
$package = wc_get_product($package_id);
@@ -126,6 +135,87 @@ class Wiaas_Admin_CL_Packages {
}
+ /**
+ * @section Customize display of list table products for commercial lead
+ */
+
+ /**
+ * Define columns for commercial lead view
+ * @param array $columns
+ *
+ * @return array
+ */
+ public static function define_list_table_products_columns($columns) {
+ $cl_columns = array();
+
+ $cl_columns['thumb'] = $columns['thumb'];
+ $cl_columns['wiaas_cl_name'] = $columns['name'];
+ $cl_columns['taxonomy-package_type'] = __('Type', 'wiaas');
+ $cl_columns['taxonomy-package_status'] = __('Status', 'wiaas');
+ $cl_columns['taxonomy-product_country'] = $columns['taxonomy-product_country'];
+ $cl_columns['date'] = $columns['date'];
+
+ return $cl_columns;
+ }
+
+ /**
+ * Hide list table products bulk actions for commercial lead view
+ *
+ * @return array
+ */
+ public static function define_list_table_products_bulk_actions() {
+ return array();
+ }
+
+ /**
+ * Hide list table products views for commercial lead view
+ *
+ * @return array
+ */
+ public static function define_list_table_products_views() {
+ return array();
+ }
+
+ /**
+ * Show only ID in table products views for commercial lead view
+ *
+ * @return array
+ */
+ public static function define_list_table_products_row_actions($actions, $post) {
+ if ($post->post_type === 'product') {
+ return array( 'id' => sprintf( __( 'ID: %d', 'woocommerce' ), $post->ID ) );
+ }
+
+ return $actions;
+ }
+
+ /**
+ * Define custom primary column in list table products for commercial lead view
+ *
+ * @param $default
+ * @param $screen_id
+ *
+ * @return string
+ */
+ public static function define_list_table_products_primary_column($default, $screen_id) {
+ if ( 'edit-product' === $screen_id ) {
+ return 'wiaas_cl_name';
+ }
+ return $default;
+ }
+
+ public static function render_list_table_products_columns($column, $post_id) {
+ if ($column === 'wiaas_cl_name') {
+
+ $package = wc_get_product($post_id);
+
+ $edit_link = admin_url( 'edit.php?post_type=product&page=wiaas-cl-package&cl_package_id=' . absint( $package->get_id() ) );
+
+ echo '' . esc_html( $package->get_title() ) . '';
+ }
+ }
+
+
// PRIVATE HANDLERS
diff --git a/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-admin-cl-packages-page.php b/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-admin-cl-packages-page.php
deleted file mode 100644
index a927c22..0000000
--- a/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-admin-cl-packages-page.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
- ' . esc_html__( 'Search results for', 'wiaas' ) . ' "' . sanitize_text_field( $_REQUEST['s'] ) . '"';
- }
- ?>
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-cl-package-details.php b/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-cl-package-details.php
index d10c0b1..d2b95b5 100644
--- a/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-cl-package-details.php
+++ b/backend/app/plugins/wiaas/includes/admin/admin-cl/views/html-cl-package-details.php
@@ -78,72 +78,7 @@ if ( ! defined( 'ABSPATH' ) ) {
@@ -233,15 +168,15 @@ if ( ! defined( 'ABSPATH' ) ) {
-