<?php

defined('ABSPATH') || exit;

add_action('admin_init', function () {
    global $hefo_options;

    if (isset($hefo_options['page_add_tags'])) {
        register_taxonomy_for_object_type('post_tag', 'page');
    }

    if (isset($hefo_options['page_add_categories'])) {
        register_taxonomy_for_object_type('category', 'page');
    }
});



add_action('admin_menu', function() {
    add_options_page('Head and Footer', 'Head and Footer', 'manage_options', 'header-footer/admin/options.php');
});


if (isset($_GET['page']) && strpos($_GET['page'], 'header-footer/') === 0) {
    header('X-XSS-Protection: 0');
    add_action('admin_enqueue_scripts', function () {
        wp_enqueue_script('jquery-ui-tabs');
        wp_enqueue_style('hefo', plugins_url('header-footer') . '/admin/admin.css', [], time());
        wp_enqueue_style('hefo-jquery-ui', plugins_url('header-footer') . '/vendor/jquery-ui/jquery-ui.min.css', [], time());
        wp_enqueue_code_editor(['type' => 'php']);
        wp_enqueue_script('jquery-ui-tabs');
    });
}

add_action('add_meta_boxes', function () {
    add_meta_box('hefo', __('Head and Footer', 'header-footer'), 'hefo_meta_boxes_callback', ['post', 'page']);
});

add_action('save_post', 'hefo_save_post');


function hefo_meta_boxes_callback($post) {

    // Use nonce for verification
    wp_nonce_field(plugin_basename(__FILE__), 'hefo');

    // The actual fields for data entry
    // Use get_post_meta to retrieve an existing value from the database and use the value for the form
    $before = get_post_meta($post->ID, 'hefo_before', true);
    $after = get_post_meta($post->ID, 'hefo_after', true);
    echo '<label>';
    echo '<input type="checkbox" id="hefo_before" name="hefo_before" ' . (empty($before) ? "" : "checked") . '> ';
    esc_html_e("Disable top injection", 'header-footer');
    echo '</label> ';
    echo '<br>';
    echo '<label>';
    echo '<input type="checkbox" id="hefo_after" name="hefo_after]" ' . (empty($after) ? "" : "checked") . '> ';
    esc_html_e("Disable bottom injection", 'header-footer');
    echo '</label> ';
}


function hefo_save_post($post_id) {

    if (!isset($_POST['hefo'])) return;
    
    // First we need to check if the current user is authorised to do this action.
    if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) {
        if (!current_user_can('edit_page', $post_id))
            return;
    } else {
        if (!current_user_can('edit_post', $post_id))
            return;
    }

    // Secondly we need to check if the user intended to change this value.
    if (!wp_verify_nonce($_POST['hefo'], plugin_basename(__FILE__)))
        return;

    update_post_meta($post_id, 'hefo_before', isset($_REQUEST['hefo_before']) ? 1 : 0);
    update_post_meta($post_id, 'hefo_after', isset($_REQUEST['hefo_after']) ? 1 : 0);
}