'\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Pricing_Table', 'period_selection' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Period_Selection', 'products' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Products', 'template_selection' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Template_Selection', 'username' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Username', 'email' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Email', 'password' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Password', 'site_title' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Site_Title', 'site_url' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Site_Url', 'discount_code' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Discount_Code', 'order_summary' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Order_Summary', 'payment' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Payment', 'order_bump' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Order_Bump', 'billing_address' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Billing_Address', 'steps' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Steps', 'text' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Text', 'checkbox' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Checkbox', 'color_picker' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Color', 'select' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Select', 'hidden' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Hidden', 'shortcode' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Shortcode', 'terms_of_use' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Terms_Of_Use', 'submit_button' => '\\WP_Ultimo\\Checkout\\Signup_Fields\\Signup_Field_Submit_Button', ); /* * Allow developers to add new field types */ do_action('wu_register_field_types'); /** * Our APIs to add new field types hook into here. * Do not use this filter directly. Use the wu_register_field_type() * function instead. * * @see wu_register_field_type() * * @since 2.0.0 * @param array $field_types * @return array */ return apply_filters('wu_checkout_field_types', $field_types); } /** * Instantiate a field type. * * @since 2.0.0 * * @param string $class_name The class name. * @return \WP_Ultimo\Checkout\Signup_Fields\Base_Signup_Field */ public function instantiate_field_type($class_name) { return new $class_name(); } /** * Returns an array with all fields, instantiated. * * @since 2.0.0 * @return array */ public function get_instantiated_field_types() { if ($this->instantiated_field_types === null) { $this->instantiated_field_types = array_map(array($this, 'instantiate_field_type'), $this->get_field_types()); } return $this->instantiated_field_types; } /** * Returns a list of all the required fields that must be present on a CF. * * @since 2.0.0 * @return array */ public function get_required_fields() { $fields = $this->get_instantiated_field_types(); $fields = array_filter($fields, fn($item) => $item->is_required()); return $fields; } /** * Returns a list of all the user fields. * * @since 2.0.0 * @return array */ public function get_user_fields() { $fields = $this->get_instantiated_field_types(); $fields = array_filter($fields, fn($item) => $item->is_user_field()); return $fields; } /** * Returns a list of all the site fields. * * @since 2.0.0 * @return array */ public function get_site_fields() { $fields = $this->get_instantiated_field_types(); $fields = array_filter($fields, fn($item) => $item->is_site_field()); return $fields; } /** * Returns a list of all editor fields registered. * * @since 2.0.0 * @return array */ public function get_all_editor_fields() { $all_editor_fields = array(); $field_types = $this->get_instantiated_field_types(); foreach ($field_types as $field_type) { $all_editor_fields = array_merge($all_editor_fields, $field_class->get_fields()); } return $all_editor_fields; } }