elements_manager->create_element_instance( $_widget ); if ( isset( $_widget['templateID'] ) ) { $type = UAEL_Helper::get_global_widget_type( $_widget['templateID'], 1 ); $element_class = $type->get_class_name(); try { $widget = new $element_class( $_widget, array() ); } catch ( \Exception $e ) { return null; } } $settings = $widget->get_settings(); $content_schema_warning = 0; $enable_schema = $settings['schema_support']; foreach ( $settings['tabs'] as $key ) { if ( 'content' !== $key['faq_content_type'] ) { $content_schema_warning = 1; } } if ( 'yes' === $enable_schema && ( 0 === $content_schema_warning ) ) { foreach ( $settings['tabs'] as $faqs ) { if ( '' !== $faqs['question'] && '' !== $faqs['answer'] ) { $new_data = array( '@type' => 'Question', 'name' => $faqs['question'], 'acceptedAnswer' => array( '@type' => 'Answer', 'text' => $faqs['answer'], ), ); array_push( $object_data, $new_data ); } } } } if ( $object_data ) { $schema_data = array( '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => $object_data, ); UAEL_Helper::print_json_schema( $schema_data ); } } } /** * Get widget name. * * @since 1.36.5 * @access public * @param array $data The builder content. * @param int $post_id The post ID. */ public function get_widget_data( $data, $post_id ) { Plugin::$instance->db->iterate_data( $data, function ( $element ) use ( &$widgets ) { $type = UAEL_Helper::get_widget_type( $element ); if ( 'uael-faq' === $type ) { self::$all_faq_widgets[] = $element; } return $element; } ); return $data; } }