diff --git a/php/class-customize-snapshot-manager.php b/php/class-customize-snapshot-manager.php index 1453a211..7a36b5e2 100644 --- a/php/class-customize-snapshot-manager.php +++ b/php/class-customize-snapshot-manager.php @@ -474,6 +474,7 @@ static public function is_valid_uuid( $uuid ) { public function customize_menu( $wp_admin_bar ) { add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' ); $this->replace_customize_link( $wp_admin_bar ); + $this->add_changesets_admin_bar_link( $wp_admin_bar ); $this->add_resume_snapshot_link( $wp_admin_bar ); $this->add_post_edit_screen_link( $wp_admin_bar ); $this->add_snapshot_exit_link( $wp_admin_bar ); @@ -553,6 +554,26 @@ public function replace_customize_link( $wp_admin_bar ) { $wp_admin_bar->add_menu( (array) $customize_node ); } + /** + * Adds a link to resume snapshot previewing. + * + * @param \WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance. + */ + public function add_changesets_admin_bar_link( $wp_admin_bar ) { + if ( ! $wp_admin_bar->get_node( 'customize' ) ) { + return; + } + $wp_admin_bar->add_node( array( + 'id' => 'customize-changesets', + 'parent' => 'customize', + 'title' => __( 'Changesets', 'customize-snapshots' ), + 'href' => admin_url( 'edit.php?post_type=customize_changeset' ), + 'meta' => array( + 'class' => 'ab-item', + ), + ) ); + } + /** * Adds a link to resume snapshot previewing. * diff --git a/tests/php/test-class-customize-snapshot-manager.php b/tests/php/test-class-customize-snapshot-manager.php index 890fdf4d..953fa736 100644 --- a/tests/php/test-class-customize-snapshot-manager.php +++ b/tests/php/test-class-customize-snapshot-manager.php @@ -543,6 +543,7 @@ public function test_print_admin_bar_styles() { * Test misc admin bar extensions. * * @covers \CustomizeSnapshots\Customize_Snapshot_Manager::add_post_edit_screen_link() + * @covers \CustomizeSnapshots\Customize_Snapshot_Manager::add_changesets_admin_bar_link() * @covers \CustomizeSnapshots\Customize_Snapshot_Manager::add_snapshot_exit_link() * @covers \CustomizeSnapshots\Customize_Snapshot_Manager::add_resume_snapshot_link() * @covers \CustomizeSnapshots\Customize_Snapshot_Manager::remove_all_non_snapshot_admin_bar_links() @@ -550,6 +551,7 @@ public function test_print_admin_bar_styles() { public function test_add_post_edit_and_exit_links() { global $wp_admin_bar; set_current_screen( 'front' ); + wp_set_current_user( $this->user_id ); require_once ABSPATH . WPINC . '/class-wp-admin-bar.php'; $this->manager->post_type->save( array( @@ -573,6 +575,9 @@ public function test_add_post_edit_and_exit_links() { $this->assertEmpty( $wp_admin_bar->get_node( 'exit-customize-snapshot' ) ); $this->assertNotEmpty( $wp_admin_bar->get_node( 'wporg' ) ); $this->assertNotEmpty( $wp_admin_bar->get_node( 'resume-customize-snapshot' ) ); + $changesets_node = $wp_admin_bar->get_node( 'customize-changesets' ); + $this->assertNotEmpty( $changesets_node ); + $this->assertEquals( 'customize', $changesets_node->parent ); $this->go_to( home_url( '?' . $this->front_param . '=' . self::UUID ) ); remove_all_actions( 'admin_bar_menu' );