Helix_Website/wp-content/themes/attesa/inc/pro-button/Button.php
2020-08-26 15:16:39 +02:00

89 lines
2.4 KiB
PHP

<?php
/**
* Customize Section Button Class.
*
* Adds a custom "button" section to the WordPress customizer.
*
* @author WPTRT <themes@wordpress.org>
* @copyright 2019 WPTRT
* @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0-or-later
* @link https://github.com/WPTRT/customize-section-button
*/
namespace WPTRT\Customize\Section;
use WP_Customize_Section;
class Button extends WP_Customize_Section {
/**
* The type of customize section being rendered.
*
* @since 1.0.0
* @access public
* @var string
*/
public $type = 'wptrt-button';
/**
* Custom button text to output.
*
* @since 1.0.0
* @access public
* @var string
*/
public $button_text = '';
/**
* Custom button URL to output.
*
* @since 1.0.0
* @access public
* @var string
*/
public $button_url = '';
/**
* Default priority of the section.
*
* @since 1.0.0
* @access public
* @var string
*/
public $priority = 999;
/**
* Add custom parameters to pass to the JS via JSON.
*
* @since 1.0.0
* @access public
* @return array
*/
public function json() {
$json = parent::json();
$theme = wp_get_theme();
$button_url = $this->button_url;
// Fall back to the `Theme URI` defined in `style.css`.
if ( ! $this->button_url && $theme->get( 'ThemeURI' ) ) {
$button_url = $theme->get( 'ThemeURI' );
// Fall back to the `Author URI` defined in `style.css`.
} elseif ( ! $this->button_url && $theme->get( 'AuthorURI' ) ) {
$button_url = $theme->get( 'AuthorURI' );
}
$json['button_text'] = $this->button_text ? $this->button_text : $theme->get( 'Name' );
$json['button_url'] = esc_url_raw( $button_url );
return $json;
}
/**
* Outputs the Underscore.js template.
*
* @since 1.0.0
* @access public
* @return void
*/
protected function render_template() { ?>
<li id="accordion-section-{{ data.id }}" class="accordion-section control-section control-section-{{ data.type }} cannot-expand">
<h3 class="accordion-section-title">
{{ data.title }}
<# if ( data.button_text && data.button_url ) { #>
<a href="{{ data.button_url }}" class="button button-secondary alignright" target="_blank" rel="external nofollow noopener noreferrer">{{ data.button_text }}</a>
<# } #>
</h3>
</li>
<?php }
}