<?php
/**
 * Genesis Framework.
 *
 * WARNING: This file is part of the core Genesis Framework. DO NOT edit this file under any circumstances.
 * Please do all modifications in the form of a child theme.
 *
 * @package Genesis\WidgetAreas
 * @author  StudioPress
 * @license GPL-2.0-or-later
 * @link    https://my.studiopress.com/themes/genesis/
 */

add_action( 'admin_bar_menu', 'genesis_cpt_archive_settings_link', 999 );
/**
 * Adds a toolbar link to edit the custom post archive settings
 *
 * @since 2.3.0
 *
 * @global WP_Admin_Bar $wp_admin_bar
 *
 * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance.
 * @return WP_Admin_Bar Return `$wp_admin_bar` early if in admin, not a CPT archive, not a valid post type,
 *                      or a post type that does not have support for `genesis-cpt-archive-settings`.
 */
function genesis_cpt_archive_settings_link( $wp_admin_bar ) {

	// Bail if in admin, not a CPT archive, or post_type doesn't have support for genesis-cpt-archive-settings.
	if ( is_admin() || ! is_post_type_archive() || ! genesis_has_post_type_archive_support() ) {
		return $wp_admin_bar;
	}
	// Get the post type we're viewing.
	$post_type = get_post_type();
	// Bail if we didn't get a valid post type.
	if ( ! $post_type || ! current_user_can( apply_filters( 'genesis_cpt_archive_settings_capability_' . $post_type, 'manage_options' ) ) ) {
		return $wp_admin_bar;
	}
	// Add our toolbar link.
	$args = [
		'id'    => 'cpt-archive-settings',
		'title' => __( 'Edit Archive Settings', 'genesis' ),
		'href'  => admin_url( "edit.php?post_type={$post_type}&page=genesis-cpt-archive-{$post_type}" ),
		'meta'  => [
			'class' => '',
		],
	];
	$wp_admin_bar->add_node( $args );

	return $wp_admin_bar;
}

add_action( 'wp_head', 'genesis_cpt_archive_settings_toolbar_styles' );
/**
 * Adds the pencil icon to the CPT archive settings menu link.
 *
 * Add custom CSS to `<head>`.
 *
 * @since 2.3.0
 */
function genesis_cpt_archive_settings_toolbar_styles() {
	// Bail if in admin, user is not logged in, admin bar is not showing, not a post type archive page,
	// or post type does not support genesis-cpt-archive-settings.
	if ( is_admin() || ! is_user_logged_in() || ! is_admin_bar_showing() || ! is_post_type_archive() || ! genesis_has_post_type_archive_support() ) {
		return;
	}
	echo '<style type="text/css">
	    #wpadminbar #wp-admin-bar-cpt-archive-settings > .ab-item:before {
		    content: "\f464";
		    top: 2px;
	    }
    </style>';
}
