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!
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:
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' );