Skip to content

Instantly share code, notes, and snippets.

Revisions

  1. @BFTrick BFTrick revised this gist Jul 12, 2014. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions woocommerce-settings-tab-demo.php
    Original file line number Diff line number Diff line change
    @@ -42,9 +42,7 @@ public static function init() {
    * @return array $settings_tabs Array of WooCommerce setting tabs & their labels, including the Subscription tab.
    */
    public static function add_settings_tab( $settings_tabs ) {

    $settings_tabs['settings_tab_demo'] = __( 'Settings Demo Tab', 'woocommerce-settings-tab-demo' );

    return $settings_tabs;
    }

  2. @BFTrick BFTrick revised this gist Jul 12, 2014. 1 changed file with 13 additions and 17 deletions.
    30 changes: 13 additions & 17 deletions woocommerce-settings-tab-demo.php
    Original file line number Diff line number Diff line change
    @@ -29,13 +29,23 @@ class WC_Settings_Tab_Demo {
    *
    */
    public static function init() {

    add_filter( 'woocommerce_settings_tabs_array', __CLASS__ . '::add_settings_tab', 50 );

    add_action( 'woocommerce_settings_tabs_settings_tab_demo', __CLASS__ . '::settings_tab' );

    add_action( 'woocommerce_update_options_settings_tab_demo', __CLASS__ . '::update_settings' );
    }


    /**
    * Add a new settings tab to the WooCommerce settings tabs array.
    *
    * @param array $settings_tabs Array of WooCommerce setting tabs & their labels, excluding the Subscription tab.
    * @return array $settings_tabs Array of WooCommerce setting tabs & their labels, including the Subscription tab.
    */
    public static function add_settings_tab( $settings_tabs ) {

    $settings_tabs['settings_tab_demo'] = __( 'Settings Demo Tab', 'woocommerce-settings-tab-demo' );

    return $settings_tabs;
    }


    @@ -61,20 +71,6 @@ public static function update_settings() {
    }


    /**
    * Add a new settings tab to the WooCommerce settings tabs array.
    *
    * @param array $settings_tabs Array of WooCommerce setting tabs & their labels, excluding the Subscription tab.
    * @return array $settings_tabs Array of WooCommerce setting tabs & their labels, including the Subscription tab.
    */
    public static function add_settings_tab( $settings_tabs ) {

    $settings_tabs['settings_tab_demo'] = __( 'Settings Demo Tab', 'woocommerce-settings-tab-demo' );

    return $settings_tabs;
    }


    /**
    * Get all the settings for this plugin for @see woocommerce_admin_fields() function.
    *
  3. @BFTrick BFTrick revised this gist Jul 11, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion woocommerce-settings-tab-demo.php
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    <?php
    /**
    * Plugin Name: WooCommerce Settings Tab Demo
    * Plugin URI: https://gist.github.com/BFTrick/__________
    * Plugin URI: https://gist.github.com/BFTrick/b5e3afa6f4f83ba2e54a
    * Description: A plugin demonstrating how to add a WooCommerce settings tab.
    * Author: Patrick Rauland
    * Author URI: http://speakinginbytes.com/
  4. @BFTrick BFTrick created this gist Jul 11, 2014.
    115 changes: 115 additions & 0 deletions woocommerce-settings-tab-demo.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,115 @@
    <?php
    /**
    * Plugin Name: WooCommerce Settings Tab Demo
    * Plugin URI: https://gist.github.com/BFTrick/__________
    * Description: A plugin demonstrating how to add a WooCommerce settings tab.
    * Author: Patrick Rauland
    * Author URI: http://speakinginbytes.com/
    * Version: 1.0
    *
    * This program is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program. If not, see <http://www.gnu.org/licenses/>.
    *
    */

    class WC_Settings_Tab_Demo {

    /**
    * Bootstraps the class and hooks required actions & filters.
    *
    */
    public static function init() {

    add_filter( 'woocommerce_settings_tabs_array', __CLASS__ . '::add_settings_tab', 50 );

    add_action( 'woocommerce_settings_tabs_settings_tab_demo', __CLASS__ . '::settings_tab' );

    add_action( 'woocommerce_update_options_settings_tab_demo', __CLASS__ . '::update_settings' );

    }


    /**
    * Uses the WooCommerce admin fields API to output settings via the @see woocommerce_admin_fields() function.
    *
    * @uses woocommerce_admin_fields()
    * @uses self::get_settings()
    */
    public static function settings_tab() {
    woocommerce_admin_fields( self::get_settings() );
    }


    /**
    * Uses the WooCommerce options API to save settings via the @see woocommerce_update_options() function.
    *
    * @uses woocommerce_update_options()
    * @uses self::get_settings()
    */
    public static function update_settings() {
    woocommerce_update_options( self::get_settings() );
    }


    /**
    * Add a new settings tab to the WooCommerce settings tabs array.
    *
    * @param array $settings_tabs Array of WooCommerce setting tabs & their labels, excluding the Subscription tab.
    * @return array $settings_tabs Array of WooCommerce setting tabs & their labels, including the Subscription tab.
    */
    public static function add_settings_tab( $settings_tabs ) {

    $settings_tabs['settings_tab_demo'] = __( 'Settings Demo Tab', 'woocommerce-settings-tab-demo' );

    return $settings_tabs;
    }


    /**
    * Get all the settings for this plugin for @see woocommerce_admin_fields() function.
    *
    * @return array Array of settings for @see woocommerce_admin_fields() function.
    */
    public static function get_settings() {

    $settings = array(
    'section_title' => array(
    'name' => __( 'Section Title', 'woocommerce-settings-tab-demo' ),
    'type' => 'title',
    'desc' => '',
    'id' => 'wc_settings_tab_demo_section_title'
    ),
    'title' => array(
    'name' => __( 'Title', 'woocommerce-settings-tab-demo' ),
    'type' => 'text',
    'desc' => __( 'This is some helper text', 'woocommerce-settings-tab-demo' ),
    'id' => 'wc_settings_tab_demo_title'
    ),
    'description' => array(
    'name' => __( 'Description', 'woocommerce-settings-tab-demo' ),
    'type' => 'textarea',
    'desc' => __( 'This is a paragraph describing the setting. Lorem ipsum yadda yadda yadda. Lorem ipsum yadda yadda yadda. Lorem ipsum yadda yadda yadda. Lorem ipsum yadda yadda yadda.', 'woocommerce-settings-tab-demo' ),
    'id' => 'wc_settings_tab_demo_description'
    ),
    'section_end' => array(
    'type' => 'sectionend',
    'id' => 'wc_settings_tab_demo_section_end'
    )
    );

    return apply_filters( 'wc_settings_tab_demo_settings', $settings );
    }

    }

    WC_Settings_Tab_Demo::init();