Resolve conflicts.

This commit is contained in:
barryhughes 2022-05-20 13:51:41 +00:00
parent b30bd2a85a
commit 715544f811
1 changed files with 59 additions and 20 deletions

View File

@ -11,6 +11,7 @@ use Automattic\WooCommerce\Admin\Features\Features;
use Automattic\WooCommerce\Admin\Features\Navigation\Menu; use Automattic\WooCommerce\Admin\Features\Navigation\Menu;
use Automattic\WooCommerce\Admin\Features\Navigation\Screen; use Automattic\WooCommerce\Admin\Features\Navigation\Screen;
use Automattic\WooCommerce\Admin\Features\OnboardingTasks\TaskLists; use Automattic\WooCommerce\Admin\Features\OnboardingTasks\TaskLists;
use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;
/** /**
* CoreMenu class. Handles registering Core menu items. * CoreMenu class. Handles registering Core menu items.
@ -60,14 +61,14 @@ class CoreMenu {
foreach ( $tabs as $key => $setting ) { foreach ( $tabs as $key => $setting ) {
$order += 10; $order += 10;
$menu_items[] = ( $menu_items[] = (
array( array(
'parent' => 'woocommerce-settings', 'parent' => 'woocommerce-settings',
'title' => $setting, 'title' => $setting,
'capability' => 'manage_woocommerce', 'capability' => 'manage_woocommerce',
'id' => 'settings-' . $key, 'id' => 'settings-' . $key,
'url' => 'admin.php?page=wc-settings&tab=' . $key, 'url' => 'admin.php?page=wc-settings&tab=' . $key,
'order' => $order, 'order' => $order,
) )
); );
} }
@ -104,18 +105,18 @@ class CoreMenu {
'order' => 20, 'order' => 20,
), ),
$analytics_enabled ? $analytics_enabled ?
array( array(
'title' => __( 'Analytics', 'woocommerce' ), 'title' => __( 'Analytics', 'woocommerce' ),
'id' => 'woocommerce-analytics', 'id' => 'woocommerce-analytics',
'order' => 30, 'order' => 30,
) : null, ) : null,
$analytics_enabled ? $analytics_enabled ?
array( array(
'title' => __( 'Reports', 'woocommerce' ), 'title' => __( 'Reports', 'woocommerce' ),
'id' => 'woocommerce-reports', 'id' => 'woocommerce-reports',
'parent' => 'woocommerce-analytics', 'parent' => 'woocommerce-analytics',
'order' => 200, 'order' => 200,
) : null, ) : null,
array( array(
'title' => __( 'Marketing', 'woocommerce' ), 'title' => __( 'Marketing', 'woocommerce' ),
'id' => 'woocommerce-marketing', 'id' => 'woocommerce-marketing',
@ -143,7 +144,7 @@ class CoreMenu {
* @return array * @return array
*/ */
public static function get_items() { public static function get_items() {
$order_items = Menu::get_post_type_items( 'shop_order', array( 'parent' => 'woocommerce-orders' ) ); $order_items = self::get_order_menu_items();
$product_items = Menu::get_post_type_items( 'product', array( 'parent' => 'woocommerce-products' ) ); $product_items = Menu::get_post_type_items( 'product', array( 'parent' => 'woocommerce-products' ) );
$product_tag_items = Menu::get_taxonomy_items( $product_tag_items = Menu::get_taxonomy_items(
'product_tag', 'product_tag',
@ -253,6 +254,44 @@ class CoreMenu {
); );
} }
/**
* Supplies menu items for orders.
*
* This varies depending on whether we are actively using traditional post type-based orders or the new custom
* table-based orders.
*
* @return ?array
*/
private static function get_order_menu_items(): ?array {
if ( ! wc_get_container()->get( CustomOrdersTableController::class )->custom_orders_table_usage_is_enabled() ) {
return Menu::get_post_type_items( 'shop_order', array( 'parent' => 'woocommerce-orders' ) );
}
$main_orders_menu = array(
'title' => __( 'Orders', 'woocommerce' ),
'capability' => 'edit_others_shop_orders',
'id' => 'woocommerce-orders-default',
'url' => 'admin.php?page=wc-orders',
'parent' => 'woocommerce-orders',
);
$all_orders_entry = $main_orders_menu;
$all_orders_entry['id'] = 'woocommerce-orders-all-items';
$all_orders_entry['order'] = 10;
$new_orders_entry = $main_orders_menu;
$new_orders_entry['title'] = __( 'Add order', 'woocommerce' );
$new_orders_entry['id'] = 'woocommerce-orders-add-item';
$new_orders_entry['url'] = 'admin.php?page=TBD';
$new_orders_entry['order'] = 20;
return array(
'default' => $main_orders_menu,
'all' => $all_orders_entry,
'new' => $new_orders_entry,
);
}
/** /**
* Get items for tools category. * Get items for tools category.
* *