92 lines
2.0 KiB
PHP
92 lines
2.0 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* Redux Network Class
|
||
|
|
*
|
||
|
|
* @class Redux_Network
|
||
|
|
* @version 4.0.0
|
||
|
|
* @package Redux Framework/Classes
|
||
|
|
*/
|
||
|
|
|
||
|
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
|
||
|
|
if ( ! class_exists( 'Redux_Network', false ) ) {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Class Redux_Network
|
||
|
|
*/
|
||
|
|
class Redux_Network extends Redux_Class {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Redux_Network constructor.
|
||
|
|
*
|
||
|
|
* @param object $redux ReduxFramework pointer.
|
||
|
|
*/
|
||
|
|
public function __construct( $redux ) {
|
||
|
|
parent::__construct( $redux );
|
||
|
|
|
||
|
|
if ( 'network' === $redux->args['database'] && $redux->args['network_admin'] ) {
|
||
|
|
add_action(
|
||
|
|
'network_admin_edit_redux_' . $redux->args['opt_name'],
|
||
|
|
array(
|
||
|
|
$this,
|
||
|
|
'save_network_page',
|
||
|
|
),
|
||
|
|
10,
|
||
|
|
0
|
||
|
|
);
|
||
|
|
|
||
|
|
// phpcs:ignore Generic.Strings.UnnecessaryStringConcat
|
||
|
|
add_action( 'admin' . '_bar' . '_menu', array( $this, 'network_admin_bar' ), 999 );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Add node to network admin bar.
|
||
|
|
*
|
||
|
|
* @param object $wp_admin_bar Admin bar.
|
||
|
|
*/
|
||
|
|
public function network_admin_bar( $wp_admin_bar ) {
|
||
|
|
$core = $this->core();
|
||
|
|
|
||
|
|
$args = array(
|
||
|
|
'id' => $core->args['opt_name'] . '_network_admin',
|
||
|
|
'title' => $core->args['menu_title'],
|
||
|
|
'parent' => 'network-admin',
|
||
|
|
'href' => network_admin_url( 'settings.php' ) . '?page=' . $core->args['page_slug'],
|
||
|
|
'meta' => array( 'class' => 'redux-network-admin' ),
|
||
|
|
);
|
||
|
|
|
||
|
|
$wp_admin_bar->add_node( $args );
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Saves network options.
|
||
|
|
*/
|
||
|
|
public function save_network_page() {
|
||
|
|
$core = $this->core();
|
||
|
|
|
||
|
|
if ( isset( $_POST[ $core->args['opt_name'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
|
||
|
|
$opt_name = sanitize_text_field( wp_unslash( $_POST[ $core->args['opt_name'] ] ) ); // phpcs:ignore WordPress.Security.NonceVerification
|
||
|
|
}
|
||
|
|
|
||
|
|
$data = $core->options_class->validate_options( $opt_name );
|
||
|
|
|
||
|
|
if ( ! empty( $data ) ) {
|
||
|
|
$core->options_class->set( $data );
|
||
|
|
}
|
||
|
|
|
||
|
|
wp_safe_redirect(
|
||
|
|
add_query_arg(
|
||
|
|
array(
|
||
|
|
'page' => $core->args['page_slug'],
|
||
|
|
'updated' => 'true',
|
||
|
|
),
|
||
|
|
network_admin_url( 'settings.php' )
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
exit();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|