'object', 'properties' => new \stdClass(), ); } /** * {@inheritDoc} * * @param array $config Raw config. */ public function sanitize_config( array $config ): array { // Drops any legacy `default` key stored by 1.0.0 betas: it was never applied. return array(); } /** * {@inheritDoc} * * @param mixed $raw Raw value. * @param Extra $extra Extra. */ public function sanitize_value( mixed $raw, Extra $extra ): mixed { if ( is_bool( $raw ) ) { return $raw ? true : null; } if ( is_int( $raw ) || is_string( $raw ) ) { return in_array( strtolower( (string) $raw ), array( '1', 'yes', 'on', 'true' ), true ) ? true : null; } return null; } /** * {@inheritDoc} * * @param Extra $extra Extra. * @param Selection $selection Selection. */ public function is_chargeable( Extra $extra, Selection $selection ): bool { return true === $selection->value; } /** * {@inheritDoc} * * @param Extra $extra Extra. * @param Selection $selection Selection. */ public function display_value( Extra $extra, Selection $selection ): string { return true === $selection->value ? __( 'Yes', 'extrova' ) : ''; } /** * {@inheritDoc} * * @param Extra $extra Extra. * @param Context $context Context. */ public function to_client( Extra $extra, Context $context ): array { return array(); } /** * {@inheritDoc} * * @param Extra $extra Extra. */ public function preview_selections( Extra $extra ): array { return array( '' => true ); } /** * {@inheritDoc} * * @param Extra $extra Extra. * @param Selection|null $selection Selection. * @param Context $context Context. */ public function render_classic( Extra $extra, ?Selection $selection, Context $context ): string { $id = $this->field_id( $extra ); $checked = $selection && true === $selection->value; $html = '
'; $html .= 'required ? ' aria-required="true"' : '' ) . $this->describedby_attr( $extra ) . ' />'; $html .= ' '; $html .= $this->description_html( $extra ); $html .= '
'; return $html; } }