tab_text ) ) {
$this->tab_text = $this->title;
}
// Register the settings section.
$this->register_section();
}
/**
* Register settings section.
*/
public function register_section() {
add_settings_section(
$this->name,
$this->title,
array( $this, 'print_section_info' ),
$this->settings_key
);
$this->register_fields();
register_setting(
$this->settings_key,
$this->settings_key,
array( $this, 'sanitize_settings' )
);
}
/**
* Register fields for this section
*/
abstract public function register_fields();
/**
* Prints help info for this section
*/
abstract public function print_section_info();
/**
* Renders the section
*/
public function render() {
/**
* Performs actions prior to rendering the settings form.
*
* @since 1.9.6
*/
do_action( 'convertkit_settings_base_render_before' );
$this->render_container_start();
do_settings_sections( $this->settings_key );
settings_fields( $this->settings_key );
submit_button();
$this->render_container_end();
/**
* Performs actions after rendering of the settings form.
*
* @since 1.9.6
*/
do_action( 'convertkit_settings_base_render_after' );
}
/**
* Outputs .metabox-holder and .postbox container div elements,
* used before beginning a setting screen's output.
*
* @since 2.0.0
*/
public function render_container_start() {
?>
%s',
str_repeat( '*', strlen( $value ) - 4 ) . substr( $value, - 4 )
);
if ( $description ) {
$html .= $this->get_description( $description );
}
return $html;
}
/**
* Returns a text field.
*
* @since 1.9.6
*
* @param string $name Name.
* @param string $value Value.
* @param mixed $description Description (false|string|array).
* @return string HTML Field
*/
public function get_text_field( $name, $value = '', $description = false ) {
$html = sprintf(
'',
$name,
$this->settings_key,
$name,
$value
);
return $html . $this->get_description( $description );
}
/**
* Returns a select dropdown field.
*
* @since 1.9.6
*
* @param string $name Name.
* @param string $value Value.
* @param array $options Options / Choices.
* @param mixed $description Description (false|string).
* @param mixed $css_classes