Add navigation plugin example (https://github.com/woocommerce/woocommerce-admin/pull/5425)
* Add nav items example plugin * Fix URLs * Use WP components button in example
This commit is contained in:
parent
43a54106f3
commit
c2fe5c2cfd
|
@ -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 });
|
|
@ -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' );
|
Loading…
Reference in New Issue