get_button_labels();
$this->button_labels = apply_filters('bigmart_customizer_background_button_labels', $button_labels, $id);
// Set field labels
$field_labels = $this->get_field_labels();
$this->field_labels = apply_filters('bigmart_customizer_background_field_labels', $field_labels, $id);
// Set background choices
$background_choices = $this->get_background_choices();
$this->background_choices = apply_filters('bigmart_customizer_background_choices', $background_choices, $id);
}
/**
* Add custom parameters to pass to the JS via JSON.
*
* @since 1.0.0
* @access public
* @return void
*/
public function to_json() {
parent::to_json();
$background_choices = $this->background_choices;
$field_labels = $this->field_labels;
$this->json['button_label'] = $this->button_labels;
// Loop through each of the settings and set up the data for it.
foreach ($this->settings as $setting_key => $setting_id) {
$this->json[$setting_key] = array(
'link' => $this->get_link($setting_key),
'value' => $this->value($setting_key),
'label' => isset($field_labels[$setting_key]) ? $field_labels[$setting_key] : '',
);
if ('image_url' === $setting_key) {
if ($this->value($setting_key)) {
// Get the attachment model for the existing file.
$attachment_id = attachment_url_to_postid($this->value($setting_key));
if ($attachment_id) {
$this->json['attachment'] = wp_prepare_attachment_for_js($attachment_id);
}
}
} elseif ('repeat' === $setting_key) {
$this->json[$setting_key]['choices'] = $background_choices['repeat'];
} elseif ('size' === $setting_key) {
$this->json[$setting_key]['choices'] = $background_choices['size'];
} elseif ('position' === $setting_key) {
$this->json[$setting_key]['choices'] = $background_choices['position'];
} elseif ('attach' === $setting_key) {
$this->json[$setting_key]['choices'] = $background_choices['attach'];
}
}
}
/**
* Render a JS template for the content of the media control.
*
* @since 1.0.0
*/
public function content_template() {
?>
<# if ( data.label ) { #>
{{{ data.label }}}
<# } #>
{{{ data.button_label.select }}}
<# if ( data.image_url.value ) { #>

<# } #>
style="display:none "<# } #>>
<# if ( data.repeat && data.repeat.choices ) { #>
<# if ( data.repeat.label ) { #>
{{ data.repeat.label }}
<# } #>
<# } #>
<# if ( data.size && data.size.choices ) { #>
<# if ( data.size.label ) { #>
{{ data.size.label }}
<# } #>
<# } #>
<# if ( data.position && data.position.choices ) { #>
<# if ( data.position.label ) { #>
{{ data.position.label }}
<# } #>
<# } #>
<# if ( data.attach && data.attach.choices ) { #>
<# if ( data.attach.label ) { #>
{{ data.attach.label }}
<# } #>
<# } #>
<# if ( data.overlay ) { #>
<# if ( data.overlay.label ) { #>
{{ data.overlay.label }}
<# } #>
<# } #>
<# if ( data.color ) { #>
<# if ( data.color.label ) { #>
{{ data.color.label }}
<# } #>
<# } #>
esc_html__('Select Image', 'bigmart'),
'remove' => esc_html__('Remove', 'bigmart'),
);
return $button_labels;
}
/**
* Returns field labels.
*
* @since 1.0.0
*/
public static function get_field_labels() {
$field_labels = array(
'repeat' => esc_html__('Repeat', 'bigmart'),
'size' => esc_html__('Size', 'bigmart'),
'position' => esc_html__('Position', 'bigmart'),
'attach' => esc_html__('Attachment', 'bigmart'),
'color' => esc_html__('Background Color', 'bigmart'),
'overlay' => esc_html__('Overlay Color', 'bigmart')
);
return $field_labels;
}
/**
* Returns the background choices.
*
* @since 1.0.0
* @return array
*/
public static function get_background_choices() {
$choices = array(
'repeat' => array(
'no-repeat' => esc_html__('No Repeat', 'bigmart'),
'repeat' => esc_html__('Tile', 'bigmart'),
'repeat-x' => esc_html__('Tile Horizontally', 'bigmart'),
'repeat-y' => esc_html__('Tile Vertically', 'bigmart')
),
'size' => array(
'auto' => esc_html__('Default', 'bigmart'),
'cover' => esc_html__('Cover', 'bigmart'),
'contain' => esc_html__('Contain', 'bigmart')
),
'position' => array(
'left-top' => esc_html__('Left Top', 'bigmart'),
'left-center' => esc_html__('Left Center', 'bigmart'),
'left-bottom' => esc_html__('Left Bottom', 'bigmart'),
'right-top' => esc_html__('Right Top', 'bigmart'),
'right-center' => esc_html__('Right Center', 'bigmart'),
'right-bottom' => esc_html__('Right Bottom', 'bigmart'),
'center-top' => esc_html__('Center Top', 'bigmart'),
'center-center' => esc_html__('Center Center', 'bigmart'),
'center-bottom' => esc_html__('Center Bottom', 'bigmart')
),
'attach' => array(
'fixed' => esc_html__('Fixed', 'bigmart'),
'scroll' => esc_html__('Scroll', 'bigmart')
)
);
return $choices;
}
}