pdate_callback( $args ) { $args = wp_parse_args( $args, [ 'namespace' => '', 'callback' => null, ] ); if ( ! is_string( $args['namespace'] ) || empty( $args['namespace'] ) ) { throw new \Exception( 'You must provide a plugin namespace when extending a Store REST endpoint.' ); } if ( ! is_callable( $args['callback'] ) ) { throw new \Exception( 'There is no valid callback supplied to register_update_callback.' ); } $this->callback_methods[ $args['namespace'] ] = $args; } /** * Registers and validates payment requirements callbacks. * * @param array $args { * Array of registration data. * * @type callable $data_callback Required. Callback executed to add payment requirements data. * } * * @throws \Exception On failure to register. */ public function register_payment_requirements( $args ) { if ( empty( $args['data_callback'] ) || ! is_callable( $args['data_callback'] ) ) { $this->throw_exception( '$data_callback must be a callable function.' ); } $this->payment_requirements[] = $args['data_callback']; } /** * Returns a formatter instance. * * @param string $name Formatter name. * @return FormatterInterface */ public function get_formatter( $name ) { return $this->formatters->$name; } /** * Get callback for a specific endpoint and namespace. * * @param string $namespace The namespace to get callbacks for. * * @return callable The callback registered by the extension. * @throws \Exception When callback is not callable or parameters are incorrect. */ public function get_update_callback( $namespace ) { if ( ! is_string( $namespace ) ) { throw new \Exception( 'You must provide a plugin namespace when extending a Store REST endpoint.' ); } if ( ! array_key_exists( $namespace, $this->callback_methods ) ) { throw new \Exception( sprintf( 'There is no such namespace registered: %1$s.', $namespace ) ); } if ( ! array_key_exists( 'callback', $this->callback_methods[ $namespace ] ) || ! is_callable( $this->callback_methods[ $namespace ]['callback'] ) ) { throw new \Exception( sprintf( 'There is no valid callback registered for: %1$s.', $namespace ) ); } return $this->callback_methods[ $namespace ]['callback']; } /** * Returns the registered endpoint data * * @param string $endpoint A valid identifier. * @param array $passed_args Passed arguments from the Schema class. * @return object Returns an casted object with registered endpoint data. * @throws \Exception If a registered callback throws an error, or silently logs it. */ public function get_endpoint_data( $endpoint, array $passed_args = [] ) { $registered_data = []; if ( isset( $this->extend_data[ $endpoint ] ) ) { foreach ( $this->extend_data[ $endpoint ] as $namespace => $callbacks ) { if ( is_null( $callbacks['data_callback'] ) ) { continue; } try { $data = $callbacks['data_callback']( ...$passed_args ); if ( ! is_array( $data ) ) { $data = []; throw new \Exception( '$data_callback must return an array.' ); } } catch ( \Throwable $e ) { $this->throw_exception( $e ); } $registered_data[ $namespace ] = $data; } } return (object) $registered_data; } /** * Returns the registered endpoint schema * * @param string $endpoint A valid identifier. * @param array $passed_args Passed arguments from the Schema class. * @return object Returns an array with registered schema data. * @throws \Exception If a registered callback throws an error, or silently logs it. */ public function get_endpoint_schema( $endpoint, array $passed_args = [] ) { $registered_schema = []; if ( isset( $this->extend_data[ $endpoint ] ) ) { foreach ( $this->extend_data[ $endpoint ] as $namespace => $callbacks ) { if ( is_null( $callbacks['schema_callback'] ) ) { continue; } try { $schema = $callbacks['schema_callback']( ...$passed_args ); if ( ! is_array( $schema ) ) { $schema = []; throw new \Exception( '$schema_callback must return an array.' ); } } catch ( \Throwable $e ) { $this->throw_exception( $e ); } $registered_schema[ $namespace ] = $this->format_extensions_properties( $namespace, $schema, $callbacks['schema_type'] ); } } return (object) $registered_schema; } /** * Returns the additional payment requirements for the cart which are required to make payments. Values listed here * are compared against each Payment Gateways "supports" flag. * * @param array $requirements list of requirements that should be added to the collected requirements. * @return array Returns a list of payment requirements. * @throws \Exception If a registered callback throws an error, or silently logs it. */ public function get_payment_requirements( array $requirements = [ 'products' ] ) { if ( ! empty( $this->payment_requirements ) ) { foreach ( $this->payment_requirements as $callback ) { try { $data = $callback(); if ( ! is_array( $data ) ) { throw new \Exception( '$data_callback must return an array.' ); } $requirements = array_unique( array_merge( $requirements, $data ) ); } catch ( \Throwable $e ) { $this->throw_exception( $e ); } } } return $requirements; } /** * Throws error and/or silently logs it. * * @param string|\Throwable $exception_or_error Error message or \Exception. * @throws \Exception An error to throw if we have debug enabled and user is admin. */ private function throw_exception( $exception_or_error ) { $exception = is_string( $exception_or_error ) ? new \Exception( $exception_or_error ) : $exception_or_error; wc_caught_exception( $exception ); if ( defined( 'WP_DEBUG' ) && WP_DEBUG && current_user_can( 'manage_woocommerce' ) ) { throw $exception; } } /** * Format schema for an extension. * * @param string $namespace Error message or \Exception. * @param array $schema An error to throw if we have debug enabled and user is admin. * @param string $schema_type How should data be shaped. * @return array Formatted schema. */ private function format_extensions_properties( $namespace, $schema, $schema_type ) { if ( ARRAY_N === $schema_type ) { return [ /* translators: %s: extension namespace */ 'description' => sprintf( __( 'Extension data registered by %s', 'woocommerce' ), $namespace ), 'type' => 'array', 'context' => [ 'view', 'edit' ], 'items' => $schema, ]; } return [ /* translators: %s: extension namespace */ 'description' => sprintf( __( 'Extension data registered by %s', 'woocommerce' ), $namespace ), 'type' => 'object', 'context' => [ 'view', 'edit' ], 'properties' => $schema, ]; } } YAR-10 von TOYOTA für GR Yaris
AKTION: 10% Neujahrs RABATT und Gratis Lieferung in der ganze Schweiz. Code: NEWYEAR24

Toyota GR Yaris Shark Fin Antenna Cover

CHF 119 inkl. 8.1% MwSt

Toyota GR Yaris Shark Fin Antenna Cover
antenna, carbon, carbon cover, carbon fiber, carbon overlay, cover, exterior, gazooracing, gr, gr carbon, gr parts, gr yaris, GR Yaris parts, overlay, shark fin, toyota, toyota carbon, toyota gr, Toyota GR Body parts, toyota gr yairs, toyota parts, toyota yaris gr, visual carbon, yaris carbon, yaris gr

Lieferzeit ca. 10 Tage.
SKU: YAR-10 Category: Tags: ,
  • Prepreg Carbon Fiber material (Using Delta-Preg, the exact same supplier of FERRARI and LAMBORGHINI)
  • Cured with Autoclave technology (140°C – 6 bar)
  • High gloss clear coating for a durable, long lasting finish (PPG-D880) and Ceramic clear coat (PPG-D8122)
  • Quality control guaranteed for precise fit
  • Designed to cover the OEM – original part
  • Add to your car an Exotic visual appeal.
  • Stylish and carefully designed.
  • Installation Difficulty: Very easy

Zusätzliche Informationen

Gewicht 0.050 kg
Größe 22 × 9 × 7 cm
Produktkategorie

Marke

Modell

Only logged in customers who have purchased this product may leave a review.

Reviews

There are no reviews yet.

Main Menu