This commit is contained in:
2026-07-02 15:54:39 -06:00
commit 9883323161
17470 changed files with 4470592 additions and 0 deletions
@@ -0,0 +1,94 @@
<?php
namespace Gravity_Forms\Gravity_Forms\Settings\Fields;
use Gravity_Forms\Gravity_Forms\Settings\Fields;
defined( 'ABSPATH' ) || die();
class Toggle extends Base {
/**
* Field type.
*
* @since 2.5
*
* @var string
*/
public $type = 'toggle';
/**
* Message to display for screen readers.
*
* @since 2.5
*
* @var string
*/
public $toggle_label;
public $disabled;
// # RENDER METHODS ------------------------------------------------------------------------------------------------
/**
* Render field.
*
* @since 2.5
*
* @return string
*/
public function markup() {
// Determine if toggle is selected.
$enabled = $this->get_value();
// Prepare input ID.
$input_id = sprintf(
'%s_%s',
esc_attr( $this->settings->get_input_name_prefix() ),
esc_attr( $this->name )
);
// Display description.
$html = $this->get_description();
$html .= '<span class="' . esc_attr( $this->get_container_classes() ) . '">';
// Insert checkbox.
$html .= sprintf(
'<input type="checkbox" name="%1$s" id="%1$s" value="1" %2$s %3$s %4$s />',
$input_id,
checked( '1', $enabled, false ),
$this->get_describer() ? sprintf( 'aria-describedby="%s"', $this->get_describer() ) : '',
implode( ' ', $this->get_attributes() )
);
// Insert toggle UI.
$html .= sprintf( '<label class="gform-field__toggle-container" for="%s">', $input_id );
$screen_reader_text = $this->toggle_label ?: $this->label;
if ( $screen_reader_text ) {
$html .= sprintf( '<span class="screen-reader-text">%s</span>', esc_html( $screen_reader_text ) );
}
$html .= '<span class="gform-field__toggle-switch"></span>';
$html .= '</label>';
// Insert after input markup.
$html .= rgobj( $this, 'after_input' );
// If field failed validation, add error icon.
$html .= $this->get_error_icon();
$html .= '</span>';
return $html;
}
}
Fields::register( 'toggle', '\Gravity_Forms\Gravity_Forms\Settings\Fields\Toggle' );