[ 'environment_type' ], 'siteType' => [ 'siteType' ], 'publishingEntity' => [ 'publishingEntity', 'publishingEntityType', 'publishingEntityCompanyInfo', 'publishingEntityCompanyName', 'publishingEntityCompanyLogo', 'publishingEntityPersonId', 'profileUrlFacebook', 'profileUrlTwitter', 'profileUrlInstagram', 'profileUrlLinkedIn', 'profileUrlMySpace', 'profileUrlPinterest', 'profileUrlYouTube', 'profileUrlWikipedia', ], 'multipleAuthors' => [ 'multipleAuthors' ], 'titleTemplate' => [ 'titleIntro', 'siteName', 'separator', ], 'newsletter' => [ 'mailchimpSignup', 'suggestions', ], 'success' => [ 'successMessage' ], ]; /** * WPSEO_Configuration_Structure constructor. */ public function initialize() { $this->add_step( 'environment-type', __( 'Environment', 'wordpress-seo' ), $this->fields['environment_type'] ); $this->add_step( 'site-type', __( 'Site type', 'wordpress-seo' ), $this->fields['siteType'] ); $this->add_step( 'publishing-entity', __( 'Organization or person', 'wordpress-seo' ), $this->fields['publishingEntity'] ); $fields = [ 'postTypeVisibility' ]; $post_type_factory = new WPSEO_Config_Factory_Post_Type(); foreach ( $post_type_factory->get_fields() as $post_type_field ) { $fields[] = $post_type_field->get_identifier(); } $this->add_step( 'post-type-visibility', __( 'Search engine visibility', 'wordpress-seo' ), $fields ); $this->add_step( 'multiple-authors', __( 'Multiple authors', 'wordpress-seo' ), $this->fields['multipleAuthors'] ); $this->add_step( 'title-template', __( 'Title settings', 'wordpress-seo' ), $this->fields['titleTemplate'] ); $this->add_step( 'newsletter', __( 'Continue learning', 'wordpress-seo' ), $this->fields['newsletter'], true, true ); $this->add_step( 'success', __( 'Success!', 'wordpress-seo' ), $this->fields['success'], true, true ); } /** * Add a step to the structure * * @param string $identifier Identifier for this step. * @param string $title Title to display for this step. * @param array $fields Fields to use on the step. * @param bool $navigation Show navigation buttons. * @param bool $full_width Wheter the step content is full width or not. */ protected function add_step( $identifier, $title, $fields, $navigation = true, $full_width = false ) { $this->steps[ $identifier ] = [ 'title' => $title, 'fields' => $fields, 'hideNavigation' => ! (bool) $navigation, 'fullWidth' => $full_width, ]; } /** * Retrieve the registered steps. * * @return array */ public function retrieve() { return $this->steps; } }