woothemes/woocommerce

View on GitHub
includes/customizer/class-wc-customizer-control-cropping.php

Summary

Maintainability
A
1 hr
Test Coverage
<?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
    }
}