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

Goza da experiencia!

Descubre a alegría de cultivar os teus propios cogumelos gourmet cos nosos kits completos, que inclúen todo o que precisa para comezar: substrato inoculado, recipiente de cultivo, instrucións detalladas e moito máis. Converte o teu espazo nun recuncho máxico onde a natureza florece baixo o teu coidado.

Para compralo, fai clic en ENGADIR Ó CARRIÑO e recibirás o teu Kit MiFungo en 48/72 horas (depende da dispoñibilidade). Unha vez que reciba o seu kit MiFungo, siga as instrucións de coidado que aparecen na parte traseira da caixa.

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 cogumelos na casa nunca foi tan sinxelo e gratificante. Explora a nosa colección de kits de autocultivo de cogumelos e comeza a túa viaxe hacia unha experiencia culinaria e natural única!

Mergúllate no fascinante mundo da micoloxía co noso kit de autocultivo de cogumelos, deseñado para que calquera persoa, dende principiantes ata expertos, poida gozar da experiencia única de cultivar os seus propios cogumelos frescos e deliciosos.

Vantaxes dos nosos kits
  1. Fácil de usar: os nosos kits están deseñados pensando na sinxeleza. Aínda que sexas novo en crecer por ti mesmo, as nosas instrucións paso a paso guiaránche en todas as etapas do proceso.
  2. Variedade Gourmet: Goza dunha gran variedade de cogumelos gourmet, desde Shiitake e Ostra ata Champignons, que farán as delicias dos teus pratos culinarios.
  3. Cultivo sustentable: ao cultivar os teus propios cogumelos, contribúes á sustentabilidade e reduces a túa pegada ecolóxica. Ademais, experimentarás de preto o ciclo de vida natural destas marabillosas criaturas.
  4. Experiencia educativa: perfecta para educar a nenos e adultos sobre a importancia da natureza e a biodiversidade. Observa como medran os cogumelos e aprende sobre o seu papel vital no ecosistema.
  5. Agasallo orixinal: sorprende aos teus seres queridos cun agasallo único e significativo. Os nosos kits son ideais para calquera ocasión, desde aniversarios ata agasallos de agradecemento.
Espora & Fungo

Ir o contido