' . esc_html__('Settings', 'accomplice-query-loop-filters') . '', '' . esc_html__('Blocks', 'accomplice-query-loop-filters') . ''], $links); }); } function register_menu() { add_menu_page(__('Accomplice Filters', 'accomplice-query-loop-filters'), __('Accomplice Filters', 'accomplice-query-loop-filters'), 'manage_options', 'fqbpro-catalog', __NAMESPACE__ . '\\render_page', 'data:image/svg+xml;base64,' . base64_encode(file_get_contents(FQBPRO_PLUGIN_DIR . 'includes/admin/menu-icon.svg'))); } function save_tracking() { if (!current_user_can('manage_options')) wp_die(esc_html__('You cannot change these settings.', 'accomplice-query-loop-filters')); check_admin_referer('fqbp_free_tracking'); Service\update_tracking(isset($_POST['post_types']) ? array_map('sanitize_key', (array) wp_unslash($_POST['post_types'])) : []); wp_safe_redirect(admin_url('admin.php?page=fqbpro-catalog&updated=1')); exit; } function render_page() { if (!current_user_can('manage_options')) return; // This read-only tab selector does not change settings; saving has its own nonce. // phpcs:ignore WordPress.Security.NonceVerification.Recommended $instances = isset($_GET['tab']) && is_string($_GET['tab']) && sanitize_key(wp_unslash($_GET['tab'])) === 'instances'; echo '

' . esc_html__('Accomplice Query Loop Filters', 'accomplice-query-loop-filters') . '

'; if ($instances) { \Fqbpro\Plugin\Admin\Instances\render_page(); echo '
'; return; } \Fqbpro\Plugin\Admin\ExclusionsPanel\render(Service\get_catalog()); echo '

' . esc_html__('Post types available to filters', 'accomplice-query-loop-filters') . '

' . esc_html__('Choose the post types whose taxonomies can be used in your Filter Query blocks. All custom post types are available, including those registered as not public. Only published content is cataloged.', 'accomplice-query-loop-filters') . '

'; wp_nonce_field('fqbp_free_tracking'); foreach (Service\get_post_type_options() as $type) printf('

', esc_attr($type['slug']), checked($type['tracked'], true, false), esc_html($type['label']), esc_html($type['slug']), $type['public'] ? '' : esc_html__('Not public', 'accomplice-query-loop-filters')); submit_button(); echo '
'; }