From 1ed73109943ce0b8145ceb0494f2a4dddde8e6ca Mon Sep 17 00:00:00 2001 From: Almira Krdzic Date: Thu, 18 Oct 2018 13:10:55 +0200 Subject: [PATCH 1/5] handle package reference --- .../wiaas/includes/class-wiaas-package.php | 3 ++ .../wiaas/includes/class-wiaas-product.php | 35 ++++++++++++++++++- frontend/src/helpers/PackageHelper.js | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-package.php b/backend/app/plugins/wiaas/includes/class-wiaas-package.php index ff01b36..9800711 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-package.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-package.php @@ -32,6 +32,9 @@ class Wiaas_Package { $data = self::_append_country_info($data, $package, $request); + // append package reference field + $data['reference'] = ! empty($data['tags']) ? $data['tags'][0]['name'] : ''; + if (isset($request['id'])) { $data = self::_append_package_prices($data, $package, $request); diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-product.php b/backend/app/plugins/wiaas/includes/class-wiaas-product.php index 1360443..b58d34c 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-product.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-product.php @@ -7,6 +7,8 @@ class Wiaas_Product { require_once dirname( __FILE__ ) . '/product/class-wiaas-product-supplier.php'; add_filter('woocommerce_register_post_type_product', array(__CLASS__, 'manage_product_settings')); + + add_filter('woocommerce_taxonomy_args_product_tag', array(__CLASS__, 'manage_tags_as_references')); } /** @@ -16,7 +18,7 @@ class Wiaas_Product { * * @param $args * - * @return mixed + * @return array */ public static function manage_product_settings($args) { @@ -34,6 +36,37 @@ class Wiaas_Product { $args['supports'] = array( 'title', 'thumbnail' ); + return $args; + } + + /** + * Hide default metabox for product tags + * @param $args + * + * @return array + */ + public static function manage_tags_as_references($args) { + // hide metabox + $args['meta_box_cb'] = false; + + // update labels + $args['labels'] = array( + 'name' => __( 'Product references', 'wiaas' ), + 'singular_name' => __( 'Reference', 'wiaas' ), + 'menu_name' => _x( 'References', 'Admin menu name', 'wiaas' ), + 'search_items' => __( 'Search references', 'wiaas' ), + 'all_items' => __( 'All references', 'wiaas' ), + 'edit_item' => __( 'Edit reference', 'wiaas' ), + 'update_item' => __( 'Update reference', 'wiaas' ), + 'add_new_item' => __( 'Add new reference', 'wiaas' ), + 'new_item_name' => __( 'New reference name', 'wiaas' ), + 'popular_items' => __( 'Popular references', 'wiaas' ), + 'separate_items_with_commas' => __( 'Separate references with commas', 'wiaas' ), + 'add_or_remove_items' => __( 'Add or remove references', 'wiaas' ), + 'choose_from_most_used' => __( 'Choose from the most used references', 'wiaas' ), + 'not_found' => __( 'No references found', 'wiaas' ), + ); + return $args; } } diff --git a/frontend/src/helpers/PackageHelper.js b/frontend/src/helpers/PackageHelper.js index ba3fde4..7dc7620 100644 --- a/frontend/src/helpers/PackageHelper.js +++ b/frontend/src/helpers/PackageHelper.js @@ -43,7 +43,7 @@ function extractGroups(wcPackageGroups) { export const fromWCPackage = wcPackage => { return { id: wcPackage.id, - reference: wcPackage.slug, + reference: wcPackage.reference, image: wcPackage.images[0].src || DEFAULT_PACKAGE_IMG, hasImage: !!wcPackage.images.length, name: wcPackage.name, -- 2.47.3 From d3c280548b93af1c54ef49ffd748a6eafcae96c2 Mon Sep 17 00:00:00 2001 From: Almira Krdzic Date: Thu, 18 Oct 2018 13:28:41 +0200 Subject: [PATCH 2/5] customize column name for reference --- .../admin-cl/class-wiaas-admin-cl-packages.php | 1 + .../includes/admin/class-wiaas-admin-package.php | 15 +++++++++++++++ .../wiaas/includes/class-wiaas-product.php | 1 + 3 files changed, 17 insertions(+) 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 1662471..ec50c23 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 @@ -148,6 +148,7 @@ class Wiaas_Admin_CL_Packages { $cl_columns['thumb'] = $columns['thumb']; $cl_columns['wiaas_cl_name'] = $columns['name']; + $cl_columns['taxonomy-product_tag'] = __( 'Reference', 'wiaas' ); $cl_columns['taxonomy-package_type'] = __('Type', 'wiaas'); $cl_columns['taxonomy-package_status'] = __('Status', 'wiaas'); $cl_columns['taxonomy-product_country'] = $columns['taxonomy-product_country']; diff --git a/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-package.php b/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-package.php index 2f5a760..fa21387 100644 --- a/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-package.php +++ b/backend/app/plugins/wiaas/includes/admin/class-wiaas-admin-package.php @@ -12,6 +12,8 @@ class Wiaas_Admin_Package { require_once dirname( __FILE__ ) . '/package/class-wiaas-admin-package-types.php'; add_action( 'woocommerce_product_data_tabs', array( __CLASS__, 'package_data_tabs' ), 1 ); + + add_action( 'manage_product_posts_columns', array( __CLASS__, 'manage_list_table_products_columns' ), 999, 2 ); } /** @@ -32,6 +34,19 @@ class Wiaas_Admin_Package { return $tabs; } + + /** + * Customize list table product columns + * + * @param array $columns + * + * @return array + */ + public static function manage_list_table_products_columns($columns) { + $columns['product_tag'] = __( 'Reference', 'wiaas' ); + + return $columns; + } } Wiaas_Admin_Package::init(); \ No newline at end of file diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-product.php b/backend/app/plugins/wiaas/includes/class-wiaas-product.php index b58d34c..9bddd4a 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-product.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-product.php @@ -41,6 +41,7 @@ class Wiaas_Product { /** * Hide default metabox for product tags + * * @param $args * * @return array -- 2.47.3 From d22ea58568321902cf4dfc38b8d839f5fd527737 Mon Sep 17 00:00:00 2001 From: Almira Krdzic Date: Thu, 18 Oct 2018 13:36:45 +0200 Subject: [PATCH 3/5] Import reference ui field --- .../wiaas/includes/class-wiaas-db-update.php | 1 + .../data/wiaas-ui-field-reference.json | 52 +++++++++++++++++++ .../db-updates/wiaas-db-update-ui-fields.php | 9 ++++ 3 files changed, 62 insertions(+) create mode 100644 backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-reference.json diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php b/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php index b38d109..4e3534f 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php @@ -22,6 +22,7 @@ class Wiaas_DB_Update { '201810180444700' => 'wiaas_db_setup_create_customer_commercial_lead_table', '201810180544702' => 'wiaas_db_update_update_commercial_lead_capabilities', '201810180644703' => 'wiaas_db_update_add_organization_info_ui_fields', + '201810190644704' => 'wiaas_db_update_add_reference_ui_field' ); public static function execute() { diff --git a/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-reference.json b/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-reference.json new file mode 100644 index 0000000..7c8a187 --- /dev/null +++ b/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-reference.json @@ -0,0 +1,52 @@ +[ + { + "key": "group_5bc845c001de4", + "title": "Package Reference", + "fields": [ + { + "key": "field_5bc845dc7eed5", + "label": "Reference", + "name": "_wiaas_package_reference", + "type": "taxonomy", + "instructions": "", + "required": 0, + "conditional_logic": 0, + "wrapper": { + "width": "", + "class": "", + "id": "" + }, + "taxonomy": "product_tag", + "field_type": "select", + "allow_null": 0, + "add_term": 1, + "save_terms": 1, + "load_terms": 1, + "return_format": "id", + "multiple": 0 + } + ], + "location": [ + [ + { + "param": "post_type", + "operator": "==", + "value": "product" + }, + { + "param": "post_taxonomy", + "operator": "==", + "value": "product_type:bundle" + } + ] + ], + "menu_order": 0, + "position": "acf_after_title", + "style": "seamless", + "label_placement": "top", + "instruction_placement": "label", + "hide_on_screen": "", + "active": 1, + "description": "" + } +] \ No newline at end of file diff --git a/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php b/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php index 81192c0..2dbf4b1 100644 --- a/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php +++ b/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php @@ -18,6 +18,15 @@ function wiaas_db_update_add_user_organization_ui_fields() { _wiaas_import_field_group($ui_json); } +function wiaas_db_update_add_reference_ui_field() { + + $ui_json = file_get_contents( dirname( __FILE__ ) . '/data/wiaas-ui-field-reference.json' ); + + $ui_json = json_decode( $ui_json, true ); + + _wiaas_import_field_group($ui_json); +} + // private helper function -- 2.47.3 From e4ed26de7dd5d86f2d6d72c48cd23801906079cf Mon Sep 17 00:00:00 2001 From: Almira Krdzic Date: Fri, 19 Oct 2018 10:27:33 +0200 Subject: [PATCH 4/5] add missing comma --- backend/app/plugins/wiaas/includes/class-wiaas-db-update.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php b/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php index 8479cda..876ea6e 100644 --- a/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php +++ b/backend/app/plugins/wiaas/includes/class-wiaas-db-update.php @@ -23,7 +23,7 @@ class Wiaas_DB_Update { '201810180544702' => 'wiaas_db_update_update_commercial_lead_capabilities', '201810180644703' => 'wiaas_db_update_add_organization_info_ui_fields', '201910190145700' => 'wiaas_db_update_add_general_ui_fields', - '201910190146700' => 'wiaas_db_update_add_product_properties_ui_fields' + '201910190146700' => 'wiaas_db_update_add_product_properties_ui_fields', '201810190644704' => 'wiaas_db_update_add_reference_ui_field' ); -- 2.47.3 From 038b622eca00cb2c52da4c1de149193bb8ceef03 Mon Sep 17 00:00:00 2001 From: Almira Krdzic Date: Fri, 19 Oct 2018 12:27:25 +0200 Subject: [PATCH 5/5] Update product properties field --- .../wiaas-ui-field-product-properties.json | 8 ++--- .../db-updates/wiaas-db-update-ui-fields.php | 36 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-product-properties.json b/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-product-properties.json index 5abf18b..9d64856 100644 --- a/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-product-properties.json +++ b/backend/app/plugins/wiaas/includes/db-updates/data/wiaas-ui-field-product-properties.json @@ -16,10 +16,10 @@ "class": "", "id": "" }, - "taxonomy": "category", + "taxonomy": "supplier", "field_type": "select", "allow_null": 0, - "add_term": 1, + "add_term": 0, "save_terms": 1, "load_terms": 1, "return_format": "id", @@ -63,7 +63,7 @@ "taxonomy": "product_cat", "field_type": "select", "allow_null": 0, - "add_term": 1, + "add_term": 0, "save_terms": 1, "load_terms": 1, "return_format": "id", @@ -102,7 +102,7 @@ ] ], "menu_order": 0, - "position": "side", + "position": "acf_after_title", "style": "default", "label_placement": "top", "instruction_placement": "label", diff --git a/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php b/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php index 437f0d0..22cba62 100644 --- a/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php +++ b/backend/app/plugins/wiaas/includes/db-updates/wiaas-db-update-ui-fields.php @@ -27,6 +27,24 @@ function wiaas_db_update_add_reference_ui_field() { _wiaas_import_field_group($ui_json); } +function wiaas_db_update_add_general_ui_fields() { + + $ui_json = file_get_contents( dirname( __FILE__ ) . '/data/wiaas-ui-field-general.json' ); + + $ui_json = json_decode( $ui_json, true ); + + _wiaas_import_field_group($ui_json); +} + +function wiaas_db_update_add_product_properties_ui_fields() { + + $ui_json = file_get_contents( dirname( __FILE__ ) . '/data/wiaas-ui-field-product-properties.json' ); + + $ui_json = json_decode( $ui_json, true ); + + _wiaas_import_field_group($ui_json); +} + // private helper function @@ -109,21 +127,3 @@ function _wiaas_import_field_group($json) { } } - -function wiaas_db_update_add_general_ui_fields() { - - $ui_json = file_get_contents( dirname( __FILE__ ) . '/data/wiaas-ui-field-general.json' ); - - $ui_json = json_decode( $ui_json, true ); - - acf_import_field_group($ui_json[0]); -} - -function wiaas_db_update_add_product_properties_ui_fields() { - - $ui_json = file_get_contents( dirname( __FILE__ ) . '/data/wiaas-ui-field-product-properties.json' ); - - $ui_json = json_decode( $ui_json, true ); - - acf_import_field_group($ui_json[0]); -} -- 2.47.3