_name ) ) { throw new Exception( 'Name not set' ); } $this->_step_values = $values; } /** * Returns the step name. * * @return string */ public function get_name() { return $this->_name; } /** * Compares the supplied key against the current step name. * * @param string $key The step name. * * @return bool */ public function is( $key ) { return $key == $this->get_name(); } /** * Returns the step title. * * @return string */ public function get_title() { return ''; } /** * Sets the value for the specified property. * * @param string $key The property key. * @param mixed $value The property value. */ public function __set( $key, $value ) { $this->_step_values[ $key ] = $value; } /** * Determines if the specified property has been defined. * * @param string $key The property key. * * @return bool */ public function __isset( $key ) { return isset( $this->_step_values[ $key ] ); } /** * Deletes the specified property. * * @param string $key The property key. */ public function __unset( $key ) { unset( $this->_step_values[ $key ] ); } /** * Returns the specified property or an empty string for an undefined property. * * @param string $key The property key. * * @return mixed */ public function &__get( $key ) { if ( ! isset( $this->_step_values[ $key ] ) ) { $this->_step_values[ $key ] = ''; } return $this->_step_values[ $key ]; } /** * Returns the values for the current step. * * @return array */ public function get_values() { return $this->_step_values; } /** * Override to display content for this step. */ public function display() { } /** * Override to validate the posted values for this step. * * @param array $posted_values The posted values. * * @return bool */ public function validate( $posted_values ) { // Assign $this->_validation_result;. return true; } /** * Returns the validation result for the specified property or an empty string for an undefined property. * * @param string $key The property key. * * @return mixed */ public function get_field_validation_result( $key ) { if ( ! isset( $this->_field_validation_results[ $key ] ) ) { $this->_field_validation_results[ $key ] = ''; } return $this->_field_validation_results[ $key ]; } /** * Set the field validation result for the specified property. * * @param string $key The property key. * @param string $text The validation result. */ public function set_field_validation_result( $key, $text ) { $this->_field_validation_results[ $key ] = $text; } /** * Set the validation summary property. * * @param string $text The validation summary. */ public function set_validation_summary( $text ) { $this->_validation_summary = $text; } /** * Returns the validation summary property. * * @return string */ public function get_validation_summary() { return $this->_validation_summary; } /** * Return the markup for the validation message. * * @param string $key The property key. * @param bool $echo Indicates if the message should be echoed. * * @return string */ public function validation_message( $key, $echo = true ) { $message = ''; $validation_result = $this->get_field_validation_result( $key ); if ( ! empty( $validation_result ) ) { $message = sprintf( '
', $validation_result ); } if ( $echo ) { echo $message; } return $message; } /** * Override to determine if the current step has been completed. */ public function is_complete() { } /** * Returns the next button label. * * @return string */ public function get_next_button_text() { return __( 'Next', 'gravityflow' ); } /** * Returns the previous button label. * * @return string */ public function get_previous_button_text() { return __( 'Back', 'gravityflow' ); } /** * Update the step options in the database and class property. * * @param array $values The step values. */ public function update( $values ) { update_option( 'gravityflow_installation_wizard_' . $this->get_name(), $values ); $this->_step_values = $values; } /** * Override to return summary content. * * @param bool $echo Indicates if the summary should be echoed. * * @return string */ public function summary( $echo = true ) { return ''; } /** * Override to perform actions when the installation wizard is completing. */ public function install() { // Do something. } /** * Deletes this steps values from the database. */ public function flush_values() { delete_option( 'gravityflow_installation_wizard_' . $this->get_name() ); } }