balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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 }