class-redux-network.php (2104B)
1 <?php 2 /** 3 * Redux Network Class 4 * 5 * @class Redux_Network 6 * @version 4.0.0 7 * @package Redux Framework/Classes 8 */ 9 10 defined( 'ABSPATH' ) || exit; 11 12 if ( ! class_exists( 'Redux_Network', false ) ) { 13 14 /** 15 * Class Redux_Network 16 */ 17 class Redux_Network extends Redux_Class { 18 19 /** 20 * Redux_Network constructor. 21 * 22 * @param object $parent ReduxFramework pointer. 23 */ 24 public function __construct( $parent ) { 25 parent::__construct( $parent ); 26 27 if ( 'network' === $parent->args['database'] && $parent->args['network_admin'] ) { 28 add_action( 29 'network_admin_edit_redux_' . $parent->args['opt_name'], 30 array( 31 $this, 32 'save_network_page', 33 ), 34 10, 35 0 36 ); 37 38 // phpcs:ignore Generic.Strings.UnnecessaryStringConcat 39 add_action( 'admin' . '_bar' . '_menu', array( $this, 'network_admin_bar' ), 999 ); 40 } 41 } 42 43 /** 44 * Add node to network admin bar. 45 * 46 * @param object $wp_admin_bar Admin bar. 47 */ 48 public function network_admin_bar( $wp_admin_bar ) { 49 $core = $this->core(); 50 51 $args = array( 52 'id' => $core->args['opt_name'] . '_network_admin', 53 'title' => $core->args['menu_title'], 54 'parent' => 'network-admin', 55 'href' => network_admin_url( 'settings.php' ) . '?page=' . $core->args['page_slug'], 56 'meta' => array( 'class' => 'redux-network-admin' ), 57 ); 58 59 $wp_admin_bar->add_node( $args ); 60 } 61 62 /** 63 * Saves network options. 64 */ 65 public function save_network_page() { 66 $core = $this->core(); 67 68 if ( isset( $_POST[ $core->args['opt_name'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification 69 $opt_name = sanitize_text_field( wp_unslash( $_POST[ $core->args['opt_name'] ] ) ); // phpcs:ignore WordPress.Security.NonceVerification 70 } 71 72 $data = $core->options_class->validate_options( $opt_name ); 73 74 if ( ! empty( $data ) ) { 75 $core->options_class->set( $data ); 76 } 77 78 wp_safe_redirect( 79 add_query_arg( 80 array( 81 'page' => $core->args['page_slug'], 82 'updated' => 'true', 83 ), 84 network_admin_url( 'settings.php' ) 85 ) 86 ); 87 88 exit(); 89 } 90 } 91 }