settings = $settings; return $this; } public function amazing_linker_set_sections( array $sections ) { $this->sections = $sections; return $this; } public function amazing_linker_set_fields( array $fields ) { $this->fields = $fields; return $this; } public function amazing_linker_register_custom_fields() { // register setting foreach ( $this->settings as $setting ) { register_setting( $setting["option_group"], $setting["option_name"], ( isset( $setting["callback"] ) ? $setting["callback"] : '' ) ); } // add settings section foreach ( $this->sections as $section ) { add_settings_section( $section["id"], $section["title"], ( isset( $section["callback"] ) ? $section["callback"] : '' ), $section["page"] ); } // add settings field foreach ( $this->fields as $field ) { add_settings_field( $field["id"], $field["title"], ( isset( $field["callback"] ) ? $field["callback"] : '' ), $field["page"], $field["section"], ( isset( $field["args"] ) ? $field["args"] : '' ) ); } } } }