on success, or error object on failure. */ public function update_item( $request ) { $options = $this->get_registered_options(); $params = $request->get_params(); foreach ( $options as $name => $args ) { if ( ! array_key_exists( $name, $params ) ) { continue; } /** * Filters whether to preempt a setting value update via the REST API. * * Allows hijacking the setting update logic and overriding the built-in behavior by * returning true. * * @since 4.7.0 * * @param bool $result Whether to override the default behavior for updating the * value of a setting. * @param string $name Setting name (as shown in REST API responses). * @param mixed $value Updated setting value. * @param array $args Arguments passed to register_setting() for this setting. */ $updated = apply_filters( 'rest_pre_update_setting', false, $name, $request[ $name ], $args ); if ( $updated ) { continue; } /* * A null value for an option would have the same effect as * deleting the option from the database, and relying on the * default value. */ if ( is_null( $request[ $name ] ) ) { /* * A null value is returned in the response for any option * that has a non-scalar value. * * To protect clients from accidentally including the null * values from a response object in a request, we do not allow * options with values that don't pass validation to be updated to null. * Without this added protection a client could mistakenly * delete all options that have invalid values from the * database. */ if ( is_wp_error( rest_validate_value_from_schema( get_option( $args['option_name'], false ), $args['schema'] ) ) ) { return new WP_Error( 'rest_invalid_stored_value', /* translators: %s: Property name. */ sprintf( __( 'The %s property has an invalid stored value, and cannot be updated to null.' ), $name ), array( 'status' => 500 ) ); } delete_option( $args['option_name'] ); } else { update_option( $args['option_name'], $request[ $name ] ); } } return $this->get_item( $request ); } /** * Retrieves all of the registered options for the Settings API. * * @since 4.7.0 * * @return array Array of registered options. */ protected function get_registered_options() { $rest_options = array(); foreach ( get_registered_settings() as $name => $args ) { if ( empty( $args['show_in_rest'] ) ) { continue; } $rest_args = array(); if ( is_array( $args['show_in_rest'] ) ) { $rest_args = $args['show_in_rest']; } $defaults = array( 'name' => ! empty( $rest_args['name'] ) ? $rest_args['name'] : $name, 'schema' => array(), ); $rest_args = array_merge( $defaults, $rest_args ); $default_schema = array( 'type' => empty( $args['type'] ) ? null : $args['type'], 'title' => empty( $args['label'] ) ? '' : $args['label'], 'description' => empty( $args['description'] ) ? '' : $args['description'], 'default' => isset( $args['default'] ) ? $args['default'] : null, ); $rest_args['schema'] = array_merge( $default_schema, $rest_args['schema'] ); $rest_args['option_name'] = $name; // Skip over settings that don't have a defined type in the schema. if ( empty( $rest_args['schema']['type'] ) ) { continue; } /* * Allow the supported types for settings, as we don't want invalid types * to be updated with arbitrary values that we can't do decent sanitizing for. */ if ( ! in_array( $rest_args['schema']['type'], array( 'number', 'integer', 'string', 'boolean', 'array', 'object' ), true ) ) { continue; } $rest_args['schema'] = rest_default_additional_properties_to_false( $rest_args['schema'] ); $rest_options[ $rest_args['name'] ] = $rest_args; } return $rest_options; } /** * Retrieves the site setting schema, conforming to JSON Schema. * * @since 4.7.0 * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $options = $this->get_registered_options(); $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'settings', 'type' => 'object', 'properties' => array(), ); foreach ( $options as $option_name => $option ) { $schema['properties'][ $option_name ] = $option['schema']; $schema['properties'][ $option_name ]['arg_options'] = array( 'sanitize_callback' => array( $this, 'sanitize_callback' ), ); } $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Custom sanitize callback used for all options to allow the use of 'null'. * * By default, the schema of settings will throw an error if a value is set to * `null` as it's not a valid value for something like "type => string". We * provide a wrapper sanitizer to allow the use of `null`. * * @since 4.7.0 * * @param mixed $value The value for the setting. * @param WP_REST_Request $request The request object. * @param string $param The parameter name. * @return mixed|WP_Error */ public function sanitize_callback( $value, $request, $param ) { if ( is_null( $value ) ) { return $value; } return rest_parse_request_arg( $value, $request, $param ); } /** * Recursively add additionalProperties = false to all objects in a schema * if no additionalProperties setting is specified. * * This is needed to restrict properties of objects in settings values to only * registered items, as the REST API will allow additional properties by * default. * * @since 4.9.0 * @deprecated 6.1.0 Use {@see rest_default_additional_properties_to_false()} instead. * * @param array $schema The schema array. * @return array */ protected function set_additional_properties_to_false( $schema ) { _deprecated_function( __METHOD__, '6.1.0', 'rest_default_additional_properties_to_false()' ); return rest_default_additional_properties_to_false( $schema ); } } Kit Autocultivo MiFungo - Espora & Fungo

Kit Autocultivo MiFungo

¡Disfruta la experiencia!

Descubre la alegría de cultivar tus propias setas gourmet con nuestros kits completos, que incluyen todo lo que necesitas para comenzar: sustrato inoculado, contenedor de cultivo, instrucciones detalladas y más. Convierte tu espacio en un rincón mágico donde la naturaleza florece bajo tu cuidado.

Para comprarlo, haz clic en AÑADIR AL CARRITO y recibirás tu Kit MiFungo en 48/72 horas (depende disponibilidad). Una vez recibido tu Kit MiFungo, siga las instrucciones de cuidado indicadas en la parte trasera de la caja.

Ecológicas Espora & Fungo Sostenibles Espora & Fungo Gourmet Espora & Fungo Ecológicas Espora & Fungo Sostenibles Espora & Fungo Gourmet Espora & Fungo Ecológicas Espora & Fungo Sostenibles Espora & Fungo Gourmet Espora & Fungo

Información

Cultivar setas en casa nunca ha sido tan fácil y gratificante. ¡Explora nuestra colección de kits de autocultivo de setas y comienza tu viaje hacia una experiencia culinaria y natural inigualable!

Sumérgete en el fascinante mundo de la micología con nuestros kits de autocultivo de setas, diseñados para que cualquier persona, desde principiantes hasta expertos, pueda disfrutar de la experiencia única de cultivar sus propias setas frescas y deliciosas.

Ventajas de nuestros kits
  1. Fácil de Usar: Nuestros kits están diseñados pensando en la simplicidad. Incluso si eres nuevo en el autocultivo, nuestras instrucciones paso a paso te guiarán en cada etapa del proceso.
  2. Variedad Gourmet: Disfruta de una amplia variedad de setas gourmet, desde Shiitake y Ostra hasta Champiñones, que harán las delicias de tus platos culinarios.
  3. Cultivo Sostenible: Al cultivar tus propias setas, contribuyes a la sostenibilidad y reduces tu huella ecológica. Además, experimentarás de cerca el ciclo de vida natural de estas maravillosas criaturas.
  4. Experiencia Educativa: Perfecto para educar a niños y adultos sobre la importancia de la naturaleza y la biodiversidad. Observa cómo las setas crecen y aprende sobre su papel vital en el ecosistema.
  5. Regalo Original: Sorprende a tus seres queridos con un regalo único y significativo. Nuestros kits son ideales para cualquier ocasión, desde cumpleaños hasta regalos de agradecimiento.
Espora & Fungo

Ir al contenido