0

I created a options plugin in my WP site, so I write this code into my file options.php :

class MySettingsPage
{
    /**
     * Holds the values to be used in the fields callbacks
     */
    private $options;

    /**
     * Start up
     */
    public function __construct()
    {
        add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
        add_action( 'admin_init', array( $this, 'page_init' ) );
    }

    /**
     * Add options page
     */
    public function add_plugin_page()
    {
        // This page will be under "Settings"
        add_options_page(
            'Settings Admin', 
            'Champs personnalisés', 
            'manage_options', 
            'my-setting-admin', 
            array( $this, 'create_admin_page' )
        );
    }

    /**
     * Options page callback
     */
    public function create_admin_page()
    {
        // Set class property
        $this->options = get_option( 'my_option_name' );
        ?>
        <div class="wrap">
            <h1>Champs personnalisés</h1>
            <form method="post" action="options.php">
            <?php
                // This prints out all hidden setting fields
                settings_fields( 'my_option_group' );
                do_settings_sections( 'my-setting-admin' );
                submit_button();
            ?>
            </form>
        </div>
        <?php
    }

    /**
     * Register and add settings
     */
    public function page_init()
    {        
        register_setting(
            'my_option_group', // Option group
            'my_option_name', // Option name
            array( $this, 'sanitize' ) // Sanitize
        );

        add_settings_section(
            'setting_section_id', // ID
            'Mes champs personnalisés', // Title
            array( $this, 'print_section_info' ), // Callback
            'my-setting-admin' // Page
        );  

        add_settings_field(
            'num_tel', // ID
            'Numéro de téléphone', // Title 
            array( $this, 'num_tel_callback' ), // Callback
            'my-setting-admin', // Page
            'setting_section_id' // Section           
        );     
    }


    /** 
     * Print the Section text
     */
    public function print_section_info()
    {
        print 'Renseignez les champs';
    }

    /** 
     * Get the settings option array and print one of its values
     */
    public function num_tel_callback()
    {
        printf(
            '<input type="text" id="num_tel" name="my_option_name[num_tel]" value="%s" />',
            isset( $this->options['num_tel'] ) ? esc_attr( $this->options['num_tel']) : ''
        );
    }

}


    $my_settings_page = new MySettingsPage();

What I want is to retrieve data that I set into this field to my template file.

Thanks for your help !

2 Answers 2

1

You just need call get_option function with ID of setting field.

For example:

echo get_option('num_tel');
Sign up to request clarification or add additional context in comments.

Comments

1

I just find the solution :

$options = get_option('my_option_name');
echo $options['num_tel']

1 Comment

Oh, yes. To get all settings group as an array.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.