A plugin that changes the CSS based on option

Question

I’ve been trying to make a plugin (I’m new to PHP) to change the colors of my child theme CSS based on a option in the option page of my plugin, after searching and testing/trying to make it work for hours I’m afraid I have no idea how to continue.

Here’s is my entire PHP file.

<?php
/**
 * Plugin Name: Seizoens kleuren
 * Plugin URI: https://www.burobrein.nl
 * Description: Een plugin om de kleuren te veranderen van de site.
 * Version: 1.0
 * Author: BuroBrein
 * Author URI: https://www.burobrein.nl
 */

class SeizoensKleuren {
    private $seizoens_kleuren_options;

    public function __construct() {
        add_action( 'admin_menu', array( $this, 'seizoens_kleuren_add_plugin_page' ) );
        add_action( 'admin_init', array( $this, 'seizoens_kleuren_page_init' ) );
    }

    public function seizoens_kleuren_add_plugin_page() {
        add_menu_page(
            'Seizoens kleuren', // page_title
            'Seizoens kleuren', // menu_title
            'manage_options', // capability
            'seizoens-kleuren', // menu_slug
            array( $this, 'seizoens_kleuren_create_admin_page' ), // function
            'dashicons-admin-appearance', // icon_url
            81 // position
        );
    }

    public function seizoens_kleuren_create_admin_page() {
        $this->seizoens_kleuren_options = get_option( 'seizoens_kleuren_option_name' ); ?>

        <div class="wrap">
            <h2>Seizoens kleuren</h2>
            <p>Verander hier de kleuren van de site n.a.v. het seizoen!</p>
            <?php settings_errors(); ?>

            <form method="post" action="options.php">
                <?php
                    settings_fields( 'seizoens_kleuren_option_group' );
                    do_settings_sections( 'seizoens-kleuren-admin' );
                    submit_button();
                ?>
            </form>
        </div>
    <?php }

    public function seizoens_kleuren_page_init() {
        register_setting(
            'seizoens_kleuren_option_group', // option_group
            'seizoens_kleuren_option_name', // option_name
            array( $this, 'seizoens_kleuren_sanitize' ) // sanitize_callback
        );

        add_settings_section(
            'seizoens_kleuren_setting_section', // id
            'Settings', // title
            array( $this, 'seizoens_kleuren_section_info' ), // callback
            'seizoens-kleuren-admin' // page
        );

        add_settings_field(
            'seizoen_0', // id
            'Seizoen:', // title
            array( $this, 'seizoen_0_callback' ), // callback
            'seizoens-kleuren-admin', // page
            'seizoens_kleuren_setting_section' // section
        );
    }

    public function seizoens_kleuren_sanitize($input) {
        $sanitary_values = array();
        if ( isset( $input['seizoen_0'] ) ) {
            $sanitary_values['seizoen_0'] = $input['seizoen_0'];
        }

        return $sanitary_values;
    }

    public function seizoens_kleuren_section_info() {
        
    }

    public function seizoen_0_callback() {
        ?> <select name="seizoens_kleuren_option_name[seizoen_0]" id="seizoen_0">
            <?php $selected = (isset( $this->seizoens_kleuren_options['seizoen_0'] ) && $this->seizoens_kleuren_options['seizoen_0'] === 'lente') ? 'selected' : '' ; ?>
            <option value="lente" <?php echo $selected; ?>>Lente</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options['seizoen_0'] ) && $this->seizoens_kleuren_options['seizoen_0'] === 'zomer') ? 'selected' : '' ; ?>
            <option value="zomer" <?php echo $selected; ?>>Zomer</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options['seizoen_0'] ) && $this->seizoens_kleuren_options['seizoen_0'] === 'herfst') ? 'selected' : '' ; ?>
            <option value="herfst" <?php echo $selected; ?>>Herfst</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options['seizoen_0'] ) && $this->seizoens_kleuren_options['seizoen_0'] === 'winter') ? 'selected' : '' ; ?>
            <option value="winter" <?php echo $selected; ?>>Winter</option>
        </select> <?php
    }

}
if ( is_admin() )
    $seizoens_kleuren = new SeizoensKleuren();

/* 
 * Retrieve this value with:
 * $seizoens_kleuren_options = get_option( 'seizoens_kleuren_option_name' ); // Array of All Options
 * $seizoen_0 = $seizoens_kleuren_options['seizoen_0']; // Seizoen:
 */



function seizoenplugin_enqueue_styles() 
{
   switch($_POST['seizoens_kleuren_options['seizoen_0']']){
case 'zomer':
    // insert css/zomer.css
break;
case 'herfst':
    // insert css/herfst.css
break;
case 'winter':
    // insert css/winter.css
break;
case 'lente':
    // insert css/lente.css
break;
default:
}
}

add_action('wp_enqueue_style', 'seizoenplugin_enqueue_styles' );

  
  ?>

0
mennobrein 4 months 0 Answers 16 views 0

Leave an answer