add_action( 'init', [ $this, 'rename_post_to_announcements' ], 20 ); $this->add_action( 'admin_menu', [ $this, 'rename_post_to_announcements_menu' ], 20 ); $this->add_action( 'save_post', [ $this, 'can_save_announcement' ], 5, 3 ); } public function rename_post_to_announcements() { global $_romhackplaza; if( !$_romhackplaza->user_roles->current_is( Roles::Administrator ) ) return; // Don't change if the user is not an admin. global $wp_post_types; $labels = &$wp_post_types['post']->labels; $labels->name = __( 'Announcements', 'romhackplaza' ); $labels->singular_name = __( 'Announcement', 'romhackplaza' ); $labels->add_new = __( 'Add Announce', 'romhackplaza' ); $labels->add_new_item = __( 'Add Announce', 'romhackplaza' ); $labels->edit_item = __( 'Edit Annonce', 'romhackplaza' ); $labels->new_item = __( 'Announce', 'romhackplaza' ); $labels->view_item = __( 'View Announce', 'romhackplaza' ); $labels->search_items = __( 'Search Announcements', 'romhackplaza' ); $labels->not_found = __( 'No Announce found', 'romhackplaza' ); $labels->not_found_in_trash = __( 'No Announce found in Trash', 'romhackplaza' ); } public function rename_post_to_announcements_menu() { global $_romhackplaza; if( !$_romhackplaza->user_roles->current_is( Roles::Administrator ) ) return; // Don't change if the user is not an admin. global $menu; global $submenu; $menu[5][0] = __( 'Announcements', 'romhackplaza' ); $menu[5][6] = 'dashicons-megaphone'; $submenu['edit.php'][5][0] = __( 'Announcements', 'romhackplaza' ); $submenu['edit.php'][10][0] = __( 'Add Announce', 'romhackplaza' ); echo ''; } /** * Can be moved in SavePost Extender ??? * Only admin can send announcement. * @return void */ public function can_save_announcement( $post_id, $post, $update ) { global $_romhackplaza; // Get post type after to avoid conflict or pre-save. if( get_post_type( $post_id ) === 'post' && !$_romhackplaza->user_roles->current_is( Roles::Administrator ) ){ wp_die( __( "You don't have the permission to post announcements.", 'romhackplaza' ), __( 'Permission error', 'romhackplaza'), [ 'response' => 403 ] ); } } }