* Add nav items example plugin

* Fix URLs

* Use WP components button in example
This commit is contained in:
Joshua T Flowers 2020-10-26 14:26:48 -04:00 committed by GitHub
parent 43a54106f3
commit c2fe5c2cfd
2 changed files with 107 additions and 0 deletions

View File

@ -0,0 +1,23 @@
/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import { Button } from '@wordpress/components';
import { registerPlugin } from "@wordpress/plugins";
import { WooNavigationItem } from "@woocommerce/navigation";
const MyPlugin = () => {
const handleClick = () => {
alert( 'Menu item clicked!' );
}
return (
<WooNavigationItem item="example-marketing-category-child-2">
<Button onClick={ handleClick }>
{ __( 'JavaScript Example', 'plugin-domain' ) }
</Button>
</WooNavigationItem>
);
};
registerPlugin('my-plugin', { render: MyPlugin });

View File

@ -0,0 +1,84 @@
<?php
/**
* Plugin Name: WooCommerce Admin Add Navigation Items Example
*
* @package WooCommerce\Admin
*/
/**
* Register the JS.
*/
function add_navigation_items_register_script() {
if ( ! class_exists( '\Automattic\WooCommerce\Admin\Features\Navigation\Screen' ) || ! \Automattic\WooCommerce\Admin\Features\Navigation\Screen::is_woocommerce_page() ) {
return;
}
wp_register_script(
'add-navigation-items',
plugins_url( '/dist/index.js', __FILE__ ),
array(
'wp-hooks',
'wp-element',
'wp-i18n',
'wc-components',
'wp-plugins',
),
filemtime( dirname( __FILE__ ) . '/dist/index.js' ),
true
);
wp_enqueue_script( 'add-navigation-items' );
}
add_action( 'admin_enqueue_scripts', 'add_navigation_items_register_script' );
/**
* Add Example items to WooCommerce Navigation
*/
function add_navigation_items_register_items() {
if (
! method_exists( '\Automattic\WooCommerce\Admin\Features\Navigation\Menu', 'add_category' ) ||
! method_exists( '\Automattic\WooCommerce\Admin\Features\Navigation\Menu', 'add_item' )
) {
return;
}
\Automattic\WooCommerce\Admin\Features\Navigation\Menu::add_item(
array(
'id' => 'example-marketing-plugin',
'title' => 'Example Marketing Settings',
'capability' => 'view_woocommerce_reports',
'parent' => 'settings',
'url' => 'https://www.google.com',
)
);
\Automattic\WooCommerce\Admin\Features\Navigation\Menu::add_category(
array(
'id' => 'example-marketing-category',
'parent' => 'woocommerce-marketing',
'title' => 'Example Marketing Category',
'capability' => 'view_woocommerce_reports',
)
);
\Automattic\WooCommerce\Admin\Features\Navigation\Menu::add_item(
array(
'id' => 'example-marketing-category-child-1',
'parent' => 'example-marketing-category',
'title' => 'Sub Menu Child 1',
'capability' => 'view_woocommerce_reports',
'url' => 'https://www.google.com',
)
);
\Automattic\WooCommerce\Admin\Features\Navigation\Menu::add_item(
array(
'id' => 'example-marketing-category-child-2',
'parent' => 'example-marketing-category',
'title' => 'Sub Menu Child 2',
'capability' => 'view_woocommerce_reports',
'url' => 'https://www.google.com',
)
);
}
add_filter( 'admin_menu', 'add_navigation_items_register_items' );