woocommerce/includes/customizer/class-wc-customizer-control...

65 lines
2.0 KiB
PHP

<?php
/**
* Custom control for radio buttons with nested options.
*
* Used for our image cropping settings.
*
* @version 3.3.0
* @package WooCommerce
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* WC_Customizer_Control_Cropping class.
*/
class WC_Customizer_Control_Cropping extends WP_Customize_Control {
/**
* Declare the control type.
*
* @var string
*/
public $type = 'woocommerce-cropping-control';
/**
* Render control.
*/
public function render_content() {
if ( empty( $this->choices ) ) {
return;
}
$value = $this->value( 'cropping' );
$custom_width = $this->value( 'custom_width' );
$custom_height = $this->value( 'custom_height' );
?>
<span class="customize-control-title">
<?php echo esc_html( $this->label ); ?>
</span>
<?php if ( ! empty( $this->description ) ) : ?>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<?php endif; ?>
<ul id="input_<?php echo esc_attr( $this->id ); ?>" class="woocommerce-cropping-control">
<?php foreach ( $this->choices as $key => $radio ) : ?>
<li>
<input type="radio" name="<?php echo esc_attr( $this->id ); ?>" value="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $this->id . $key ); ?>" <?php $this->link( 'cropping' ); ?> <?php checked( $value, $key ); ?> />
<label for="<?php echo esc_attr( $this->id . $key ); ?>"><?php echo esc_html( $radio['label'] ); ?><br/><span class="description"><?php echo esc_html( $radio['description'] ); ?></span></label>
<?php if ( 'custom' === $key ) : ?>
<span class="woocommerce-cropping-control-aspect-ratio">
<input type="text" pattern="\d*" size="3" value="<?php echo esc_attr( $custom_width ); ?>" <?php $this->link( 'custom_width' ); ?> /> : <input type="text" pattern="\d*" size="3" value="<?php echo esc_attr( $custom_height ); ?>" <?php $this->link( 'custom_height' ); ?> />
</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php
}
}