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!

Website für Kultur und Wirtschaft | 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 Webseite erstellen lassen | 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)

Wir wollen dich nicht dazu drängen, einen Kommentar zu hinterlassen. Aber wenn du es tust, werden wir dir dafür eine virtuelle Umarmung geben!

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