45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
|
<?php
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit; // No direct access, please.
|
||
|
}
|
||
|
|
||
|
if ( ! class_exists( 'WP_Customize_Control' ) ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( ! class_exists( 'GeneratePress_Action_Button_Control' ) ) {
|
||
|
/**
|
||
|
* Add a button which needs javascript attached to it.
|
||
|
*/
|
||
|
class GeneratePress_Action_Button_Control extends WP_Customize_Control {
|
||
|
public $type = 'gp_action_button';
|
||
|
public $data_type = '';
|
||
|
public $description = '';
|
||
|
public $nonce = '';
|
||
|
|
||
|
public function enqueue() {
|
||
|
wp_enqueue_script( 'gp-button-actions', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/button-actions.js', array( 'customize-controls' ), GP_PREMIUM_VERSION, true );
|
||
|
wp_enqueue_style( 'gp-button-actions', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'css/button-actions.css', array(), GP_PREMIUM_VERSION );
|
||
|
}
|
||
|
|
||
|
public function to_json() {
|
||
|
parent::to_json();
|
||
|
|
||
|
$this->json['data_type'] = $this->data_type;
|
||
|
$this->json['description'] = $this->description;
|
||
|
$this->json['nonce'] = $this->nonce;
|
||
|
}
|
||
|
|
||
|
public function content_template() {
|
||
|
?>
|
||
|
<button class="button" data-type="{{{ data.data_type }}}" data-nonce="{{{ data.nonce }}}">{{{ data.label }}}</button>
|
||
|
<# if ( data.description ) { #>
|
||
|
<span class="description customize-control-description">
|
||
|
<p>{{{ data.description }}}</p>
|
||
|
</span>
|
||
|
<# } #>
|
||
|
<?php
|
||
|
}
|
||
|
}
|
||
|
}
|