Astra_Ext_White_Label_Markup::settings_save()

Save Settings


Description


Source

File: classes/class-astra-ext-white-label-markup.php

		public function settings_save() {

			if ( isset( $_POST['ast-white-label-nonce'] ) && wp_verify_nonce( $_POST['ast-white-label-nonce'], 'white-label' ) ) {
				$url             = $_SERVER['HTTP_REFERER'];
				$stored_settings = self::get_white_labels();
				$input_settings  = array();
				$new_settings    = array();

				if ( isset( $_POST['ast_white_label'] ) ) {

					$input_settings = $_POST['ast_white_label'];

					// Loop through the input and sanitize each of the values.
					foreach ( $input_settings as $key => $val ) {

						if ( is_array( $val ) ) {
							foreach ( $val as $k => $v ) {
								$new_settings[ $key ][ $k ] = ( isset( $val[ $k ] ) ) ? sanitize_text_field( stripslashes( $v ) ) : '';
							}
						} else {
							$new_settings[ $key ] = ( isset( $input_settings[ $key ] ) ) ? sanitize_text_field( stripslashes( $val ) ) : '';
						}
					}
				}

				$new_settings = wp_parse_args( $new_settings, $stored_settings );

				if ( ! isset( $new_settings['astra-agency']['hide_branding'] ) ) {
					$new_settings['astra-agency']['hide_branding'] = false;
				} else {
					$url = str_replace( 'white-label', 'general', $url );
				}

				Astra_Admin_Helper::update_admin_settings_option( '_astra_ext_white_label', $new_settings, true );

				// Change the theme page slug only if the value if added by user.
				$theme_whitelabelled_name = self::get_whitelabel_string( 'astra', 'name', false );
				if ( false !== $theme_whitelabelled_name && ! empty( $theme_whitelabelled_name ) ) {
					$url = remove_query_arg( 'page', $url );
					$url = add_query_arg( 'page', $this->astra_whitelabelled_slug( $theme_whitelabelled_name ), $url );
				}

				$query = array(
					'message' => 'saved',
				);

				$redirect_to = add_query_arg( $query, $url );

				// Flush rewrite rules on publish action of custom layout.
				flush_rewrite_rules();

				wp_safe_redirect( $redirect_to );
				exit;
			}
		}

User Contributed Notes

You must log in before being able to contribute a note or feedback.