# ever-compare/1.0.2/includes/classes/Admin/Admin_Fields.php

Ever Compare – Products Compare Plugin for WooCommerce, version 1.0.2. 206 lines.

- Page: https://pluginprobe.com/plugins/ever-compare/1.0.2/code/includes/classes/Admin/Admin_Fields.php
- Raw: https://pluginprobe.com/plugins/ever-compare/1.0.2/raw/includes/classes/Admin/Admin_Fields.php
- Modified: 2021-05-02T09:10:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ever-compare/1.0.2/code/includes/classes/Admin/Admin_Fields.php#L10-L20`.

```php
<?php
namespace EverCompare\Admin;
/**
 * Admin Page Fields handlers class
 */
class Admin_Fields {

    private $settings_api;

    /**
     * [$_instance]
     * @var null
     */
    private static $_instance = null;

    /**
     * [instance] Initializes a singleton instance
     * @return [Admin]
     */
    public static function instance() {
        if ( is_null( self::$_instance ) ) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    function __construct() {
        $this->settings_api = new Settings_APi();
        add_action( 'admin_init', [ $this, 'admin_init' ] );
    }

    public function admin_init() {

        //set the settings
        $this->settings_api->set_sections( $this->get_settings_sections() );
        $this->settings_api->set_fields( $this->fields_settings() );

        //initialize settings
        $this->settings_api->admin_init();
    }

    // Options page Section register
    public function get_settings_sections() {
        $sections = array(

            array(
                'id'    => 'ever_compare_settings_tabs',
                'title' => esc_html__( 'Button Settings', 'ever-compare' )
            ),
            
            array(
                'id'    => 'ever_compare_table_settings_tabs',
                'title' => esc_html__( 'Table Settings', 'ever-compare' )
            ),

        );
        return $sections;
    }

    // Options page field register
    protected function fields_settings() {

        $settings_fields = array(

            'ever_compare_settings_tabs' => array(

                array(
                    'name'  => 'btn_show_shoppage',
                    'label'  => __( 'Show compare button in product list', 'ever-compare' ),
                    'type'  => 'checkbox',
                    'default' => 'on',
                ),

                array(
                    'name'  => 'btn_show_productpage',
                    'label'  => __( 'Show compare button on single product page', 'ever-compare' ),
                    'type'  => 'checkbox',
                    'default' => 'on',
                ),

                array(
                    'name'  => 'open_popup',
                    'label'  => __( 'Open popup', 'ever-compare' ),
                    'type'  => 'checkbox',
                    'default' => 'on',
                ),

                array(
                    'name'        => 'button_text',
                    'label'       => __( 'Button', 'ever-compare' ),
                    'desc'        => __( 'Enter your compare button text.', 'ever-compare' ),
                    'type'        => 'text',
                    'default'     => __( 'Compare', 'ever-compare' ),
                    'placeholder' => __( 'Compare', 'ever-compare' ),
                ),

                array(
                    'name'        => 'added_button_text',
                    'label'       => __( 'Added Button Text', 'ever-compare' ),
                    'desc'        => __( 'Enter your compare added button text.', 'ever-compare' ),
                    'type'        => 'text',
                    'default'     => __( 'Added', 'ever-compare' ),
                    'placeholder' => __( 'Added', 'ever-compare' ),
                ),

            ),

            'ever_compare_table_settings_tabs' => array(

                array(
                    'name'    => 'compare_page',
                    'label'   => __( 'Compare page', 'ever-compare' ),
                    'desc' => wp_kses_post('Select a compare page for compare table. It should contain the shortcode <code>[evercompare_table]</code>'),
                    'type'    => 'select',
                    'default' => '0',
                    'options' => ever_compare_get_post_list()
                ),

                array(
                    'name' => 'show_fields',
                    'label' => __('Show fields in table', 'ever-compare'),
                    'desc' => __('Choose which fields should be presented on the product compare page with table.', 'ever-compare'),
                    'type' => 'multicheckshort',
                    'options' => ever_compare_get_available_attributes(),
                    'default' => [
                        'title'         => esc_html__( 'title', 'ever-compare' ),
                        'ratting'       => esc_html__( 'ratting', 'ever-compare' ),
                        'price'         => esc_html__( 'price', 'ever-compare' ),
                        'add_to_cart'   => esc_html__( 'add_to_cart', 'ever-compare' ),
                        'description'   => esc_html__( 'description', 'ever-compare' ),
                        'availability'  => esc_html__( 'availability', 'ever-compare' ),
                        'sku'           => esc_html__( 'sku', 'ever-compare' ),
                        'weight'        => esc_html__( 'weight', 'ever-compare' ),
                        'dimensions'    => esc_html__( 'dimensions', 'ever-compare' ),
                    ],
                ),

                array(
                    'name'    => 'table_heading',
                    'label'   => __( 'Fields heading text', 'ever-compare' ),
                    'desc'    => __( 'You can change heading text from here.', 'ever-compare' ),
                    'type'    => 'multitext',
                    'options' => ever_compare_table_heading()
                ),

                array(
                    'name' => 'empty_table_text',
                    'label' => __('Empty compare page text', 'ever-compare'),
                    'desc' => __('Text will be displayed if user don\'t add any products to compare', 'ever-compare'),
                    'type' => 'textarea'
                ),

                array(
                    'name'        => 'shop_button_text',
                    'label'       => __( 'Return to shop button text', 'ever-compare' ),
                    'desc'        => __( 'Enter your return to shop button text.', 'ever-compare' ),
                    'type'        => 'text',
                    'default'     => __( 'Return to shop', 'ever-compare' ),
                    'placeholder' => __( 'Return to shop', 'ever-compare' ),
                ),

                array(
                    'name'        => 'image_size',
                    'label'       => __( 'Image size', 'ever-compare' ),
                    'desc'        => __( 'Enter your required image size.', 'ever-compare' ),
                    'type'        => 'multitext',
                    'options'     =>[
                        'width' => esc_html__( 'Width', 'ever-compare' ),
                        'height' => esc_html__( 'Height', 'ever-compare' ),
                    ]
                ),

                array(
                    'name'  => 'hard_crop',
                    'label'  => __( 'Image Hard Crop', 'ever-compare' ),
                    'type'  => 'checkbox',
                    'default' => 'on',
                ),

            ),

        );
        
        return $settings_fields;
    }

    public function plugin_page() {
        echo '<div class="wrap">';
            echo '<h2>'.esc_html__( 'Compare Settings','ever-compare' ).'</h2>';
            $this->save_message();
            $this->settings_api->show_navigation();
            $this->settings_api->show_forms();
        echo '</div>';
    }

    public function save_message() {
        if( isset( $_GET['settings-updated'] ) ) { 
            ?>
                <div class="updated notice is-dismissible"> 
                    <p><strong><?php esc_html_e('Successfully Settings Saved.', 'ever-compare') ?></strong></p>
                </div>
            <?php
        }
    }

}
```
