Mühelos zur Optionen-Seite dank Jeremy Hixon!

Kennst du schon die vielfältigen Code-Generatoren von Estreme Ventures für WordPress? Die sind schon ziemlich beeindruckend! Aber als ich nach einer einfachen Optionen-Seite gesucht habe, bin ich auf den Option Page Generator von Jeremy Hixon gestossen. Und was mir dabei am Besten gefällt: er ist super simpel – ohne überflüssigen Schnickschnack. Mit diesem coolen Generator erstellst du deinen Code im Handumdrehen und sparst dir die Zeit, um Code zu kopieren und anzupassen. Einfach magisch!

Neue Homepage erstellen lassen | Webdesign | Schwyz | Zug | Luzern | Altdorf | ulrich.digital

Die Form ausfüllen und eine Klasse mit allen nötigen Methoden wird generiert:

<?php 
class ShopWeiterleitung {
  private $shop_weiterleitung__options;

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

  public function shop_weiterleitung__add_plugin_page() {
    add_menu_page(
    'Shop Weiterleitung ', // page_title
    'Shop Weiterleitung ', // menu_title
    'manage_options', // capability
    'shop-weiterleitung', // menu_slug
    array( $this, 'shop_weiterleitung__create_admin_page' ), // function
      'dashicons-admin-generic', // icon_url
      80 // position
    );
  }

  public function shop_weiterleitung__create_admin_page() {
    $this->shop_weiterleitung__options = get_option( 'shop_weiterleitung__option_name'  ); ?>

    <div class="wrap">
      <h2>Shop Weiterleitung </h2>
      <p>Hier kann die Weiterleitung des Shops ein- und ausgeschaltet werden.</p>
      <?php settings_errors(); ?>
      <form method="post" action="options.php">
        <?php
        settings_fields( 'shop_weiterleitung__option_group' );
        do_settings_sections( 'shop-weiterleitung-admin' );
        submit_button();
        ?>
      </form>
    </div>
    <?php 
  }

  public function shop_weiterleitung__page_init() {
    register_setting(
      'shop_weiterleitung__option_group', // option_group
      'shop_weiterleitung__option_name', // option_name
      array( $this, 'shop_weiterleitung__sanitize' ) // sanitize_callback
    );

    add_settings_section(
      'shop_weiterleitung__setting_section', // id
      'Settings', // title
      array( $this, 'shop_weiterleitung__section_info' ), // callback
      'shop-weiterleitung-admin' // page
    );

    add_settings_field(
      'shop_weiterleitung_wp_redirect_0', // id
      'Shop Weiterleitung (wp_redirect)', // title
      array( $this, 'shop_weiterleitung_wp_redirect_0_callback' ), // callback
        'shop-weiterleitung-admin', // page
        'shop_weiterleitung__setting_section' // section
    );
  }

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

    return $sanitary_values;
  }

  public function shop_weiterleitung__section_info() {	
  }

  public function shop_weiterleitung_wp_redirect_0_callback() { ?> 
    <fieldset>
      <?php $checked = ( isset( $this->shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0'] ) && $this->shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0'] === 'shop-anzeigen' ) ? 'checked' : '' ; ?>
    <label for="shop_weiterleitung_wp_redirect_0-0">
      <input type="radio" name="shop_weiterleitung__option_name[shop_weiterleitung_wp_redirect_0]" id="shop_weiterleitung_wp_redirect_0-0" value="shop-anzeigen" <?php echo $checked; ?>>  Shop anzeigen
    </label><br>
    <?php $checked = ( isset( $this->shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0'] ) && $this->shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0'] === 'shop-verstecken' ) ? 'checked' : '' ; ?>
    <label for="shop_weiterleitung_wp_redirect_0-1"><input type="radio" name="shop_weiterleitung__option_name[shop_weiterleitung_wp_redirect_0]" id="shop_weiterleitung_wp_redirect_0-1" value="shop-verstecken" <?php echo $checked; ?>>  Shop verstecken</label></fieldset> <?php
  }

if ( is_admin() )
	$shop_weiterleitung_ = new ShopWeiterleitung();

/* 
 * Retrieve this value with:
 * $shop_weiterleitung__options = get_option( 'shop_weiterleitung__option_name' ); // Array of All Options
 * $shop_weiterleitung_wp_redirect_0 = $shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0']; // Shop Weiterleitung (wp_redirect)
 */
?>

Was im Backend dann so aussieht:

Neue Homepage | Webdesign | Schwyz | Zug | Luzern | Altdorf | ulrich.digital

Am Ende des generierten Codes werden sogar die Variablen, zur weiteren Verwendung ausgegeben. Z.B. wie in diesem Bespiel $shop_weiterleitung_wp_redirect_0 für ein Weiterleiten der Shop- auf die Startseite:

function wpc_shop_url_redirect() {

  if ( is_shop() ) {
    $shop_weiterleitung__options = get_option( 'shop_weiterleitung__option_name' ); 
    if ( $shop_weiterleitung__options ) {
      $shop_weiterleitung_wp_redirect_0 =     $shop_weiterleitung__options['shop_weiterleitung_wp_redirect_0'];
      if ( $shop_weiterleitung_wp_redirect_0 == "shop-verstecken" ) {
        wp_redirect( home_url() );
        exit();
      } // endif
    } // endif
  } // endif

}
add_action( 'template_redirect', 'wpc_shop_url_redirect' );
1 Star2 Stars3 Stars4 Stars5 Stars (5)

Wenn du denkst, dass dieser Beitrag ein Meisterwerk der Webentwicklung ist, dann hinterlasse uns einen Kommentar. Wenn nicht, kannst du trotzdem kommentieren - wir akzeptieren auch konstruktive Kritik!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert